Smart Money w/Gallium Nitride-Strategy

Adeodatus

Active member
Plus
Trade-space and radar defense are this system's high-powered, high-frequency Search & Grab method of charting. Based on time-of-day, with double-sequenced lock coding to pan the after-hour trade tailing for trade day data from two variable baskets. Looking back at my early prospecting out in California we never missed searching for the little nuggets left after washing out pans of Gold once in the AM and again PM. This strategy, the Smart-Money trade pulled and creates after-hours pulses for the opening signal. DYODD in all trades, this is not "The One"!

I use 2 Lower charts with 2 different Studies, resulting in what would happen and what looks as though might occur. The nice part is the result when market opens, and we see if continues.
2025-12-03-TOS_CHARTSC.png

Code:
#Two separate codes
#One goes on one lower chart and the other to a second lower chart.
# ===========================================================
# SMART MONEY VELOCITY ENGINE (SMVE) v1.2
# Adeodatus Bldg 12/3/2025 TravelLink Series
# FFhart Ver.SMI - VSMI - Velocity Suite - Composite Score -
# Options Positioning Strategy, + Bubble Signals
# Note: This Strategy not a Prediction Indicator. DYODD
# ===========================================================

declare lower;

# ===========================================================
# SESSION ANCHORS
# ===========================================================
def opening_bell =
    if SecondsFromTime(0930) == 0 then open
    else if SecondsFromTime(0930) > 0 then opening_bell[1]
    else Double.NaN;

def end_opening_hour =
    if SecondsFromTime(1030) == 0 then close
    else if SecondsFromTime(1030) > 0 then end_opening_hour[1]
    else Double.NaN;

def start_last_thirty =
    if SecondsFromTime(1500) == 0 then open
    else if SecondsFromTime(1500) > 0 then start_last_thirty[1]
    else Double.NaN;

def closing_bell =
    if SecondsFromTime(1600) == 0 then close
    else if SecondsFromTime(1600) > 0 then closing_bell[1]
    else Double.NaN;

# ===========================================================
# MORNING / AFTERNOON CHANGE
# ===========================================================
def morning_change     = end_opening_hour - opening_bell;
def afternoon_change   = closing_bell - start_last_thirty;
def previous_close     = close(period = AggregationPeriod.DAY)[1];

# ===========================================================
# SMI (SMART MONEY INDEX)
# ===========================================================
def SMI_calc =
    if IsNaN(SMI_calc[1]) then previous_close
    else SMI_calc[1] - morning_change + afternoon_change;

plot SMI = SMI_calc;
SMI.SetDefaultColor(Color.CYAN);
SMI.SetLineWeight(2);
AddCloud(SMI, previous_close, Color.GREEN, Color.RED);

# ===========================================================
# VSMI (VOLUME WEIGHTED SMI)
# ===========================================================
def volFactor = volume / Average(volume, 20);

def VSMI_calc =
    if IsNaN(VSMI_calc[1]) then previous_close
    else VSMI_calc[1] - (morning_change * volFactor)
                      + (afternoon_change * volFactor);

plot VSMI = VSMI_calc;
VSMI.SetDefaultColor(Color.YELLOW);
VSMI.SetLineWeight(2);

# ===========================================================
# VELOCITY SUITE
# ===========================================================
def velocity      = SMI - SMI[1];
def vw_velocity   = VSMI - VSMI[1];
def acceleration  = velocity - velocity[1];

plot Vel = velocity;     Vel.SetDefaultColor(Color.LIGHT_GREEN);
plot VWV = vw_velocity;  VWV.SetDefaultColor(Color.LIGHT_ORANGE);
plot Acc = acceleration; Acc.SetDefaultColor(Color.MAGENTA);

# ===========================================================
# LR SLOPE
# ===========================================================
def LR_Slope = Inertia(SMI, 14) - Inertia(SMI, 14)[1];

# ===========================================================
# PULSE GRADIENT
# ===========================================================
def pulseVal = ExpAverage(velocity, 8) - ExpAverage(velocity, 21);

plot Pulse = pulseVal;
Pulse.SetDefaultColor(Color.WHITE);
Pulse.SetLineWeight(2);

# ===========================================================
# COMPOSITE SCORE (0–100)
# ===========================================================
def n1 = (velocity + 2) / 4;
def n2 = (vw_velocity + 2) / 4;
def n3 = (acceleration + 2) / 4;
def n4 = (LR_Slope + 2) / 4;
def n5 = (pulseVal + 2) / 4;

