Be the Trader You Want To Become!!!

antwerks

Well-known member
VIP
VIP Enthusiast

A Professional’s Guide to Surviving and Winning in the Markets

This isn’t about hype, motivation, or quick money.
This is the baseline standard if you want to trade consistently, protect capital, and actually improve over time.

1. Start Your Day Before the Market Does

If you’re reacting, you’re already late.
Serious traders use the morning to:
    • Map key levels and scenarios
    • Identify A+ setups before they form
    • Review prior trades and mistakes
    • Align mentally before volatility begins
Key principle:
Preparation removes emotion. Reaction creates it.

2. Treat Every Trade as Data (Journal Everything)

If you’re not tracking it, you’re not improving.
Your journal should include:
    • Entry reasoning (setup, context, confirmation)
    • Exit reasoning (planned vs emotional)
    • Market condition (trend, chop, volatility)
    • Emotional state (calm, rushed, revenge, hesitation)
Over time, patterns emerge:
    • What actually works for you
    • Where you consistently lose
    • When you should not be trading
Key principle:
Your journal is your edge—without it, you’re guessing.

3. Risk Management Is the Business

You’re not in the business of being right.
You’re in the business of not blowing up.
Non-negotiables:
    • Fixed risk per trade (e.g., 0.5%–1%)
    • Proper position sizing (based on stop distance)
    • Hard stops — no exceptions
    • Zero revenge trading
Key principle:
Survival first. Consistency second. Profit last.

4. Build a Body That Can Handle Pressure

Trading is cognitive performance under stress.
If your body is weak, your decisions will be too.
Focus on:
    • Strength training → discipline & structure
    • Cardio → endurance during long sessions
    • Mobility/breathing → stress control in volatility
Key principle:
Your physiology affects your execution more than your strategy.

5. Master Emotional Control (Execution > Prediction)

Most traders don’t fail from bad setups.
They fail from bad execution.
You must develop the ability to:
    • Execute your plan without hesitation
    • Accept losses without emotional reaction
    • Avoid impulsive trades outside your system
Key principle:
The market doesn’t care what you think—it rewards what you execute.

6. Protect Your Sleep Like It’s Capital

Fatigue destroys discipline faster than losses do.
Minimum standards:
    • Consistent sleep/wake cycle
    • No screens before bed (or reduce stimulation)
    • Dark, cool sleep environment
    • Avoid late-night dopamine overload (charts, socials, etc.)
Key principle:
Recovery is part of performance. No recovery = no edge.

7. Study With Purpose Every Day

Experience alone is slow.
Deliberate study accelerates everything.
Focus your study on:
    • Trade reviews (your own first, then others)
    • Market structure and behavior
    • Risk and position management
    • Psychological patterns (fear, greed, hesitation)
Key principle:
Skill compounds. Motivation doesn’t.

Final Framework: How to Actually Apply This Daily

Every trading day should follow this structure:

Before Market

    • Prep levels and scenarios
    • Review yesterday’s trades
    • Define your A+ conditions

During Market

    • Execute only predefined setups
    • Respect risk on every trade
    • Stay neutral emotionally

After Market

    • Journal every trade
    • Review mistakes and wins
    • Identify one improvement for tomorrow

Bottom Line

Trading isn’t about finding more setups.
It’s about:
    • Doing fewer things
    • With more discipline
    • More consistently over time
If you follow this framework:
    • You’ll trade less impulsively
    • You’ll recognize your real edge
    • You’ll stay in the game long enough to improve
And that’s what separates traders who last from those who disappear.
 
Last edited by a moderator:

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

Your summary is GREAT! I tend to follow the market throughout the day in search of opportunities. Can you provide more insight into your process for the 1st 2 bullets of #1?
  • Map key levels and scenarios
    • What key levels?
    • Indices?
    • Do "scenarios" = "trade strategies?" If not, please elaborate.
  • Identify A+ setups before they form
    • Is this the process of running scans based on given strategies and pre-market data?
    • How do you define an A+ setup?
Much appreciated. I find a lot of value in your posts...thank you!
 
Your summary is GREAT! I tend to follow the market throughout the day in search of opportunities. Can you provide more insight into your process for the 1st 2 bullets of #1?
  • Map key levels and scenarios
    • What key levels?
    • Indices?
    • Do "scenarios" = "trade strategies?" If not, please elaborate.
  • Identify A+ setups beforethey form
    • Is this the process of running scans based on given strategies and pre-market data?
    • How do you define an A+ setup?
Much appreciated. I find a lot of value in your posts...thank you!

PART 1 — “MAP KEY LEVELS AND SCENARIOS”​

These is NOT random lines on a chart. You’re building a decision map for the day/week.

WHAT ARE “KEY LEVELS”?

You’re looking for areas where behavior is likely to change, not just “support/resistance.”

Core categories you should focus on the following:​

1.) STRUCTURAL LEVELS (PRICE MEMORY)
These are where price has proven reaction:
  • Prior day high / low
  • Prior week high / low
  • Range highs/lows (consolidation boxes)
  • Breakout / breakdown levels
  • Failed breakout levels (VERY important)
These answer “Where did traders get trapped or rewarded?”

2. VALUE LEVELS

This is where your decision system shines.
  • VWAP (daily / anchored)
  • Volume nodes (if you use them)
  • Your “range center / zero line” like POC on the volume Profile

These answer “Where is fair value shifting?”

3. LIQUIDITY / POSITIONING LEVELS

These are where moves accelerate:
  • Gaps (especially unfilled)
  • Overnight highs/lows
  • Option walls (if you track them)
  • “Obvious highs/lows” (retail stops)
  • Low volume zones on Vol Profile
These answer “Where will movement speed up?”

4. INDICES (YES = VERY IMPORTANT)

You asked specifically good instinct.
You should ALWAYS map:
  • SPY / ES
  • QQQ / NQ
  • Sometimes IWM (for breadth)
  • Sometimes I map out category ETF like XLK for tech since that group is drive by just a few
Why? Because individual stocks don’t move independently in most environments

What to look for in indices:
  • Are they trending or compressing?
  • Where are THEY relative to VWAP / ARVWAP?
  • Are they at extremes or in balance?
PUTTING IT TOGETHER
Before the open, you should be able to say:

“If price reclaims X → likely move to Y
If price rejects X → likely move to Z”

That’s mapping.

PART 2 WHAT ARE “SCENARIOS”?

No, they are NOT trade strategies. They are conditional paths.

SCENARIO = “IF / THEN LOGIC”
Example:

Bull Scenario
  • IF price holds above VWAP / *whatever indicator you use
  • AND momentum expands
  • THEN look for continuation then next resistance
Bear Scenario
  • IF price rejects key level
  • AND momentum weakens
  • THEN look for move back to value
Chop Scenario
  • IF price stays inside value (VWAP bands / *whatever bands)
  • THEN do nothing or scalp only
A strategy is “how you execute”

A scenario is “when you’re allowed to execute”

PART 3 “IDENTIFY A+ SETUPS BEFORE THEY FORM”

This is where you move from reactive to proactive

IS THIS SCANNING?

Partially but not fully. Scanning gives you candidates
Preparation gives you context

You need both.

THE REAL PROCESS

Step 1 — Scan (broad filter)​

Find stocks with:
  • Trend alignment
  • Volume
  • Volatility (expansion or compression)

Step 2 — Apply YOUR FRAMEWORK​

Now ask:
  • Where is price vs VWAP?
  • Is it stretched or coiled?
  • Is PNVI expanding or compressing?
  • Is vol engine in compression (ready to move)?

Step 3 — Pre-define the trigger​

Example: “If price pulls back to VWAP AND PNVI expands then A+ long”

Now you’re waiting, not chasing.

PART 4 — WHAT IS AN “A+ SETUP”?
This is the most important question you asked.

WHAT IT IS NOT
  • Not “looks good”
  • Not “strong candle”
  • Not “RSI oversold”
WHAT IT IS
Alignment of multiple independent factors
An A+ setup for YOU looks like:

A+ LONG
  • Price above VWAP
  • VWAP sloping up
  • Pullback into VWAP or band
  • PNVI spread expanding upward
  • Vol engine expansion or coming out of compression
  • RangeCenter/ MA > 0 (or turning up)
A+ SHORT
  • Price below VWAP
  • VWAP sloping down
  • Rally into VWAP/band
  • PNVI weakening
  • Vol expansion downward
KEY INSIGHT
An A+ setup is not “one signal”, it is confluence + timing + location

If you want to make this actionable:

Every morning, answer 3 things:

1. Where is price likely to react? - (key levels)

2. What happens IF it reacts there? - (scenarios)

3. What conditions must align for me to act? - → (A+ setup definition)

Most traders look for trades. You define conditions before price gets there. Let the action come to you!!!
 