def CompScore = 100 * ((n1 + n2 + n3 + n4 + n5) / 5);

plot Score = CompScore;
Score.SetDefaultColor(Color.BLUE);
Score.SetLineWeight(2);

AddLabel(yes, "Composite Score: " + Round(CompScore, 1),
    if CompScore > 60 then Color.GREEN
    else if CompScore < 40 then Color.RED
    else Color.YELLOW);

# ===========================================================
# STRATEGY ENGINE
# ===========================================================
def SignalDirection =
    if CompScore > 60 and velocity > 0 and pulseVal > 0 then 1
    else if CompScore < 40 and velocity < 0 and pulseVal < 0 then -1
    else 0;

AddLabel(
    yes,
    if SignalDirection == 1 then "STRATEGY: SELL PUTS (Bullish)"
    else if SignalDirection == -1 then "STRATEGY: SELL CALLS (Bearish)"
    else "STRATEGY: SELL BOTH SIDES (Neutral)",
    if SignalDirection == 1 then Color.GREEN
    else if SignalDirection == -1 then Color.RED
    else Color.YELLOW
);

# ===========================================================
# BUBBLE SIGNALS (PROPERLY ANCHORED TO PRICE CHART)
# ===========================================================
AddChartBubble(
    SignalDirection == 1 and SignalDirection[1] != 1,
    low,
    "PUT SELL ZONE",
    Color.GREEN,
    no
);

AddChartBubble(
    SignalDirection == -1 and SignalDirection[1] != -1,
    high,
    "CALL SELL ZONE",
    Color.RED,
    yes
);

AddChartBubble(
    SignalDirection == 0 and SignalDirection[1] != 0,
    close,
    "NEUTRAL BAND",
    Color.YELLOW,
    yes
);

# ===========================================================
# END OF SCRIPT
# ===========================================================

#second code starts:










# ===========================================================
# SMART MONEY VELOCITY ENGINE w/Pulse Bubbles(SMVEPB) v2.1
# Adeodatus Bldg 12/3/2025 TravelLink Series
# FFart Ver.SMI - VSMI - Velocity Suite - Composite Score -
# Options Positioning Strategy, + Bubble Signals (2)
# Note: This Strategy not a Prediction Indicator. DYODD
# ===========================================================

declare lower;

# -------------------------------
# SESSION ANCHORS
# -------------------------------
def opening_bell =
    if SecondsFromTime(0800) == 0 then open
    else if SecondsFromTime(0800) > 0 then opening_bell[1]
    else Double.NaN;

def end_opening_hour =
    if SecondsFromTime(1100) == 0 then close
    else if SecondsFromTime(1100) > 0 then end_opening_hour[1]
    else Double.NaN;

def start_last_thirty =
    if SecondsFromTime(1500) == 0 then open
    else if SecondsFromTime(1500) > 0 then start_last_thirty[1]
    else Double.NaN;

def closing_bell =
    if SecondsFromTime(2000) == 0 then close
    else if SecondsFromTime(2000) > 0 then closing_bell[1]
    else Double.NaN;

# -------------------------------
# MORNING / AFTERNOON CHANGES
# -------------------------------
def morning_change     = end_opening_hour - opening_bell;
def afternoon_change   = closing_bell - start_last_thirty;
def previous_close     = close(period = AggregationPeriod.DAY)[1];

# -------------------------------
# SMI & VSMI
# -------------------------------
def SMI_calc =
    if IsNaN(SMI_calc[1]) then previous_close
    else SMI_calc[1] - morning_change + afternoon_change;

plot SMI = SMI_calc;
SMI.SetDefaultColor(Color.CYAN);
SMI.SetLineWeight(2);

def volFactor = volume / Average(volume, 20);

def VSMI_calc =
    if IsNaN(VSMI_calc[1]) then previous_close
    else VSMI_calc[1] - (morning_change * volFactor) + (afternoon_change * volFactor);

plot VSMI = VSMI_calc;
VSMI.SetDefaultColor(Color.YELLOW);
VSMI.SetLineWeight(2);

# -------------------------------
# VELOCITY SUITE
# -------------------------------
def velocity      = SMI - SMI[1];
def vw_velocity   = VSMI - VSMI[1];
def acceleration  = velocity - velocity[1];