Thank you for the additional context as it created an "ah ha" event for me. I've been studying your "Structured Scoring System for Identifying Setups" and now see the connection between these two posts. I'm working my way through each of your scoring criteria to ensure I understand the criteria, and add clarifying notes for myself. I'm an Electrical Engineer by education and will admit that some of the logic in these indicators are testing my math skills from long ago. Your posts contained a wealth of information so I pulled them together into one easier to follow (for me) "Playbook." I attached a copy (WIP) in the event others are interested in a consolidated view of this great framework; feedback is always welcome. Thx again.

 

Attachments

  • Prof Guide to Trading and Scoring Framework.pdf
    984.3 KB · Views: 208
Thank you for the additional context as it created an "ah ha" event for me. I've been studying your "Structured Scoring System for Identifying Setups" and now see the connection between these two posts. I'm working my way through each of your scoring criteria to ensure I understand the criteria, and add clarifying notes for myself. I'm an Electrical Engineer by education and will admit that some of the logic in these indicators are testing my math skills from long ago. Your posts contained a wealth of information so I pulled them together into one easier to follow (for me) "Playbook." I attached a copy (WIP) in the event others are interested in a consolidated view of this great framework; feedback is always welcome. Thx again.

WOW THIS IS GREAT WRITE UP !!!! really brings it all together!
 
Incredibly fine work here! Do you have any recommendations on how to adapt this for one who wants to swing trade, and even more importantly, protect a position I’ve been holding onto since August 2017 in QQQ?
This is an interesting problem. You don't own a trade. You own a wealth asset. QQQ from August 2017 has likely appreciated several hundred percent. The biggest danger isn't missing upside. The biggest danger is giving back years of gains during a secular bear market.

What and How I Would Track Instead is that I would create a separate label: QQQ CAPITAL PRESERVATION MODE based on: 1) Monthly TMO. If Monthly TMO turns down: RISK = ELEVATED. 2) Weekly TMO, If Weekly turns down while Monthly is weakening: RISK = HIGH.

40 Week Moving Average (roughly 200-day MA). If QQQ closes below 40-week MA: DEFENSE ALERT.
30 Week MA Slope, borrowing from Stan Weinstein:

If:
  • Price below 30-week MA
  • 30-week MA rolling over
then: EXIT LONG-TERM HOLD. This catches most secular bear markets.

What History Says is if you had you used:
  • Weekly TMO
  • 30 Week MA
  • Monthly TMO
you would have avoided most of:
  • 2000 crash
  • 2008 crash
  • 2022 bear market
while staying invested through almost all major bull runs. No system catches the exact top, (or the bottom), but preserving capital matters more than selling the exact high or buying at the exact low.

What I Would Use is a dedicated QQQ Wealth Protection Dashboard with labels like:

MONTHLY TREND: UP
WEEKLY TREND: UP
30W MA: RISING
PRICE: ABOVE 30W
RISK LEVEL: LOW

ACTION: HOLD CORE POSITION

Then when conditions deteriorate labels would indicate:

MONTHLY TREND: DOWN
WEEKLY TREND: DOWN
30W MA: FALLING
PRICE: BELOW 30W

RISK LEVEL: CRITICAL

ACTION:
REDUCE 25%-50%
SELL COVERED CALLS
ADD PROTECTIVE PUTS

Notice that's very different from daily ES and NVDA trading tools.
Thsi is a dedicated QQQ Capital Preservation / Wealth Protection Engine for ThinkOrSwim that grades the position:
  • GREEN = Hold Aggressively
  • YELLOW = Tighten Risk
  • ORANGE = Hedge
  • RED = Exit / Major Reduction
using Monthly TMO, Weekly TMO, 30-Week MA, Relative Strength, and a market regime filter. That would be closer to how institutions manage decade-long winners than a normal trading indicator. Add this to your QQQ chart. Not advice - just something I would do. YOU CAN HIDE THE PLOTTED LINES IF YOU WANT. this is not advice nor recommendations on trades; these labels are just to get your attention so you can do your own research and planning and executions.

Code:
# ==========================================================
# QQQ CAPITAL PRESERVATION / WEALTH PROTECTION ENGINE
# Built for long-term core holdings protection
# antwerks framework adaptation
# ==========================================================

declare upper;

# ==========================================================
# INPUTS
# ==========================================================
input showLabels = yes;
input showMAs = yes;

input weeklyTMOLength = 14;
input weeklyTMOCalcLength = 5;
input weeklyTMOSmoothLength = 3;

input monthlyTMOLength = 14;
input monthlyTMOCalcLength = 5;
input monthlyTMOSmoothLength = 3;

input shortWeekMA = 30;
input longWeekMA = 40;

input defensiveScoreTrigger = 4;
input hedgeScoreTrigger = 6;
input exitScoreTrigger = 8;

# ==========================================================
# WEEKLY / MONTHLY PRICE
# ==========================================================
def wClose = close(period = AggregationPeriod.WEEK);
def mClose = close(period = AggregationPeriod.MONTH);

# ==========================================================
# TMO FUNCTION
# ==========================================================
script TMO {
    input price = close;
    input length = 14;
    input calcLength = 5;
    input smoothLength = 3;

    def ema1 = ExpAverage(price - price[1], length);
    def ema2 = ExpAverage(ema1, calcLength);
    plot out = ExpAverage(ema2, smoothLength);
}

# ==========================================================
# WEEKLY / MONTHLY TMO
# ==========================================================
def weeklyTMO =
    TMO(
        wClose,
        weeklyTMOLength,
        weeklyTMOCalcLength,
        weeklyTMOSmoothLength
    );

def monthlyTMO =
    TMO(
        mClose,
        monthlyTMOLength,
        monthlyTMOCalcLength,
        monthlyTMOSmoothLength
    );

def weeklyTMORising = weeklyTMO > weeklyTMO[1];
def weeklyTMOFalling = weeklyTMO < weeklyTMO[1];

def monthlyTMORising = monthlyTMO > monthlyTMO[1];
def monthlyTMOFalling = monthlyTMO < monthlyTMO[1];

# ==========================================================
# WEEKLY MOVING AVERAGES
# ==========================================================
def MA30W = Average(wClose, shortWeekMA);
def MA40W = Average(wClose, longWeekMA);

def MA30WRising = MA30W > MA30W[1];
def MA30WFalling = MA30W < MA30W[1];

def MA40WRising = MA40W > MA40W[1];
def MA40WFalling = MA40W < MA40W[1];

def priceAbove30W = close > MA30W;
def priceBelow30W = close < MA30W;

def priceAbove40W = close > MA40W;
def priceBelow40W = close < MA40W;

# ==========================================================
# RISK FLAGS
# ==========================================================
def riskWeeklyTMO =
    weeklyTMOFalling;

def riskMonthlyTMO =
    monthlyTMOFalling;

def riskPriceBelow30W =
    priceBelow30W;

def riskPriceBelow40W =
    priceBelow40W;

def risk30WFalling =
    MA30WFalling;

def risk40WFalling =
    MA40WFalling;

def riskWeeklyBelowZero =
    weeklyTMO < 0;

def riskMonthlyBelowZero =
    monthlyTMO < 0;

# ==========================================================
# CAPITAL PRESERVATION RISK SCORE
# ==========================================================
def RiskScore =
    (if riskWeeklyTMO then 1 else 0) +
    (if riskMonthlyTMO then 2 else 0) +
    (if riskPriceBelow30W then 2 else 0) +
    (if riskPriceBelow40W then 2 else 0) +
    (if risk30WFalling then 1 else 0) +
    (if risk40WFalling then 1 else 0) +
    (if riskWeeklyBelowZero then 1 else 0) +
    (if riskMonthlyBelowZero then 2 else 0);

# ==========================================================
# RISK STATE
# ==========================================================
def HoldAggressive =
    RiskScore < defensiveScoreTrigger;

def TightenRisk =
    RiskScore >= defensiveScoreTrigger and
    RiskScore < hedgeScoreTrigger;

def HedgeMode =
    RiskScore >= hedgeScoreTrigger and
    RiskScore < exitScoreTrigger;

def ExitMode =
    RiskScore >= exitScoreTrigger;

# ==========================================================
# PLOTS
# ==========================================================
plot MA30WPlot =
    if showMAs then MA30W else Double.NaN;

MA30WPlot.SetDefaultColor(Color.CYAN);
MA30WPlot.SetLineWeight(2);

plot MA40WPlot =
    if showMAs then MA40W else Double.NaN;

MA40WPlot.SetDefaultColor(Color.YELLOW);
MA40WPlot.SetLineWeight(2);

# ==========================================================
# CLOUD
# ==========================================================
AddCloud(
    if showMAs then MA30W else Double.NaN,
    if showMAs then MA40W else Double.NaN,
    Color.DARK_GREEN,
    Color.DARK_RED
);

# ==========================================================
# LABELS
# ==========================================================
AddLabel(
    showLabels,
    "QQQ WEALTH PROTECTION",
    Color.WHITE
);

AddLabel(
    showLabels,
    "RISK SCORE: " + RiskScore,
    if HoldAggressive then Color.GREEN
    else if TightenRisk then Color.YELLOW
    else if HedgeMode then Color.ORANGE
    else Color.RED
);