plot Vel = velocity;     Vel.SetDefaultColor(Color.LIGHT_GREEN);
plot VWV = vw_velocity;  VWV.SetDefaultColor(Color.LIGHT_ORANGE);
plot Acc = acceleration; Acc.SetDefaultColor(Color.MAGENTA);

# -------------------------------
# LR SLOPE
# -------------------------------
def LR_Slope = Inertia(SMI, 14) - Inertia(SMI, 14)[1];

# -------------------------------
# PULSE GRADIENT
# -------------------------------
def pulseVal = ExpAverage(velocity, 8) - ExpAverage(velocity, 21);

plot Pulse = pulseVal;
Pulse.SetDefaultColor(Color.WHITE);
Pulse.SetLineWeight(2);

# -------------------------------
# COMPOSITE SCORE (0–100)
# -------------------------------
def n1 = (velocity + 2) / 4;
def n2 = (vw_velocity + 2) / 4;
def n3 = (acceleration + 2) / 4;
def n4 = (LR_Slope + 2) / 4;
def n5 = (pulseVal + 2) / 4;

def CompScore = 100 * ((n1 + n2 + n3 + n4 + n5) / 5);

plot Score = CompScore;
Score.SetDefaultColor(Color.BLUE);
Score.SetLineWeight(2);

AddLabel(yes, "Composite Score: " + Round(CompScore, 1),
    if CompScore > 60 then Color.GREEN
    else if CompScore < 40 then Color.RED
    else Color.YELLOW);

# -------------------------------
# PULSE BUBBLES (Lower Panel)
# -------------------------------
# Green arrow up = pulse rising sharply
plot PulseUp = if pulseVal > 0 and pulseVal > pulseVal[1] then VSMI_calc else Double.NaN;
PulseUp.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
PulseUp.SetDefaultColor(Color.GREEN);
PulseUp.SetLineWeight(2);

# Red arrow down = pulse falling sharply
plot PulseDown = if pulseVal < 0 and pulseVal < pulseVal[1] then VSMI_calc else Double.NaN;
PulseDown.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);
PulseDown.SetDefaultColor(Color.RED);
PulseDown.SetLineWeight(2);

# Neutral pulse = use small arrow up but gray for visualization
plot PulseNeutral = if AbsValue(pulseVal) < 0.01 then VSMI_calc else Double.NaN;
PulseNeutral.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
PulseNeutral.SetDefaultColor(Color.GRAY);
PulseNeutral.SetLineWeight(1);


# -------------------------------
# CLOUD: SMI vs Previous Close
# -------------------------------
AddCloud(SMI, previous_close, Color.DARK_GREEN, Color.DARK_RED);

#End
 

Join useThinkScript to post your question to a community of 21,000+ developers and traders.

Similar threads

Not the exact question you're looking for?

Start a new thread and receive assistance from our community.

87k+ Posts
425 Online
Create Post

Similar threads

Similar threads

The Market Trading Game Changer

Join 2,500+ subscribers inside the useThinkScript VIP Membership Club
  • Exclusive indicators
  • Proven strategies & setups
  • Private Discord community
  • ‘Buy The Dip’ signal alerts
  • Exclusive members-only content
  • Add-ons and resources
  • 1 full year of unlimited support

Frequently Asked Questions

What is useThinkScript?

useThinkScript is the #1 community of stock market investors using indicators and other tools to power their trading strategies. Traders of all skill levels use our forums to learn about scripting and indicators, help each other, and discover new ways to gain an edge in the markets.

How do I get started?

We get it. Our forum can be intimidating, if not overwhelming. With thousands of topics, tens of thousands of posts, our community has created an incredibly deep knowledge base for stock traders. No one can ever exhaust every resource provided on our site.

If you are new, or just looking for guidance, here are some helpful links to get you started.

What are the benefits of VIP Membership?
VIP members get exclusive access to these proven and tested premium indicators: Buy the Dip, Advanced Market Moves 2.0, Take Profit, and Volatility Trading Range. In addition, VIP members get access to over 50 VIP-only custom indicators, add-ons, and strategies, private VIP-only forums, private Discord channel to discuss trades and strategies in real-time, customer support, trade alerts, and much more. Learn all about VIP membership here.
How can I access the premium indicators?
To access the premium indicators, which are plug and play ready, sign up for VIP membership here.
Back
Top