AddLabel(
    showLabels,
    if HoldAggressive then "ACTION: HOLD CORE POSITION"
    else if TightenRisk then "ACTION: TIGHTEN RISK / STOP CHASING"
    else if HedgeMode then "ACTION: HEDGE / SELL CALLS / PROTECTIVE PUTS"
    else "ACTION: EXIT OR REDUCE MAJOR SIZE",
    if HoldAggressive then Color.GREEN
    else if TightenRisk then Color.YELLOW
    else if HedgeMode then Color.ORANGE
    else Color.RED
);

AddLabel(
    showLabels,
    if monthlyTMORising then
        "MONTHLY TMO: RISING"
    else
        "MONTHLY TMO: FALLING",
    if monthlyTMORising then Color.GREEN else Color.RED
);

AddLabel(
    showLabels,
    if weeklyTMORising then
        "WEEKLY TMO: RISING"
    else
        "WEEKLY TMO: FALLING",
    if weeklyTMORising then Color.GREEN else Color.RED
);

AddLabel(
    showLabels,
    if priceAbove30W then
        "PRICE > 30W MA"
    else
        "PRICE < 30W MA",
    if priceAbove30W then Color.GREEN else Color.RED
);

AddLabel(
    showLabels,
    if priceAbove40W then
        "PRICE > 40W MA"
    else
        "PRICE < 40W MA",
    if priceAbove40W then Color.GREEN else Color.RED
);

AddLabel(
    showLabels,
    if MA30WRising then
        "30W MA: RISING"
    else
        "30W MA: FALLING",
    if MA30WRising then Color.GREEN else Color.RED
);

AddLabel(
    showLabels,
    if MA40WRising then
        "40W MA: RISING"
    else
        "40W MA: FALLING",
    if MA40WRising then Color.GREEN else Color.RED
);

# ==========================================================
# WARNING BUBBLES
# ==========================================================
def newHedgeSignal =
    HedgeMode and !HedgeMode[1];

def newExitSignal =
    ExitMode and !ExitMode[1];

AddChartBubble(
    newHedgeSignal,
    high,
    "HEDGE MODE",
    Color.ORANGE,
    yes
);

AddChartBubble(
    newExitSignal,
    high,
    "EXIT / REDUCE",
    Color.RED,
    yes
);

# ==========================================================
# ALERTS
# ==========================================================
Alert(
    newHedgeSignal,
    "QQQ Wealth Protection: Hedge Mode Triggered",
    Alert.BAR,
    Sound.Ding
);

Alert(
    newExitSignal,
    "QQQ Wealth Protection: Exit / Major Reduction Triggered",
    Alert.BAR,
    Sound.Chimes
);

# ==========================================================
# END
# ==========================================================
 
Last edited:
Let's say you gotta bunch of those long time holders or that you made your own portfolio and want to stay abreast on its health, here is a script that you can input your stocks or positions and it will grade your performance and health and give report as labels on the daily chart. pretty cool.
Code:
# ==========================================================
# PORTFOLIO TMO HEALTH ENGINE V1
# Editable 8-Symbol Self-Made Fund Dashboard
# ANTWERKS  ==========================================================

declare upper;

# =========================
# INPUTS
# =========================
input symbol1 = "NVDA";
input symbol2 = "META";
input symbol3 = "MSFT";
input symbol4 = "AAPL";
input symbol5 = "GOOGL";
input symbol6 = "AMZN";
input symbol7 = "TSLA";
input symbol8 = "QQQ";

input use1 = yes;
input use2 = yes;
input use3 = yes;
input use4 = yes;
input use5 = yes;
input use6 = yes;
input use7 = yes;
input use8 = yes;

input analysisAgg = AggregationPeriod.DAY;

input fastEMA = 9;
input slowEMA = 21;

input TMO_length = 14;
input TMO_calcLength = 5;
input TMO_smoothLength = 3;

input showLabels = yes;
input showMemberLabels = yes;

# =========================
# MEMBER SCORE SCRIPT
# +2 Strong Bull
# +1 Bull
#  0 Neutral
# -1 Bear
# -2 Strong Bear
# =========================
script MemberScore {
    input price = close;
    input fastEMA = 9;
    input slowEMA = 21;
    input TMO_length = 14;
    input TMO_calcLength = 5;
    input TMO_smoothLength = 3;

    def emaFast = ExpAverage(price, fastEMA);
    def emaSlow = ExpAverage(price, slowEMA);

    def tmoRaw = ExpAverage(price - price[1], TMO_length);
    def tmoCalc = ExpAverage(tmoRaw, TMO_calcLength);
    def tmo = ExpAverage(tmoCalc, TMO_smoothLength);

    def bullTrend = emaFast > emaSlow;
    def bearTrend = emaFast < emaSlow;

    def tmoRising = tmo > tmo[1];
    def tmoFalling = tmo < tmo[1];

    plot score =
        if bullTrend and tmoRising and tmo > 0 then 2
        else if bullTrend or tmoRising then 1
        else if bearTrend and tmoFalling and tmo < 0 then -2
        else if bearTrend or tmoFalling then -1
        else 0;
}

# =========================
# PRICE DATA
# =========================
def c1 = close(symbol = symbol1, period = analysisAgg);
def c2 = close(symbol = symbol2, period = analysisAgg);
def c3 = close(symbol = symbol3, period = analysisAgg);
def c4 = close(symbol = symbol4, period = analysisAgg);
def c5 = close(symbol = symbol5, period = analysisAgg);
def c6 = close(symbol = symbol6, period = analysisAgg);
def c7 = close(symbol = symbol7, period = analysisAgg);
def c8 = close(symbol = symbol8, period = analysisAgg);

# =========================
# SCORES
# =========================
def s1 = if use1 then MemberScore(c1, fastEMA, slowEMA, TMO_length, TMO_calcLength, TMO_smoothLength) else 0;
def s2 = if use2 then MemberScore(c2, fastEMA, slowEMA, TMO_length, TMO_calcLength, TMO_smoothLength) else 0;
def s3 = if use3 then MemberScore(c3, fastEMA, slowEMA, TMO_length, TMO_calcLength, TMO_smoothLength) else 0;
def s4 = if use4 then MemberScore(c4, fastEMA, slowEMA, TMO_length, TMO_calcLength, TMO_smoothLength) else 0;
def s5 = if use5 then MemberScore(c5, fastEMA, slowEMA, TMO_length, TMO_calcLength, TMO_smoothLength) else 0;
def s6 = if use6 then MemberScore(c6, fastEMA, slowEMA, TMO_length, TMO_calcLength, TMO_smoothLength) else 0;
def s7 = if use7 then MemberScore(c7, fastEMA, slowEMA, TMO_length, TMO_calcLength, TMO_smoothLength) else 0;
def s8 = if use8 then MemberScore(c8, fastEMA, slowEMA, TMO_length, TMO_calcLength, TMO_smoothLength) else 0;

def activeCount =
    (if use1 then 1 else 0) +
    (if use2 then 1 else 0) +
    (if use3 then 1 else 0) +
    (if use4 then 1 else 0) +
    (if use5 then 1 else 0) +
    (if use6 then 1 else 0) +
    (if use7 then 1 else 0) +
    (if use8 then 1 else 0);

def bullCount =
    (if s1 > 0 then 1 else 0) +
    (if s2 > 0 then 1 else 0) +
    (if s3 > 0 then 1 else 0) +
    (if s4 > 0 then 1 else 0) +
    (if s5 > 0 then 1 else 0) +
    (if s6 > 0 then 1 else 0) +
    (if s7 > 0 then 1 else 0) +
    (if s8 > 0 then 1 else 0);

def bearCount =
    (if s1 < 0 then 1 else 0) +
    (if s2 < 0 then 1 else 0) +
    (if s3 < 0 then 1 else 0) +
    (if s4 < 0 then 1 else 0) +
    (if s5 < 0 then 1 else 0) +
    (if s6 < 0 then 1 else 0) +
    (if s7 < 0 then 1 else 0) +
    (if s8 < 0 then 1 else 0);

def neutralCount = activeCount - bullCount - bearCount;

def totalScore = s1 + s2 + s3 + s4 + s5 + s6 + s7 + s8;

def maxScore = activeCount * 2;
def minScore = -activeCount * 2;

# =========================
# PORTFOLIO STATUS
# =========================
def strongBull = totalScore >= maxScore * 0.65;
def bullish = totalScore >= maxScore * 0.25 and !strongBull;
def neutral = totalScore < maxScore * 0.25 and totalScore > minScore * 0.25;
def strongBear = totalScore <= minScore * 0.65;
def bearish = totalScore <= minScore * 0.25 and !strongBear;


# =========================
# MASTER LABELS
# =========================
AddLabel(showLabels,
    "PORTFOLIO TMO HEALTH",
    Color.WHITE
);

AddLabel(showLabels,
    "BULLISH MEMBERS: " + bullCount + "/" + activeCount,
    if bullCount >= activeCount * 0.75 then Color.GREEN
    else if bullCount >= activeCount * 0.50 then Color.CYAN
    else if bullCount <= activeCount * 0.25 then Color.RED
    else Color.YELLOW
);

AddLabel(showLabels,
    "BEARISH MEMBERS: " + bearCount + "/" + activeCount,
    if bearCount >= activeCount * 0.75 then Color.RED
    else if bearCount >= activeCount * 0.50 then Color.PINK
    else Color.GRAY
);

AddLabel(showLabels,
    "PORT SCORE: " + totalScore + " / " + maxScore,
    if strongBull then Color.GREEN
    else if bullish then Color.CYAN
    else if strongBear then Color.RED
    else if bearish then Color.PINK
    else Color.GRAY
);

AddLabel(showLabels,
    if strongBull then "STATUS: STRONG RISK-ON"
    else if bullish then "STATUS: BULLISH / HOLD"
    else if neutral then "STATUS: MIXED / WATCH"
    else if bearish then "STATUS: DEFENSIVE"
    else "STATUS: RISK-OFF",
    if strongBull then Color.GREEN
    else if bullish then Color.CYAN
    else if neutral then Color.GRAY
    else if bearish then Color.PINK
    else Color.RED
);

AddLabel(showLabels,
    if bullCount >= activeCount * 0.75 then "ACTION: HOLD / ADD ONLY ON PULLBACKS"
    else if bullCount >= activeCount * 0.50 then "ACTION: HOLD CORE / SELECTIVE ADDS"
    else if bullCount >= activeCount * 0.35 then "ACTION: CAUTION / HEDGE PARTIAL"
    else "ACTION: DEFENSIVE / REDUCE RISK",
    if bullCount >= activeCount * 0.75 then Color.GREEN
    else if bullCount >= activeCount * 0.50 then Color.CYAN
    else if bullCount >= activeCount * 0.35 then Color.YELLOW
    else Color.RED
);

# =========================
# MEMBER LABELS
# =========================
AddLabel(showMemberLabels and use1,
    symbol1 + ": " + s1,
    if s1 == 2 then Color.GREEN else if s1 == 1 then Color.CYAN else if s1 == -1 then Color.PINK else if s1 == -2 then Color.RED else Color.GRAY
);

AddLabel(showMemberLabels and use2,
    symbol2 + ": " + s2,
    if s2 == 2 then Color.GREEN else if s2 == 1 then Color.CYAN else if s2 == -1 then Color.PINK else if s2 == -2 then Color.RED else Color.GRAY
);

AddLabel(showMemberLabels and use3,
    symbol3 + ": " + s3,
    if s3 == 2 then Color.GREEN else if s3 == 1 then Color.CYAN else if s3 == -1 then Color.PINK else if s3 == -2 then Color.RED else Color.GRAY
);

AddLabel(showMemberLabels and use4,
    symbol4 + ": " + s4,
    if s4 == 2 then Color.GREEN else if s4 == 1 then Color.CYAN else if s4 == -1 then Color.PINK else if s4 == -2 then Color.RED else Color.GRAY
);

AddLabel(showMemberLabels and use5,
    symbol5 + ": " + s5,
    if s5 == 2 then Color.GREEN else if s5 == 1 then Color.CYAN else if s5 == -1 then Color.PINK else if s5 == -2 then Color.RED else Color.GRAY
);

AddLabel(showMemberLabels and use6,
    symbol6 + ": " + s6,
    if s6 == 2 then Color.GREEN else if s6 == 1 then Color.CYAN else if s6 == -1 then Color.PINK else if s6 == -2 then Color.RED else Color.GRAY
);

AddLabel(showMemberLabels and use7,
    symbol7 + ": " + s7,
    if s7 == 2 then Color.GREEN else if s7 == 1 then Color.CYAN else if s7 == -1 then Color.PINK else if s7 == -2 then Color.RED else Color.GRAY
);

AddLabel(showMemberLabels and use8,
    symbol8 + ": " + s8,
    if s8 == 2 then Color.GREEN else if s8 == 1 then Color.CYAN else if s8 == -1 then Color.PINK else if s8 == -2 then Color.RED else Color.GRAY
);

# =========================
# OPTIONAL BACKGROUND
# =========================
AssignBackgroundColor(
    if strongBull then CreateColor(0, 35, 0)
    else if bullish then CreateColor(0, 25, 35)
    else if strongBear then CreateColor(45, 0, 0)
    else if bearish then CreateColor(35, 0, 20)
    else Color.CURRENT
);

 
antwerks - your recommendation for when things head south was:

“ACTION:
REDUCE 25%-50%
SELL COVERED CALLS
ADD PROTECTIVE PUTS”

I don’t do options, so would you consider using inverse such as SQQQ in place of the options?
 
antwerks - your recommendation for when things head south was:

“ACTION:
REDUCE 25%-50%
SELL COVERED CALLS
ADD PROTECTIVE PUTS”

I don’t do options, so would you consider using inverse such as SQQQ in place of the options?
No, not the SQQQ, I would prefer (this is just me) the PSQ. Realize though that the PSQ and QQQ are not 1:1. The SQQQ/PSQ are trading instruments, not investment instrument. Because of daily rebalancing and volatility drag, they can decay badly over time. If you did play the hedge with SQQQ you would need to watch this and do your math cause even if you win you can sometimes lose. Even the PSQ play is temporary right? Cause you are playing the hedge and you do not need a hedge all the time. Historically, PSQ has traded at roughly one-quarter to one-fifth the price of QQQ (today much much more). So, depending on the strength of your "want to be hedge" you will have to double or at least many multiply your position in PSQ to protect whatever percentage of the QQQ you want or can afford.

For a long-term QQQ holder positioning in PSQ might look like this:

Mild Concern = 10-20% of value of QQQ into PSQ

Moderate Concern = 25-40% PSQ

Major Bear Market Concern = 50%+ PSQ (but only if there is a strong macro reason. Sometimes just better to get out or reduce or apply for a margin account and get approved for options just for QQQ calls and puts)
 
Last edited:
antwerks - your recommendation for when things head south was:

“ACTION:
REDUCE 25%-50%
SELL COVERED CALLS
ADD PROTECTIVE PUTS”

I don’t do options, so would you consider using inverse such as SQQQ in place of the options?
Using today's numbers:
QQQ = 740
PSQ = 25

The ratio is: 740 / 25 = 29.6

So one share of QQQ costs about the same as 30 shares of PSQ. But that does not mean 1 QQQ share = 30 PSQ shares for hedging purposes.

Example

Suppose you own: 100 shares QQQ

Value: 100 × 740 = $74,000

A full PSQ hedge would be approximately:
$74,000 worth of PSQ

Number of PSQ shares: 74,000 / 25 = 2,960 shares

Notice what happened: 100 QQQ shares vs 2960 PSQ shares

Almost exactly the 30:1 price ratio.

But Here's The Interesting Part, For someone who has held QQQ since 2017, I would rarely recommend a 100% hedge.
A 100% hedge means:

QQQ +10%

PSQ -10%

≈ Flat

You effectively stop participating in the market.

What Many Wealth Managers Do

If the goal is simply: "I think the market is vulnerable for the next few months." they might hedge:
20%
30%
40%

of the exposure. Example: QQQ position = $740,000

30% hedge = $222,000 PSQ

Now: QQQ drops 10%

Loss = -74,000

PSQ gains 10%

Gain = +22,200

Net: = -51,800 instead of: -74,000
 
You are AMAZING!!!! THanks, as always, for your thoughtful thoroughness. How do you have the time to help all of us so much? (just being nosy) :)
 
Using today's numbers:
QQQ = 740
PSQ = 25

The ratio is: 740 / 25 = 29.6

So one share of QQQ costs about the same as 30 shares of PSQ. But that does not mean 1 QQQ share = 30 PSQ shares for hedging purposes.

Example

Suppose you own: 100 shares QQQ

Value: 100 × 740 = $74,000

A full PSQ hedge would be approximately:
$74,000 worth of PSQ

Number of PSQ shares: 74,000 / 25 = 2,960 shares

Notice what happened: 100 QQQ shares vs 2960 PSQ shares

Almost exactly the 30:1 price ratio.

But Here's The Interesting Part, For someone who has held QQQ since 2017, I would rarely recommend a 100% hedge.
A 100% hedge means:

QQQ +10%

PSQ -10%

≈ Flat

You effectively stop participating in the market.

What Many Wealth Managers Do

If the goal is simply: "I think the market is vulnerable for the next few months." they might hedge:
20%
30%
40%

of the exposure. Example: QQQ position = $740,000

30% hedge = $222,000 PSQ

Now: QQQ drops 10%

Loss = -74,000

PSQ gains 10%

Gain = +22,200

Net: = -51,800 instead of: -74,000
We didn’t talk about taxes & how they would figure into all of this. If I sold some portion of my long-term stake in QQQ I believe that the federal tax would be 0, but my state would clip me for 12-15%. How would this affect your comments re: hedging with PSQ? BTW, I’m retired so I have the time to ride herd on any inverse positions.
 

Similar threads

Not the exact question you're looking for?

Start a new thread and receive assistance from our community.

87k+ Posts
1136 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