takeshi MNO_2Step_Screener_MOU_MOUB_KAKU//@version=5
indicator("MNO_2Step_Screener_MOU_MOUB_KAKU", overlay=true, max_labels_count=500, max_lines_count=500)
// =========================
// Inputs
// =========================
emaSLen = input.int(5, "EMA Short (5)", minval=1)
emaMLen = input.int(13, "EMA Mid (13)", minval=1)
emaLLen = input.int(26, "EMA Long (26)", minval=1)
macdFast = input.int(12, "MACD Fast", minval=1)
macdSlow = input.int(26, "MACD Slow", minval=1)
macdSignal = input.int(9, "MACD Signal", minval=1)
macdZeroTh = input.float(0.2, "MOU: MACD near-zero threshold", step=0.05)
volDays = input.int(5, "Volume avg (days equivalent)", minval=1)
volMinRatio = input.float(1.3, "MOU: Volume ratio min", step=0.1)
volStrong = input.float(1.5, "Strong volume ratio (MOU-B/KAKU)", step=0.1)
volMaxRatio = input.float(3.0, "Volume ratio max (filter)", step=0.1)
wickBodyMult = input.float(2.0, "Pinbar: lowerWick >= body*x", step=0.1)
pivotLen = input.int(20, "Resistance lookback", minval=5)
pullMinPct = input.float(5.0, "Pullback min (%)", step=0.1)
pullMaxPct = input.float(15.0, "Pullback max (%)", step=0.1)
breakLookbackBars = input.int(5, "Valid bars after break", minval=1)
showEMA = input.bool(true, "Plot EMAs")
showLabels = input.bool(true, "Show labels (猛/猛B/確)")
showShapes = input.bool(true, "Show shapes (猛/猛B/確)")
confirmOnClose = input.bool(true, "Signal only on bar close (recommended)")
locChoice = input.string("Below", "Label location", options= )
lblLoc = locChoice == "Below" ? location.belowbar : location.abovebar
// =========================
// EMA
// =========================
emaS = ta.ema(close, emaSLen)
emaM = ta.ema(close, emaMLen)
emaL = ta.ema(close, emaLLen)
plot(showEMA ? emaS : na, color=color.new(color.yellow, 0), title="EMA 5")
plot(showEMA ? emaM : na, color=color.new(color.blue, 0), title="EMA 13")
plot(showEMA ? emaL : na, color=color.new(color.orange, 0), title="EMA 26")
emaUpS = emaS > emaS
emaUpM = emaM > emaM
emaUpL = emaL > emaL
goldenOrder = emaS > emaM and emaM > emaL
above26_2bars = close > emaL and close > emaL
baseTrendOK = (emaUpS and emaUpM and emaUpL) and goldenOrder and above26_2bars
// =========================
// MACD
// =========================
= ta.macd(close, macdFast, macdSlow, macdSignal)
macdGC = ta.crossover(macdLine, macdSig)
macdUp = macdLine > macdLine
macdNearZero = math.abs(macdLine) <= macdZeroTh
macdGCAboveZero = macdGC and macdLine > 0 and macdSig > 0
macdMouOK = macdGC and macdNearZero and macdUp
macdKakuOK = macdGCAboveZero
// =========================
// Volume (days -> bars)
// =========================
sec = timeframe.in_seconds(timeframe.period)
barsPerDay = (sec > 0 and sec < 86400) ? math.round(86400 / sec) : 1
volLookbackBars = math.max(1, volDays * barsPerDay)
volMA = ta.sma(volume, volLookbackBars)
volRatio = volMA > 0 ? (volume / volMA) : na
volumeMouOK = not na(volRatio) and volRatio >= volMinRatio and volRatio <= volMaxRatio
volumeStrongOK = not na(volRatio) and volRatio >= volStrong and volRatio <= volMaxRatio
// =========================
// Candle patterns
// =========================
body = math.abs(close - open)
upperWick = high - math.max(open, close)
lowerWick = math.min(open, close) - low
pinbar = (body > 0) and (lowerWick >= wickBodyMult * body) and (lowerWick > upperWick) and (close >= open)
bullEngulf = close > open and close < open and close >= open and open <= close
bigBull = close > open and open < emaM and close > emaS and (body > ta.sma(body, 20))
candleOK = pinbar or bullEngulf or bigBull
// =========================
// Resistance / Pullback route
// =========================
res = ta.highest(high, pivotLen)
pullbackPct = res > 0 ? (res - close) / res * 100.0 : na
pullbackOK = not na(pullbackPct) and pullbackPct >= pullMinPct and pullbackPct <= pullMaxPct
brokeRes = ta.crossover(close, res )
barsSinceBreak = ta.barssince(brokeRes)
afterBreakZone = (barsSinceBreak >= 0) and (barsSinceBreak <= breakLookbackBars)
pullbackRouteOK = afterBreakZone and pullbackOK
// =========================
// Signals (猛 / 猛B / 確)
// =========================
mou_pullback = baseTrendOK and volumeMouOK and candleOK and macdMouOK and pullbackRouteOK
mou_breakout = baseTrendOK and ta.crossover(close, res ) and volumeStrongOK and macdKakuOK
cond1 = emaUpS and emaUpM and emaUpL
cond2 = goldenOrder
cond3 = above26_2bars
cond4 = macdKakuOK
cond5 = volumeMouOK
cond6 = candleOK
cond7 = pullbackOK
cond8 = pullbackRouteOK
all8 = cond1 and cond2 and cond3 and cond4 and cond5 and cond6 and cond7 and cond8
final3 = pinbar and macdKakuOK and volumeStrongOK
kaku = all8 and final3
// 確優先(同一足は確だけ出す)
confirmed = confirmOnClose ? barstate.isconfirmed : true
sigKAKU = kaku and confirmed
sigMOU = mou_pullback and not kaku and confirmed
sigMOUB = mou_breakout and not kaku and confirmed
// =========================
// Visualization
// =========================
if showLabels and sigMOU
label.new(bar_index, low, "猛", style=label.style_label_up, color=color.new(color.lime, 0), textcolor=color.black)
if showLabels and sigMOUB
label.new(bar_index, low, "猛B", style=label.style_label_up, color=color.new(color.green, 0), textcolor=color.black)
if showLabels and sigKAKU
label.new(bar_index, low, "確", style=label.style_label_up, color=color.new(color.yellow, 0), textcolor=color.black)
plotshape(showShapes and sigMOU, title="MOU", style=shape.labelup, text="猛", color=color.new(color.lime, 0), textcolor=color.black, location=lblLoc, size=size.tiny)
plotshape(showShapes and sigMOUB, title="MOUB", style=shape.labelup, text="猛B", color=color.new(color.green, 0), textcolor=color.black, location=lblLoc, size=size.tiny)
plotshape(showShapes and sigKAKU, title="KAKU", style=shape.labelup, text="確", color=color.new(color.yellow, 0), textcolor=color.black, location=lblLoc, size=size.small)
// =========================
// Alerts
// =========================
alertcondition(sigMOU, title="MNO_MOU", message="MNO: 猛(押し目)")
alertcondition(sigMOUB, title="MNO_MOU_BREAKOUT", message="MNO: 猛B(ブレイク)")
alertcondition(sigKAKU, title="MNO_KAKU", message="MNO: 確(最終)")
alertcondition(sigMOU or sigMOUB or sigKAKU, title="MNO_ALL", message="MNO: 猛/猛B/確 いずれか")
Các mẫu biểu đồ
MGC1! - Stats jour du Weekly High/Low Lun VenIndicator Name: Weekly High/Low Day Statistics (Probability Dashboard)
Description:
This indicator provides a statistical edge by analyzing historical price action to determine which day of the week is most likely to form the Weekly High or the Weekly Low.
Designed for intraday traders and swing traders, this tool helps you anticipate the structure of the weekly candle. By understanding the probabilities of when the extremums (HOD/LOD of the week) usually occur, you can better align your trade setups with the true weekly expansion.
Key Features:
Historical Analysis: Calculates statistics based on a user-defined lookback period (default is 104 weeks / 2 years) to ensure statistical significance.
Probability Dashboard: Displays a clean table on the chart showing the percentage chance for each day (Monday to Friday) to be the High or Low of the week.
Rolling Window: Automatically updates data at the close of every week to keep probabilities current.
How to Use (ICT/SMC Context):
Weekly Profiles: Use this data to validate "Classic Tuesday Low" or "Wednesday/Thursday Reversal" profiles.
Bias Confirmation: If the statistics show a 40% chance of the Weekly Low forming on a Tuesday, and price is diving into a Higher Timeframe POI on Tuesday morning, this adds high-probability confluence to your long setups.
Targeting: If the Weekly High typically forms on Thursday and it is currently Wednesday, you can hold runners for an expansion into the next day.
HydraBot v1.2 publicenglish description english description english description english description english description english description english description english description english description
Sustained 200 SMA Cross (Locked to Daily)For individuals looking to track trend changes against the 200 day simple moving average. We are measuring 5 consecutive days changing from the above or below the 200 day SMA as a flag for a potential shift in trend.
Momentum Burst Pullback System v66* Detects **momentum “bursts”** using:
* **Keltner breakout** (high above upper band for long, low below lower band for short), and/or
* **MACD histogram extreme** (highest/lowest in a lookback window, with correct sign).
* Optional **burst-zone extension** keeps the burst “active” for N extra bars after the burst.
* Marks bursts with **K** (Keltner) and **M** (MACD) labels:
* Core burst labels use one color, extension labels use a different color.
* Tracks the most recent burst as the **dominant side** (long or short), and stores burst “leg” anchors (high/low context).
* Adds **structure-based invalidation**:
* On a new **core burst**, it locks the most recent **confirmed swing** level (pivot):
* Long: locks the last confirmed **swing low**.
* Short: locks the last confirmed **swing high**.
* After the burst, if price **breaks that locked level**, the burst regime is **cancelled** (and any pending setup on that side is dropped).
* Finds **pullback setups** after a dominant burst (and not inside the active burst zone), within min/max bars:
* Long pullback requires a sequence of **lower highs** and price still below the burst high.
* Short pullback requires **higher lows** and price still above the burst low.
* Optional background shading highlights pullback bars.
* On pullback bars, plots **static TP/SL crosses** using ATR:
* Anchor is the pullback bar’s high (long) or low (short).
* TP/SL are ± ATR * multiple.
* TP plots are visually classified (bright vs faded) based on whether TP would exceed the prior burst extreme.
* Maintains a **state-machine entry + trailing stop**:
* Sets a “waiting” trigger on pullback.
* Enters when price breaks the trigger (high break for long, low break for short).
* Trails a stop using **R-multiples**, with different behavior pre-break-even, post-break-even, and near-TP.
* Optionally draws the trailing stop as horizontal line segments.
* Optionally shows a **last-bar label** with the most recent pullback’s TP and SL values.
MA20 ATR Trend Failure FilterA volatility-adaptive filter designed to identify early trend invalidation.
This indicator combines a 20-period Moving Average (MA20) with Average True Range (ATR) to dynamically define a lower volatility boundary.
When price closes below this boundary, it signals that the current trend is no longer valid and risk is increasing.
Core Concept(核心思想)
MA defines the trend baseline
ATR measures current market volatility
MA − k × ATR forms a dynamic risk threshold
A close below this threshold = trend failure
👉 中文补充:
这不是反转指标,而是趋势失效过滤器,用于避免在趋势已经被破坏后继续持仓或加仓。
How It Works
Calculate MA20 as the trend reference
Calculate ATR(14) as volatility proxy
Build adaptive bands:
Upper Band = MA20 + k × ATR
Lower Band = MA20 − k × ATR
If close < Lower Band, trend is considered failed
The ATR multiplier k automatically adjusts the tolerance based on volatility, avoiding rigid fixed-percentage rules.
Visual Elements
Yellow line: MA20
Green band: MA20 + k × ATR
Red band: MA20 − k × ATR (key risk boundary)
Red triangle + “FAIL” label: Trend failure signal
Optional background shading to highlight risk zones
Typical Use Cases
Trend-following strategies (exit / reduce exposure)
Breakout strategies (filter false continuation)
Risk management overlay (non-intrusive, no repaint)
Combine with HMA, SuperTrend, structure-based entries
👉 中文补充:
非常适合作为**“不该再拿”的客观判断条件**,而不是频繁交易信号。
Why This Indicator
Volatility-adaptive (ATR-based)
No future data, no repaint
Simple logic, strong risk control
Works across stocks, crypto, futures, indices
This tool is designed to answer one question only:
Is the current trend still valid?
Parameters
MA Length (default: 20)
ATR Length (default: 14)
ATR Multiplier k (default: 0.8)
Lower k → stricter risk control
Higher k → more tolerance, fewer false signals SSE:600595
Colby Cheese VWAP Setup [v2.0]🔧 Core Refactors
• Imbalance function fixed:
• Removed invalid usage.
• Now uses for past bar references.
• Bias checks are handled outside the function with proper series indexing.
• Bias alignment:
• Added and so CHoCH signals only fire when price change agrees with EMA bias.
• Swing reset:
• After a valid CHoCH, and reset to so stale levels don’t keep firing.
• Line/label management:
• CHoCH lines and labels now reuse persistent IDs (, ) instead of spamming new objects every trigger.
✨ New Features
• Anticipation mode:
• Blue “Anticipate” lines/labels drawn when delta + bias align before CHoCH confirmation.
• Helps you see potential setups earlier.
• Entry zone lines:
• Solid green/red lines drawn at entry levels when is enabled.
• Separate from FRVP dashed zones.
• Stop‑loss lines:
• Orange dotted lines drawn opposite the entry zone when is enabled.
• Gives a visual risk marker.
🎨 Visual Consistency
• Candle coloring simplified: white candles only when CHoCH triggers.
• FRVP zones remain dashed lines with “Enter” labels.
• Anticipation zones are blue solid lines.
• Entry zones are solid green/red.
• Stop‑loss lines are orange dotted.
Timeframe Overlay 24HrDaily High–Low Box (00:00–23:59)
This indicator highlights each trading day with a shaded box spanning from 00:00 to 23:59 (based on the selected timezone) and covering the day’s highest and lowest price.
• Green box when the day closes above its open
• Red box when the day closes below its open
• Historical days are fully drawn for easy comparison
• Current day box builds dynamically as new candles form
Useful for visualising daily range, market bias, and intraday structure across all timeframes.
Fish vs Shark Vote Dashboard (6 Signals)very simple dashboard align with fish and shark market votes 1/5 2/4 etc
Demi's + EMAs + VWAP + Key SR Lines + RSI SignalsBasic buy sell script for 5 min chart updated daily
previous day/week high and lowsThis scrip plots the previous day high and lows, pre market high and lows, previous week high and low.
Liquidity Sweep Reentry ToolkitHere’s a clear breakdown of what your Liquidity Sweep Reentry Toolkit script does, and how you can use it on your charts:
🔎 Script Breakdown
1. Visual Controls (Inputs)
• : Master toggle to turn all visuals on/off.
• : Show labels when a liquidity sweep + ChoCh condition occurs.
• : Plot green/red triangles for bullish/bearish reentry signals.
• : Prevent multiple signals within the same swing.
• : Show HH/HL/LL/LH market structure letters.
• : Slider to adjust how dim the background of HH/HL/LL/LH labels appear.
2. Core Conditions
• Defines simple bullish () and bearish () candles.
• is a placeholder for your Change of Character logic.
3. Sweep Detection
• : Detects when price makes a new high compared to the last 5 bars.
• : Detects when price makes a new low compared to the last 5 bars.
4. Restriction Flags
• Tracks whether a sweep signal has already triggered in the current swing.
• Resets when sweeps end, so new signals can appear.
5. Composite Triggers
• : Fires when bullish candle + buy-side sweep + ChoCh condition align.
• : Fires when bearish candle + sell-side sweep + ChoCh condition align.
6. Visual Labels
• Gold labels mark “BS Sweep + ChoCh” or “SS Sweep + ChoCh” events.
• Green triangle below bar = bullish reentry.
• Red triangle above bar = bearish reentry.
• Blue HH/HL/LL/LH labels narrate market structure pivots, with adjustable transparency.
7. Alerts
• Alerts can be set for bullish or bearish sweep reentry triggers, so you get notified when conditions align.
📘 How to Use It
1. Apply to Chart
Add the script to your TradingView chart (works best on intraday timeframes like 5‑minute).
2. Configure Visuals
• Use the Visual Controls panel to toggle features on/off.
• Adjust the Label Transparency slider to dim or brighten the HH/HL/LL/LH labels.
3. Interpret Signals
• Gold labels show when a sweep + ChoCh condition occurs.
• Triangles mark potential reentry points (green = bullish, red = bearish).
• HH/HL/LL/LH labels narrate market structure shifts for clarity.
4. Set Alerts
• Use the built‑in alert conditions to get notified when bullish or bearish sweep reentry triggers fire.
👉 In short: this toolkit helps you spot liquidity sweeps, confirm with ChoCh, and visualize reentry signals, while also narrating market structure pivots. It’s modular, so you can toggle features depending on how much visual clutter you want.
🛠 Workflow Example
1. Setup
• Apply the script to your chart (e.g., 5‑minute S&P futures).
• In the indicator settings, decide which visuals you want:
• Turn on Sweep + ChoCh labels if you want to see gold tags narrating liquidity events.
• Keep Entry triangles on to highlight actionable reentry points.
• Adjust the Label Transparency slider so HH/HL/LL/LH structure labels are dim enough not to clutter.
2. Watch for Sweeps
• As price pushes above recent highs → a Buy‑side Sweep is detected.
• As price dips below recent lows → a Sell‑side Sweep is detected.
• If ChoCh logic is true at the same time, you’ll see a gold label (“BS Sweep + ChoCh” or “SS Sweep + ChoCh”).
3. Confirm Reentry
• If conditions align (bullish candle + buy‑side sweep + ChoCh), you’ll see a green triangle below the bar.
• If bearish candle + sell‑side sweep + ChoCh, you’ll see a red triangle above the bar.
• These triangles are your potential reentry triggers.
4. Narrate Market Structure
• HH/HL/LL/LH labels appear at pivots, giving you a running commentary of structure shifts.
• Example: HH → HL → HH shows bullish continuation; LH → LL → LH shows bearish pressure.
• Use the transparency slider to keep these labels subtle but visible.
5. Alerts
• Set alerts for “Bullish Sweep Reentry” or “Bearish Sweep Reentry” so you don’t miss signals even if you’re away from the screen.
📘 How to Use in Practice
• Intraday trading: On a 5‑minute chart, use the toolkit to spot liquidity grabs and confirm reentry points.
• Narration: The HH/HL/LL/LH labels help you keep track of structure without manually marking pivots.
• Decision making: Gold labels + triangles = potential trade setups. Structure labels = context for trend bias.
• Customization: Dim labels when you want a cleaner chart, brighten them when you’re focused on structure.
👉 In short: this script gives you a modular toolkit — sweeps, ChoCh confirmation, reentry signals, and structure narration — all adjustable so you can tailor the visuals to your workflow.
📈 Bullish Scenario Walkthrough
1. Market Context
• You’re watching the 5‑minute chart.
• Price has been consolidating near recent highs, building liquidity above.
2. Liquidity Sweep
• Price spikes above the prior swing high → the script detects a buy‑side sweep.
• A gold label appears: “BS Sweep + ChoCh” (if your ChoCh condition is true).
3. Change of Character (ChoCh)
• The candle closes bullish ().
• Your ChoCh condition confirms a structural shift.
• Together, sweep + ChoCh = potential reentry setup.
4. Reentry Trigger
• The script plots a green triangle below the bar.
• This marks a bullish sweep reentry signal: price grabbed liquidity and is now showing strength.
5. Market Structure Narration
• At the same time, the HH/HL labels update:
• The sweep bar prints a new HH.
• The next pivot low prints an HL.
• This narrates bullish continuation: HH → HL → HH.
6. Trade Decision
• You can use the green triangle as your entry cue.
• The HH/HL narration gives you confidence that structure supports the trade.
• Alerts can be set so you don’t miss the trigger.
7. Risk Management
• Stop placement: below the HL pivot or sweep low.
• Target: next liquidity pool above, or measured move.
🧭 How to Use This in Practice
• Gold label = liquidity event + ChoCh confirmation.
• Green triangle = actionable bullish reentry trigger.
• HH/HL narration = context for trend bias and trade management.
• Transparency slider = keep structure labels subtle so the chart stays clean.
📉 Bearish Scenario Walkthrough
1. Market Context
• You’re watching the 5‑minute chart.
• Price has been consolidating near recent lows, building liquidity underneath.
2. Liquidity Sweep
• Price spikes below the prior swing low → the script detects a sell‑side sweep.
• A gold label appears: “SS Sweep + ChoCh” (if your ChoCh condition is true).
3. Change of Character (ChoCh)
• The candle closes bearish ().
• Your ChoCh condition confirms a structural shift.
• Together, sweep + ChoCh = potential bearish reentry setup.
4. Reentry Trigger
• The script plots a red triangle above the bar.
• This marks a bearish sweep reentry signal: price grabbed liquidity below and is now showing weakness.
5. Market Structure Narration
• At the same time, the LH/LL labels update:
• The sweep bar prints a new LL.
• The next pivot high prints a LH.
• This narrates bearish continuation: LH → LL → LH.
6. Trade Decision
• You can use the red triangle as your entry cue.
• The LH/LL narration gives you confidence that structure supports the short.
• Alerts can be set so you don’t miss the trigger.
7. Risk Management
• Stop placement: above the LH pivot or sweep high.
• Target: next liquidity pool below, or measured move.
🧭 How to Use This in Practice
• Gold label = liquidity event + ChoCh confirmation.
• Red triangle = actionable bearish reentry trigger.
• LH/LL narration = context for trend bias and trade management.
• Transparency slider = keep structure labels subtle so the chart stays clean.
MNO_2Step_Strategy_MOU_KAKU (Publish-Clear)//@version=5
strategy("MNO_2Step_Strategy_MOU_KAKU (Publish-Clear)", overlay=true, pyramiding=0,
max_labels_count=500, max_lines_count=500,
initial_capital=100000,
default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// =========================
// Inputs
// =========================
emaSLen = input.int(5, "EMA Short (5)")
emaMLen = input.int(13, "EMA Mid (13)")
emaLLen = input.int(26, "EMA Long (26)")
macdFast = input.int(12, "MACD Fast")
macdSlow = input.int(26, "MACD Slow")
macdSignal = input.int(9, "MACD Signal")
macdZeroTh = input.float(0.2, "MOU: MACD near-zero threshold", step=0.05)
volLookback = input.int(5, "Volume MA days", minval=1)
volMinRatio = input.float(1.3, "MOU: Volume ratio min", step=0.1)
volStrong = input.float(1.5, "Strong volume ratio (Breakout/KAKU)", step=0.1)
volMaxRatio = input.float(3.0, "Volume ratio max (filter)", step=0.1)
wickBodyMult = input.float(2.0, "Pinbar: lowerWick >= body*x", step=0.1)
pivotLen = input.int(20, "Resistance lookback", minval=5)
pullMinPct = input.float(5.0, "Pullback min (%)", step=0.1)
pullMaxPct = input.float(15.0, "Pullback max (%)", step=0.1)
breakLookbackBars = input.int(5, "Pullback route: valid bars after break", minval=1)
// --- Breakout route (押し目なし初動ブレイク) ---
useBreakoutRoute = input.bool(true, "Enable MOU Breakout Route (no pullback)")
breakConfirmPct = input.float(0.3, "Break confirm: close > R*(1+%)", step=0.1)
bigBodyLookback = input.int(20, "Break candle body MA length", minval=5)
bigBodyMult = input.float(1.2, "Break candle: body >= MA*mult", step=0.1)
requireCloseNearHigh = input.bool(true, "Break candle: close near high")
closeNearHighPct = input.float(25.0, "Close near high threshold (% of range)", step=1.0)
allowMACDAboveZeroInstead = input.bool(true, "Breakout route: allow MACD GC above zero instead")
// 表示
showEMA = input.bool(true, "Plot EMAs")
showMouLabels = input.bool(true, "Show MOU/MOU-B labels")
showKakuLabels = input.bool(true, "Show KAKU labels")
showDebugTbl = input.bool(true, "Show debug table (last bar)")
showStatusLbl = input.bool(true, "Show status label (last bar always)")
locChoice = input.string("Below Bar", "Label location", options= )
lblLoc = locChoice == "Below Bar" ? location.belowbar : location.abovebar
// =========================
// 必ず決済が起きる設定(投稿クリア用)
// =========================
enableTPSL = input.bool(true, "Enable TP/SL")
tpPct = input.float(2.0, "Take Profit (%)", step=0.1, minval=0.1) // ←投稿クリア向けに近め
slPct = input.float(1.0, "Stop Loss (%)", step=0.1, minval=0.1) // ←投稿クリア向けに近め
maxHoldBars = input.int(30, "Max bars in trade (force close)", minval=1)
entryMode = input.string("MOU or KAKU", "Entry trigger", options= )
// ✅ 保険:トレード0件を避ける(投稿クリア用)
// 1回でもクローズトレードができたら自動で沈黙
publishAssist = input.bool(true, "Publish Assist (safety entry if 0 trades)")
// =========================
// EMA
// =========================
emaS = ta.ema(close, emaSLen)
emaM = ta.ema(close, emaMLen)
emaL = ta.ema(close, emaLLen)
plot(showEMA ? emaS : na, color=color.new(color.yellow, 0), title="EMA 5")
plot(showEMA ? emaM : na, color=color.new(color.blue, 0), title="EMA 13")
plot(showEMA ? emaL : na, color=color.new(color.orange, 0), title="EMA 26")
emaUpS = emaS > emaS
emaUpM = emaM > emaM
emaUpL = emaL > emaL
goldenOrder = emaS > emaM and emaM > emaL
above26_2days = close > emaL and close > emaL
baseTrendOK = (emaUpS and emaUpM and emaUpL) and goldenOrder and above26_2days
// =========================
// MACD
// =========================
= ta.macd(close, macdFast, macdSlow, macdSignal)
macdGC = ta.crossover(macdLine, macdSig)
macdUp = macdLine > macdLine
macdNearZero = math.abs(macdLine) <= macdZeroTh
macdGCAboveZero = macdGC and macdLine > 0 and macdSig > 0
macdMouOK = macdGC and macdNearZero and macdUp
macdBreakOK = allowMACDAboveZeroInstead ? (macdMouOK or macdGCAboveZero) : macdMouOK
// =========================
// Volume
// =========================
volMA = ta.sma(volume, volLookback)
volRatio = volMA > 0 ? (volume / volMA) : na
volumeMouOK = volRatio >= volMinRatio and volRatio <= volMaxRatio
volumeStrongOK = volRatio >= volStrong and volRatio <= volMaxRatio
// =========================
// Candle patterns
// =========================
body = math.abs(close - open)
upperWick = high - math.max(open, close)
lowerWick = math.min(open, close) - low
pinbar = (lowerWick >= wickBodyMult * body) and (lowerWick > upperWick) and (close >= open)
bullEngulf = close > open and close < open and close >= open and open <= close
bigBull = close > open and open < emaM and close > emaS and (body > ta.sma(body, 20))
candleOK = pinbar or bullEngulf or bigBull
// =========================
// Resistance / Pullback route
// =========================
res = ta.highest(high, pivotLen)
pullbackPct = res > 0 ? (res - close) / res * 100.0 : na
pullbackOK = pullbackPct >= pullMinPct and pullbackPct <= pullMaxPct
brokeRes = ta.crossover(close, res )
barsSinceBreak = ta.barssince(brokeRes)
afterBreakZone = (barsSinceBreak >= 0) and (barsSinceBreak <= breakLookbackBars)
pullbackRouteOK = afterBreakZone and pullbackOK
// =========================
// Breakout route (押し目なし初動ブレイク)
// =========================
breakConfirm = close > res * (1.0 + breakConfirmPct / 100.0)
bullBreak = close > open
bodyMA = ta.sma(body, bigBodyLookback)
bigBodyOK = bodyMA > 0 ? (body >= bodyMA * bigBodyMult) : false
rng = math.max(high - low, syminfo.mintick)
closeNearHighOK = not requireCloseNearHigh ? true : ((high - close) / rng * 100.0 <= closeNearHighPct)
mou_breakout = useBreakoutRoute and baseTrendOK and breakConfirm and bullBreak and bigBodyOK and closeNearHighOK and volumeStrongOK and macdBreakOK
mou_pullback = baseTrendOK and volumeMouOK and candleOK and macdMouOK and pullbackRouteOK
mou = mou_pullback or mou_breakout
// =========================
// KAKU (Strict): 8条件 + 最終三点
// =========================
cond1 = emaUpS and emaUpM and emaUpL
cond2 = goldenOrder
cond3 = above26_2days
cond4 = macdGCAboveZero
cond5 = volumeMouOK
cond6 = candleOK
cond7 = pullbackOK
cond8 = pullbackRouteOK
all8_strict = cond1 and cond2 and cond3 and cond4 and cond5 and cond6 and cond7 and cond8
final3 = pinbar and macdGCAboveZero and volumeStrongOK
kaku = all8_strict and final3
// =========================
// Entry (strategy)
// =========================
entrySignal = entryMode == "KAKU only" ? kaku : (mou or kaku)
canEnter = strategy.position_size == 0
newEntryKaku = canEnter and kaku and entrySignal
newEntryMouB = canEnter and (not kaku) and mou_breakout and entrySignal
newEntryMou = canEnter and (not kaku) and mou_pullback and entrySignal
// --- Publish Assist(保険エントリー) ---
// 条件が厳しすぎて「トレード0件」だと投稿時に警告が出る。
// closedtradesが0の間だけ、軽いEMAクロスで1回だけ拾う(その後は沈黙)。
assistFast = ta.ema(close, 5)
assistSlow = ta.ema(close, 20)
assistEntry = publishAssist and strategy.closedtrades == 0 and canEnter and ta.crossover(assistFast, assistSlow)
// 実エントリー
if newEntryKaku or newEntryMouB or newEntryMou or assistEntry
strategy.entry("LONG", strategy.long)
// ラベル(視認)
if showMouLabels and newEntryMou
label.new(bar_index, low, "猛(IN)", style=label.style_label_up, color=color.new(color.lime, 0), textcolor=color.black)
if showMouLabels and newEntryMouB
label.new(bar_index, low, "猛B(IN)", style=label.style_label_up, color=color.new(color.lime, 0), textcolor=color.black)
if showKakuLabels and newEntryKaku
label.new(bar_index, low, "確(IN)", style=label.style_label_up, color=color.new(color.yellow, 0), textcolor=color.black)
if assistEntry
label.new(bar_index, low, "ASSIST(IN)", style=label.style_label_up, color=color.new(color.aqua, 0), textcolor=color.black)
// =========================
// Exit (TP/SL + 強制クローズ)
// =========================
inPos = strategy.position_size > 0
tpPx = inPos ? strategy.position_avg_price * (1.0 + tpPct/100.0) : na
slPx = inPos ? strategy.position_avg_price * (1.0 - slPct/100.0) : na
if enableTPSL
strategy.exit("TP/SL", from_entry="LONG", limit=tpPx, stop=slPx)
// 最大保有バーで強制決済(これが「レポート無し」回避の最後の保険)
var int entryBar = na
if strategy.position_size > 0 and strategy.position_size == 0
entryBar := bar_index
if strategy.position_size == 0
entryBar := na
forceClose = inPos and not na(entryBar) and (bar_index - entryBar >= maxHoldBars)
if forceClose
strategy.close("LONG")
// =========================
// 利確/損切/強制クローズのラベル
// =========================
closedThisBar = (strategy.position_size > 0) and (strategy.position_size == 0)
avgPrev = strategy.position_avg_price
tpPrev = avgPrev * (1.0 + tpPct/100.0)
slPrev = avgPrev * (1.0 - slPct/100.0)
hitTP = closedThisBar and high >= tpPrev
hitSL = closedThisBar and low <= slPrev
// 同一足TP/SL両方は厳密に判断できないので、表示は「TP優先」で簡略(投稿ギリギリ版)
if hitTP
label.new(bar_index, high, "利確", style=label.style_label_down, color=color.new(color.lime, 0), textcolor=color.black)
else if hitSL
label.new(bar_index, low, "損切", style=label.style_label_up, color=color.new(color.red, 0), textcolor=color.white)
else if closedThisBar and forceClose
label.new(bar_index, close, "時間決済", style=label.style_label_left, color=color.new(color.gray, 0), textcolor=color.white)
// =========================
// Signals (猛/猛B/確)
// =========================
plotshape(showMouLabels and mou_pullback and not kaku, title="MOU_PULLBACK", style=shape.labelup, text="猛",
color=color.new(color.lime, 0), textcolor=color.black, location=lblLoc, size=size.tiny)
plotshape(showMouLabels and mou_breakout and not kaku, title="MOU_BREAKOUT", style=shape.labelup, text="猛B",
color=color.new(color.lime, 0), textcolor=color.black, location=lblLoc, size=size.tiny)
plotshape(showKakuLabels and kaku, title="KAKU", style=shape.labelup, text="確",
color=color.new(color.yellow, 0), textcolor=color.black, location=lblLoc, size=size.small)
// =========================
// Alerts
// =========================
alertcondition(mou, title="MNO_MOU", message="MNO: MOU triggered")
alertcondition(mou_breakout, title="MNO_MOU_BREAKOUT", message="MNO: MOU Breakout triggered")
alertcondition(mou_pullback, title="MNO_MOU_PULLBACK", message="MNO: MOU Pullback triggered")
alertcondition(kaku, title="MNO_KAKU", message="MNO: KAKU triggered")
alertcondition(assistEntry, title="MNO_ASSIST_ENTRY", message="MNO: ASSIST ENTRY (publish safety)")
// =========================
// Status label(最終足に必ず表示)
// =========================
var label status = na
if showStatusLbl and barstate.islast
label.delete(status)
statusTxt =
"MNO RUNNING " +
"ClosedTrades: " + str.tostring(strategy.closedtrades) + " " +
"BaseTrend: " + (baseTrendOK ? "OK" : "NO") + " " +
"MOU: " + (mou ? "YES" : "no") + " (猛=" + (mou_pullback ? "Y" : "n") + " / 猛B=" + (mou_breakout ? "Y" : "n") + ") " +
"KAKU: " + (kaku ? "YES" : "no") + " " +
"VolRatio: " + (na(volRatio) ? "na" : str.tostring(volRatio, format.mintick)) + " " +
"Pull%: " + (na(pullbackPct) ? "na" : str.tostring(pullbackPct, format.mintick)) + " " +
"Pos: " + (inPos ? "IN" : "OUT")
status := label.new(bar_index, high, statusTxt, style=label.style_label_left, textcolor=color.white, color=color.new(color.black, 0))
// =========================
// Debug table(最終足のみ)
// =========================
var table t = table.new(position.top_right, 2, 14, border_width=1, border_color=color.new(color.white, 60))
fRow(_name, _cond, _r) =>
bg = _cond ? color.new(color.lime, 70) : color.new(color.red, 80)
tx = _cond ? "OK" : "NO"
table.cell(t, 0, _r, _name, text_color=color.white, bgcolor=color.new(color.black, 0))
table.cell(t, 1, _r, tx, text_color=color.white, bgcolor=bg)
if showDebugTbl and barstate.islast
table.cell(t, 0, 0, "MNO Debug", text_color=color.white, bgcolor=color.new(color.black, 0))
table.cell(t, 1, 0, "", text_color=color.white, bgcolor=color.new(color.black, 0))
fRow("BaseTrend", baseTrendOK, 1)
fRow("MOU Pullback", mou_pullback, 2)
fRow("MOU Breakout", mou_breakout, 3)
fRow("Break confirm", breakConfirm, 4)
fRow("Break big body", bigBodyOK, 5)
fRow("Break close high", closeNearHighOK, 6)
fRow("Break vol strong", volumeStrongOK, 7)
fRow("Break MACD", macdBreakOK, 8)
fRow("KAKU all8", all8_strict, 9)
fRow("KAKU final3", final3, 10)
fRow("AssistEntry", assistEntry, 11)
fRow("ClosedTrades>0", strategy.closedtrades > 0, 12)
just takesi TimeMNO_2Step_Strategy_MOU_KAKU (Publish-Clear)//@version=5
strategy("MNO_2Step_Strategy_MOU_KAKU (Publish-Clear)", overlay=true, pyramiding=0,
max_labels_count=500, max_lines_count=500,
initial_capital=100000,
default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// =========================
// Inputs
// =========================
emaSLen = input.int(5, "EMA Short (5)")
emaMLen = input.int(13, "EMA Mid (13)")
emaLLen = input.int(26, "EMA Long (26)")
macdFast = input.int(12, "MACD Fast")
macdSlow = input.int(26, "MACD Slow")
macdSignal = input.int(9, "MACD Signal")
macdZeroTh = input.float(0.2, "MOU: MACD near-zero threshold", step=0.05)
volLookback = input.int(5, "Volume MA days", minval=1)
volMinRatio = input.float(1.3, "MOU: Volume ratio min", step=0.1)
volStrong = input.float(1.5, "Strong volume ratio (Breakout/KAKU)", step=0.1)
volMaxRatio = input.float(3.0, "Volume ratio max (filter)", step=0.1)
wickBodyMult = input.float(2.0, "Pinbar: lowerWick >= body*x", step=0.1)
pivotLen = input.int(20, "Resistance lookback", minval=5)
pullMinPct = input.float(5.0, "Pullback min (%)", step=0.1)
pullMaxPct = input.float(15.0, "Pullback max (%)", step=0.1)
breakLookbackBars = input.int(5, "Pullback route: valid bars after break", minval=1)
// --- Breakout route (押し目なし初動ブレイク) ---
useBreakoutRoute = input.bool(true, "Enable MOU Breakout Route (no pullback)")
breakConfirmPct = input.float(0.3, "Break confirm: close > R*(1+%)", step=0.1)
bigBodyLookback = input.int(20, "Break candle body MA length", minval=5)
bigBodyMult = input.float(1.2, "Break candle: body >= MA*mult", step=0.1)
requireCloseNearHigh = input.bool(true, "Break candle: close near high")
closeNearHighPct = input.float(25.0, "Close near high threshold (% of range)", step=1.0)
allowMACDAboveZeroInstead = input.bool(true, "Breakout route: allow MACD GC above zero instead")
// 表示
showEMA = input.bool(true, "Plot EMAs")
showMouLabels = input.bool(true, "Show MOU/MOU-B labels")
showKakuLabels = input.bool(true, "Show KAKU labels")
showDebugTbl = input.bool(true, "Show debug table (last bar)")
showStatusLbl = input.bool(true, "Show status label (last bar always)")
locChoice = input.string("Below Bar", "Label location", options= )
lblLoc = locChoice == "Below Bar" ? location.belowbar : location.abovebar
// =========================
// 必ず決済が起きる設定(投稿クリア用)
// =========================
enableTPSL = input.bool(true, "Enable TP/SL")
tpPct = input.float(2.0, "Take Profit (%)", step=0.1, minval=0.1) // ←投稿クリア向けに近め
slPct = input.float(1.0, "Stop Loss (%)", step=0.1, minval=0.1) // ←投稿クリア向けに近め
maxHoldBars = input.int(30, "Max bars in trade (force close)", minval=1)
entryMode = input.string("MOU or KAKU", "Entry trigger", options= )
// ✅ 保険:トレード0件を避ける(投稿クリア用)
// 1回でもクローズトレードができたら自動で沈黙
publishAssist = input.bool(true, "Publish Assist (safety entry if 0 trades)")
// =========================
// EMA
// =========================
emaS = ta.ema(close, emaSLen)
emaM = ta.ema(close, emaMLen)
emaL = ta.ema(close, emaLLen)
plot(showEMA ? emaS : na, color=color.new(color.yellow, 0), title="EMA 5")
plot(showEMA ? emaM : na, color=color.new(color.blue, 0), title="EMA 13")
plot(showEMA ? emaL : na, color=color.new(color.orange, 0), title="EMA 26")
emaUpS = emaS > emaS
emaUpM = emaM > emaM
emaUpL = emaL > emaL
goldenOrder = emaS > emaM and emaM > emaL
above26_2days = close > emaL and close > emaL
baseTrendOK = (emaUpS and emaUpM and emaUpL) and goldenOrder and above26_2days
// =========================
// MACD
// =========================
= ta.macd(close, macdFast, macdSlow, macdSignal)
macdGC = ta.crossover(macdLine, macdSig)
macdUp = macdLine > macdLine
macdNearZero = math.abs(macdLine) <= macdZeroTh
macdGCAboveZero = macdGC and macdLine > 0 and macdSig > 0
macdMouOK = macdGC and macdNearZero and macdUp
macdBreakOK = allowMACDAboveZeroInstead ? (macdMouOK or macdGCAboveZero) : macdMouOK
// =========================
// Volume
// =========================
volMA = ta.sma(volume, volLookback)
volRatio = volMA > 0 ? (volume / volMA) : na
volumeMouOK = volRatio >= volMinRatio and volRatio <= volMaxRatio
volumeStrongOK = volRatio >= volStrong and volRatio <= volMaxRatio
// =========================
// Candle patterns
// =========================
body = math.abs(close - open)
upperWick = high - math.max(open, close)
lowerWick = math.min(open, close) - low
pinbar = (lowerWick >= wickBodyMult * body) and (lowerWick > upperWick) and (close >= open)
bullEngulf = close > open and close < open and close >= open and open <= close
bigBull = close > open and open < emaM and close > emaS and (body > ta.sma(body, 20))
candleOK = pinbar or bullEngulf or bigBull
// =========================
// Resistance / Pullback route
// =========================
res = ta.highest(high, pivotLen)
pullbackPct = res > 0 ? (res - close) / res * 100.0 : na
pullbackOK = pullbackPct >= pullMinPct and pullbackPct <= pullMaxPct
brokeRes = ta.crossover(close, res )
barsSinceBreak = ta.barssince(brokeRes)
afterBreakZone = (barsSinceBreak >= 0) and (barsSinceBreak <= breakLookbackBars)
pullbackRouteOK = afterBreakZone and pullbackOK
// =========================
// Breakout route (押し目なし初動ブレイク)
// =========================
breakConfirm = close > res * (1.0 + breakConfirmPct / 100.0)
bullBreak = close > open
bodyMA = ta.sma(body, bigBodyLookback)
bigBodyOK = bodyMA > 0 ? (body >= bodyMA * bigBodyMult) : false
rng = math.max(high - low, syminfo.mintick)
closeNearHighOK = not requireCloseNearHigh ? true : ((high - close) / rng * 100.0 <= closeNearHighPct)
mou_breakout = useBreakoutRoute and baseTrendOK and breakConfirm and bullBreak and bigBodyOK and closeNearHighOK and volumeStrongOK and macdBreakOK
mou_pullback = baseTrendOK and volumeMouOK and candleOK and macdMouOK and pullbackRouteOK
mou = mou_pullback or mou_breakout
// =========================
// KAKU (Strict): 8条件 + 最終三点
// =========================
cond1 = emaUpS and emaUpM and emaUpL
cond2 = goldenOrder
cond3 = above26_2days
cond4 = macdGCAboveZero
cond5 = volumeMouOK
cond6 = candleOK
cond7 = pullbackOK
cond8 = pullbackRouteOK
all8_strict = cond1 and cond2 and cond3 and cond4 and cond5 and cond6 and cond7 and cond8
final3 = pinbar and macdGCAboveZero and volumeStrongOK
kaku = all8_strict and final3
// =========================
// Entry (strategy)
// =========================
entrySignal = entryMode == "KAKU only" ? kaku : (mou or kaku)
canEnter = strategy.position_size == 0
newEntryKaku = canEnter and kaku and entrySignal
newEntryMouB = canEnter and (not kaku) and mou_breakout and entrySignal
newEntryMou = canEnter and (not kaku) and mou_pullback and entrySignal
// --- Publish Assist(保険エントリー) ---
// 条件が厳しすぎて「トレード0件」だと投稿時に警告が出る。
// closedtradesが0の間だけ、軽いEMAクロスで1回だけ拾う(その後は沈黙)。
assistFast = ta.ema(close, 5)
assistSlow = ta.ema(close, 20)
assistEntry = publishAssist and strategy.closedtrades == 0 and canEnter and ta.crossover(assistFast, assistSlow)
// 実エントリー
if newEntryKaku or newEntryMouB or newEntryMou or assistEntry
strategy.entry("LONG", strategy.long)
// ラベル(視認)
if showMouLabels and newEntryMou
label.new(bar_index, low, "猛(IN)", style=label.style_label_up, color=color.new(color.lime, 0), textcolor=color.black)
if showMouLabels and newEntryMouB
label.new(bar_index, low, "猛B(IN)", style=label.style_label_up, color=color.new(color.lime, 0), textcolor=color.black)
if showKakuLabels and newEntryKaku
label.new(bar_index, low, "確(IN)", style=label.style_label_up, color=color.new(color.yellow, 0), textcolor=color.black)
if assistEntry
label.new(bar_index, low, "ASSIST(IN)", style=label.style_label_up, color=color.new(color.aqua, 0), textcolor=color.black)
// =========================
// Exit (TP/SL + 強制クローズ)
// =========================
inPos = strategy.position_size > 0
tpPx = inPos ? strategy.position_avg_price * (1.0 + tpPct/100.0) : na
slPx = inPos ? strategy.position_avg_price * (1.0 - slPct/100.0) : na
if enableTPSL
strategy.exit("TP/SL", from_entry="LONG", limit=tpPx, stop=slPx)
// 最大保有バーで強制決済(これが「レポート無し」回避の最後の保険)
var int entryBar = na
if strategy.position_size > 0 and strategy.position_size == 0
entryBar := bar_index
if strategy.position_size == 0
entryBar := na
forceClose = inPos and not na(entryBar) and (bar_index - entryBar >= maxHoldBars)
if forceClose
strategy.close("LONG")
// =========================
// 利確/損切/強制クローズのラベル
// =========================
closedThisBar = (strategy.position_size > 0) and (strategy.position_size == 0)
avgPrev = strategy.position_avg_price
tpPrev = avgPrev * (1.0 + tpPct/100.0)
slPrev = avgPrev * (1.0 - slPct/100.0)
hitTP = closedThisBar and high >= tpPrev
hitSL = closedThisBar and low <= slPrev
// 同一足TP/SL両方は厳密に判断できないので、表示は「TP優先」で簡略(投稿ギリギリ版)
if hitTP
label.new(bar_index, high, "利確", style=label.style_label_down, color=color.new(color.lime, 0), textcolor=color.black)
else if hitSL
label.new(bar_index, low, "損切", style=label.style_label_up, color=color.new(color.red, 0), textcolor=color.white)
else if closedThisBar and forceClose
label.new(bar_index, close, "時間決済", style=label.style_label_left, color=color.new(color.gray, 0), textcolor=color.white)
// =========================
// Signals (猛/猛B/確)
// =========================
plotshape(showMouLabels and mou_pullback and not kaku, title="MOU_PULLBACK", style=shape.labelup, text="猛",
color=color.new(color.lime, 0), textcolor=color.black, location=lblLoc, size=size.tiny)
plotshape(showMouLabels and mou_breakout and not kaku, title="MOU_BREAKOUT", style=shape.labelup, text="猛B",
color=color.new(color.lime, 0), textcolor=color.black, location=lblLoc, size=size.tiny)
plotshape(showKakuLabels and kaku, title="KAKU", style=shape.labelup, text="確",
color=color.new(color.yellow, 0), textcolor=color.black, location=lblLoc, size=size.small)
// =========================
// Alerts
// =========================
alertcondition(mou, title="MNO_MOU", message="MNO: MOU triggered")
alertcondition(mou_breakout, title="MNO_MOU_BREAKOUT", message="MNO: MOU Breakout triggered")
alertcondition(mou_pullback, title="MNO_MOU_PULLBACK", message="MNO: MOU Pullback triggered")
alertcondition(kaku, title="MNO_KAKU", message="MNO: KAKU triggered")
alertcondition(assistEntry, title="MNO_ASSIST_ENTRY", message="MNO: ASSIST ENTRY (publish safety)")
// =========================
// Status label(最終足に必ず表示)
// =========================
var label status = na
if showStatusLbl and barstate.islast
label.delete(status)
statusTxt =
"MNO RUNNING " +
"ClosedTrades: " + str.tostring(strategy.closedtrades) + " " +
"BaseTrend: " + (baseTrendOK ? "OK" : "NO") + " " +
"MOU: " + (mou ? "YES" : "no") + " (猛=" + (mou_pullback ? "Y" : "n") + " / 猛B=" + (mou_breakout ? "Y" : "n") + ") " +
"KAKU: " + (kaku ? "YES" : "no") + " " +
"VolRatio: " + (na(volRatio) ? "na" : str.tostring(volRatio, format.mintick)) + " " +
"Pull%: " + (na(pullbackPct) ? "na" : str.tostring(pullbackPct, format.mintick)) + " " +
"Pos: " + (inPos ? "IN" : "OUT")
status := label.new(bar_index, high, statusTxt, style=label.style_label_left, textcolor=color.white, color=color.new(color.black, 0))
// =========================
// Debug table(最終足のみ)
// =========================
var table t = table.new(position.top_right, 2, 14, border_width=1, border_color=color.new(color.white, 60))
fRow(_name, _cond, _r) =>
bg = _cond ? color.new(color.lime, 70) : color.new(color.red, 80)
tx = _cond ? "OK" : "NO"
table.cell(t, 0, _r, _name, text_color=color.white, bgcolor=color.new(color.black, 0))
table.cell(t, 1, _r, tx, text_color=color.white, bgcolor=bg)
if showDebugTbl and barstate.islast
table.cell(t, 0, 0, "MNO Debug", text_color=color.white, bgcolor=color.new(color.black, 0))
table.cell(t, 1, 0, "", text_color=color.white, bgcolor=color.new(color.black, 0))
fRow("BaseTrend", baseTrendOK, 1)
fRow("MOU Pullback", mou_pullback, 2)
fRow("MOU Breakout", mou_breakout, 3)
fRow("Break confirm", breakConfirm, 4)
fRow("Break big body", bigBodyOK, 5)
fRow("Break close high", closeNearHighOK, 6)
fRow("Break vol strong", volumeStrongOK, 7)
fRow("Break MACD", macdBreakOK, 8)
fRow("KAKU all8", all8_strict, 9)
fRow("KAKU final3", final3, 10)
fRow("AssistEntry", assistEntry, 11)
fRow("ClosedTrades>0", strategy.closedtrades > 0, 12)
SHAP-Aligned BUY Signal (Daily, Edge-Triggered)Based on the XGBoost + SHAP interpretation report, I'll explain which indicators to monitor for buying NVO. However, I must emphasize that this model performed poorly (47.5% accuracy) and should NOT be used for actual trading! That said, here's what the model learned (for educational purposes):
📊 Top Indicators to Monitor for BUY Signals
1. Days_Since_Low (Most Important - 1.264)
Direction: BULLISH ↑
Interpretation: Higher values → UP prediction
What to monitor: Track how many days since the stock hit its recent low
Buy signal: When the stock has been recovering for an extended period (e.g., 100+ days from low)
Why it matters: The model learned that stocks in long-term recovery tend to continue rising
2. SMA_50 (50-day Moving Average) (0.413)
Direction: BULLISH ↑
Interpretation: Higher absolute SMA_50 values → UP prediction
What to monitor: The 50-day simple moving average price level
Buy signal: When SMA_50 is at higher levels (e.g., above $80-90)
Why it matters: Higher moving averages indicate stronger long-term trends
3. SMA_200 (200-day Moving Average) (0.274)
Direction: BULLISH ↑
Interpretation: Higher SMA_200 → UP prediction
What to monitor: The 200-day simple moving average
Buy signal: When SMA_200 is trending upward and at elevated levels
Why it matters: Long-term trend indicator; golden cross (SMA_50 > SMA_200) is traditionally bullish
4. BB_Width (Bollinger Band Width) (0.199)
Direction: BULLISH ↑
Interpretation: WIDER Bollinger Bands → UP prediction
What to monitor: The distance between upper and lower Bollinger Bands
Buy signal: When BB_Width is expanding (increasing volatility often precedes trend moves)
Why it matters: Widening bands can signal the start of a new trend
5. Price_SMA_50_Ratio (0.158)
Direction: BULLISH ↑
Interpretation: When price is ABOVE the 50-day MA → UP prediction
What to monitor: Current price ÷ SMA_50
Buy signal: When ratio > 1.0 (price is above the 50-day average)
Why it matters: Price above moving averages indicates uptrend
6. Momentum_21D (21-day Momentum) (0.152)
Direction: BULLISH ↑
Interpretation: Positive 21-day momentum → UP prediction
What to monitor: 21-day rate of change
Buy signal: When momentum is positive and increasing
Why it matters: Positive momentum suggests continuation
7. Stoch_K (Stochastic Oscillator) (0.142)
Direction: BULLISH ↑
Interpretation: Higher Stochastic K → UP prediction
What to monitor: Stochastic oscillator (0-100 scale)
Buy signal: When Stoch_K is rising from oversold (<20) or in mid-range (40-60)
Why it matters: Measures momentum and overbought/oversold conditions
Monthly Hotness RSI (Auto-Calibrated)Indicator of the previous months volatility/vol compared to averages over the last 3-5 years. helps show trend and if the market is 'hot'. indicator is good for showing favourable market conditions.
PDI / MMXM Execution OverlayCreates FVG's on lower time frames automatically. Helps with charting live.
NY 8:00 8:15 Candle High & LowThis indicator plots the high and low of the New York 8:00–8:15 AM (EST) 15-minute candle and extends those levels horizontally for the rest of the trading day
The levels are **anchored to the 15-minute timeframe
Designed for **session-based trading, liquidity sweeps, ICT-style models, and NY Open strategies.
Lines automatically reset each trading day at the NY open window.
Clean, lightweight, and non-repainting.
This script is ideal for traders who want consistent, reliable session levels without recalculation or timeframe distortion.
Custom versions available
If you’d like:
- Different sessions (London, Asia, custom hours)
- Multiple session ranges
- Labels, alerts, or strategy logic
- A full strategy version with entries, SL/TP, and risk rules
Feel free to reach out — happy to build custom tools to fit your trading model.
DZDZ – Pivot Demand Zones + Trend Filter + Breadth Override + SL is a structured accumulation indicator built to identify high-probability demand areas after valid pullbacks.
The script creates **Demand Zones (DZ)** by pairing **pivot troughs (local lows)** with later **pivot peaks (local highs)**, requiring a minimum **ATR (Average True Range)** gap to confirm real price displacement. Zones are drawn only when market structure confirms strength through a **trend filter** (a required number of higher highs over a recent window) or a **breadth override**, which activates after unusually large expansion candles measured as a percentage move from the prior close.
In addition to pivots, the script detects **coiling price action**—tight trading ranges contained within an ATR band—and treats these as alternative demand bases.
Entries require price to penetrate a defined depth into the zone, preventing shallow reactions. After the first valid entry, a **DCA (Dollar-Cost Averaging)** system adds buys every 10 bars while trend or breadth conditions persist. A **ratcheting SL (Stop-Loss)** tightens upward only, using demand structure or ATR when zones are unavailable.
The focus is disciplined, volatility-aware accumulation aligned with structure.
MTF FVG 3-candleMTF FVG 3-candle is an indicator that detects Fair Value Gaps using a 3-candle pattern on the timeframe selected in the settings. It projects FVG zones onto lower timeframes, tracks the first touch and full fill of each zone, and provides alerts.
Trading Value RSI (NQ Tuned)The Trading Value RSI (NQ Tuned) is an indicator that applies the RSI calculation to trading value, defined as volume × close, rather than just price. It is specifically tuned for Nasdaq 100 futures (NQ), with a default RSI length of 24, overbought level at 75, and oversold level at 25 to filter out false signals from high volatility. The indicator visually colors the RSI line based on overbought (red), oversold (green), or neutral (blue) conditions. A horizontal midline at 50 helps identify potential trend direction changes or confirm ongoing momentum. This tool allows traders to monitor capital flow intensity, giving insight into when strong buying or selling pressure may drive short-term market moves.
Market Regime# MARKET REGIME IDENTIFICATION & TRADING SYSTEM
## Complete User Guide
---
## 📋 TABLE OF CONTENTS
1. (#overview)
2. (#regimes)
3. (#indicator-usage)
4. (#entry-signals)
5. (#exit-signals)
6. (#regime-strategies)
7. (#confluence)
8. (#backtesting)
9. (#optimization)
10. (#examples)
---
## OVERVIEW
### What This System Does
This is a **complete market regime identification and trading system** that:
1. **Identifies 6 distinct market regimes** automatically
2. **Adapts trading tactics** to each regime
3. **Provides high-probability entry signals** with confluence scoring
4. **Shows optimal exit points** for each trade
5. **Can be backtested** to validate performance
### Two Components Provided
1. **Indicator** (`market_regime_indicator.pine`)
- Visual regime identification
- Entry/exit signals on chart
- Dynamic support/resistance
- Info tables with live data
- Use for manual trading
2. **Strategy** (`market_regime_strategy.pine`)
- Fully automated backtestable version
- Same logic as indicator
- Position sizing and risk management
- Performance metrics
- Use for backtesting and automation
---
## THE 6 MARKET REGIMES
### 1. 🟢 BULL TRENDING
**Characteristics:**
- Strong uptrend
- Price above SMA50 and SMA200
- ADX > 25 (strong trend)
- Higher highs and higher lows
- DI+ > DI- (bullish momentum)
**What It Means:**
- Market has clear upward direction
- Buyers in control
- Pullbacks are buying opportunities
- Strongest regime for long positions
**How to Trade:**
- ✅ **BUY dips to EMA20 or SMA20**
- ✅ Enter when RSI < 60 on pullback
- ✅ Hold through minor corrections
- ❌ Don't short against the trend
- ❌ Don't sell too early
**Expected Behavior:**
- Pullbacks are shallow (5-10%)
- Bounces are strong
- Support at moving averages holds
- Volume increases on rallies
---
### 2. 🔴 BEAR TRENDING
**Characteristics:**
- Strong downtrend
- Price below SMA50 and SMA200
- ADX > 25 (strong trend)
- Lower highs and lower lows
- DI- > DI+ (bearish momentum)
**What It Means:**
- Market has clear downward direction
- Sellers in control
- Rallies are selling opportunities
- Strongest regime for short positions
**How to Trade:**
- ✅ **SELL rallies to EMA20 or SMA20**
- ✅ Enter when RSI > 40 on bounce
- ✅ Hold through minor bounces
- ❌ Don't buy against the trend
- ❌ Don't cover shorts too early
**Expected Behavior:**
- Rallies are weak (5-10%)
- Selloffs are strong
- Resistance at moving averages holds
- Volume increases on declines
---
### 3. 🔵 BULL RANGING
**Characteristics:**
- Bullish bias but consolidating
- Price near or above SMA50
- ADX < 20 (weak trend)
- Trading in range
- Choppy price action
**What It Means:**
- Uptrend is pausing
- Accumulation phase
- Support and resistance zones clear
- Lower volatility
**How to Trade:**
- ✅ **BUY at support zone**
- ✅ Enter when RSI < 40
- ✅ Take profits at resistance
- ⚠️ Smaller position sizes
- ⚠️ Tighter stops
**Expected Behavior:**
- Range-bound oscillations
- Support bounces repeatedly
- Resistance rejections common
- Eventually breaks higher (usually)
---
### 4. 🟠 BEAR RANGING
**Characteristics:**
- Bearish bias but consolidating
- Price near or below SMA50
- ADX < 20 (weak trend)
- Trading in range
- Choppy price action
**What It Means:**
- Downtrend is pausing
- Distribution phase
- Support and resistance zones clear
- Lower volatility
**How to Trade:**
- ✅ **SELL at resistance zone**
- ✅ Enter when RSI > 60
- ✅ Take profits at support
- ⚠️ Smaller position sizes
- ⚠️ Tighter stops
**Expected Behavior:**
- Range-bound oscillations
- Resistance holds repeatedly
- Support bounces are weak
- Eventually breaks lower (usually)
---
### 5. ⚪ CONSOLIDATION
**Characteristics:**
- No clear direction
- Range compression
- Very low ADX (< 15 often)
- Price inside tight range
- Neutral sentiment
**What It Means:**
- Market is coiling
- Building energy for next move
- Indecision between buyers/sellers
- Calm before the storm
**How to Trade:**
- ✅ **WAIT for breakout direction**
- ✅ Enter on high-volume breakout
- ✅ Direction becomes clear
- ❌ Don't trade inside the range
- ❌ Avoid choppy scalping
**Expected Behavior:**
- Narrow range
- Low volume
- False breakouts possible
- Explosive move when it breaks
---
### 6. 🟣 CHAOS (High Volatility)
**Characteristics:**
- Extreme volatility
- No clear direction
- Erratic price swings
- ATR > 2x average
- Unpredictable
**What It Means:**
- Market panic or euphoria
- News-driven moves
- Emotion dominates logic
- Highest risk environment
**How to Trade:**
- ❌ **STAY OUT!**
- ❌ No positions
- ❌ Wait for stability
- ✅ Protect existing positions
- ✅ Reduce risk
**Expected Behavior:**
- Large intraday swings
- Gaps up/down
- Stop hunts
- Whipsaws
- Eventually calms down
---
## INDICATOR USAGE
### Visual Elements
#### 1. Background Colors
- **Light Green** = Bull Trending (go long)
- **Light Red** = Bear Trending (go short)
- **Light Teal** = Bull Ranging (buy dips)
- **Light Orange** = Bear Ranging (sell rallies)
- **Light Gray** = Consolidation (wait)
- **Purple** = Chaos (stay out!)
#### 2. Regime Labels
- Appear when regime changes
- Show new regime name
- Positioned at highs (bullish) or lows (bearish)
#### 3. Entry Signals
- **Green "LONG"** labels = Buy here
- **Red "SHORT"** labels = Sell here
- Number shows confluence score (X/5 signals)
- Hover for details (stop, target, RSI, etc.)
#### 4. Exit Signals
- **Orange "EXIT LONG"** = Close long position
- **Orange "EXIT SHORT"** = Close short position
- Shows exit reason in tooltip
#### 5. Support/Resistance Lines
- **Green line** = Dynamic support (buy zone)
- **Red line** = Dynamic resistance (sell zone)
- Adapts to regime automatically
#### 6. Moving Averages
- **Blue** = SMA 20 (short-term trend)
- **Orange** = SMA 50 (medium-term trend)
- **Purple** = SMA 200 (long-term trend)
### Information Tables
#### Top Right Table (Main Info)
Shows real-time market conditions:
- **Current Regime** - What regime we're in
- **Bias** - Long, Short, Breakout, or Stay Out
- **ADX** - Trend strength (>25 = strong)
- **Trend** - Strong, Moderate, or Weak
- **Volatility** - High or Normal
- **Vol Ratio** - Current vs average volatility
- **RSI** - Momentum (>70 overbought, <30 oversold)
- **vs SMA50/200** - Price position relative to MAs
- **Support/Resistance** - Exact price levels
- **Long/Short Signals** - Confluence scores (X/5)
#### Bottom Right Table (Regime Guide)
Quick reference for each regime:
- What action to take
- What strategy to use
- Color-coded for quick identification
---
## ENTRY SIGNALS EXPLAINED
### Confluence Scoring System (5 Factors)
Each entry signal is scored 0-5 based on how many factors align:
#### For LONG Entries:
1. ✅ **Regime Alignment** - In Bull Trending or Bull Ranging
2. ✅ **RSI Pullback** - RSI between 35-50 (not overbought)
3. ✅ **Near Support** - Price within 2% of dynamic support
4. ✅ **MACD Turning Up** - Momentum shifting bullish
5. ✅ **Volume Confirmation** - Above average volume
#### For SHORT Entries:
1. ✅ **Regime Alignment** - In Bear Trending or Bear Ranging
2. ✅ **RSI Rejection** - RSI between 50-65 (not oversold)
3. ✅ **Near Resistance** - Price within 2% of dynamic resistance
4. ✅ **MACD Turning Down** - Momentum shifting bearish
5. ✅ **Volume Confirmation** - Above average volume
### Confluence Requirements
**Minimum Confluence** (default = 2):
- 2/5 = Entry signal triggered
- 3/5 = Good signal
- 4/5 = Strong signal
- 5/5 = Excellent signal (rare)
**Higher confluence = Higher probability = Better trades**
### Specific Entry Patterns
#### 1. Bull Trending Entry
```
Requirements:
- Regime = Bull Trending
- Price pulls back to EMA20
- Close above EMA20 (bounce)
- Up candle (close > open)
- RSI < 60
- Confluence ≥ 2
```
#### 2. Bear Trending Entry
```
Requirements:
- Regime = Bear Trending
- Price rallies to EMA20
- Close below EMA20 (rejection)
- Down candle (close < open)
- RSI > 40
- Confluence ≥ 2
```
#### 3. Bull Ranging Entry
```
Requirements:
- Regime = Bull Ranging
- RSI < 40 (oversold)
- Price at or below support
- Up candle (reversal)
- Confluence ≥ 1 (more lenient)
```
#### 4. Bear Ranging Entry
```
Requirements:
- Regime = Bear Ranging
- RSI > 60 (overbought)
- Price at or above resistance
- Down candle (rejection)
- Confluence ≥ 1 (more lenient)
```
#### 5. Consolidation Breakout
```
Requirements:
- Regime = Consolidation
- Price breaks above/below range
- Volume > 1.5x average (explosive)
- Strong directional candle
```
---
## EXIT SIGNALS EXPLAINED
### Three Types of Exits
#### 1. Regime Change Exits (Automatic)
- **Long Exit**: Regime changes to Bear Trending or Chaos
- **Short Exit**: Regime changes to Bull Trending or Chaos
- **Reason**: Market character changed, strategy no longer valid
#### 2. Support/Resistance Break Exits
- **Long Exit**: Price breaks below support by 2%
- **Short Exit**: Price breaks above resistance by 2%
- **Reason**: Key level violated, trend may be reversing
#### 3. Momentum Exits
- **Long Exit**: RSI > 70 (overbought) AND down candle
- **Short Exit**: RSI < 30 (oversold) AND up candle
- **Reason**: Overextension, take profits
### Stop Loss & Take Profit
**Stop Loss** (Automatic in strategy):
- Placed at Entry - (ATR × 2)
- Adapts to volatility
- Protected from whipsaws
- Typically 2-4% for stocks, 5-10% for crypto
**Take Profit** (Automatic in strategy):
- Placed at Entry + (Stop Distance × R:R Ratio)
- Default 2.5:1 reward:risk
- Example: $2 risk = $5 reward target
- Allows winners to run
---
## TRADING EACH REGIME
### BULL TRENDING - Most Profitable Long Environment
**Strategy: Buy Every Dip**
**Entry Rules:**
1. Wait for pullback to EMA20 or SMA20
2. Look for RSI < 60
3. Enter when candle closes above MA
4. Confluence should be 2+
**Stop Loss:**
- Below the recent swing low
- Or 2 × ATR below entry
**Take Profit:**
- At previous high
- Or 2.5:1 R:R minimum
**Position Size:**
- Can use full size (2% risk)
- High win rate regime
**Example Trade:**
```
Price: $100, pulls back to $98 (EMA20)
Entry: $98.50 (close above EMA)
Stop: $96.50 (2 ATR)
Target: $103.50 (2.5:1)
Risk: $2, Reward: $5
```
---
### BEAR TRENDING - Most Profitable Short Environment
**Strategy: Sell Every Rally**
**Entry Rules:**
1. Wait for bounce to EMA20 or SMA20
2. Look for RSI > 40
3. Enter when candle closes below MA
4. Confluence should be 2+
**Stop Loss:**
- Above the recent swing high
- Or 2 × ATR above entry
**Take Profit:**
- At previous low
- Or 2.5:1 R:R minimum
**Position Size:**
- Can use full size (2% risk)
- High win rate regime
**Example Trade:**
```
Price: $100, rallies to $102 (EMA20)
Entry: $101.50 (close below EMA)
Stop: $103.50 (2 ATR)
Target: $96.50 (2.5:1)
Risk: $2, Reward: $5
```
---
### BULL RANGING - Buy Low, Sell High
**Strategy: Range Trading (Long Bias)**
**Entry Rules:**
1. Wait for price at support zone
2. Look for RSI < 40
3. Enter on reversal candle
4. Confluence should be 1-2+
**Stop Loss:**
- Below support zone
- Tighter than trending (1.5 ATR)
**Take Profit:**
- At resistance zone
- Don't hold through resistance
**Position Size:**
- Reduce to 1-1.5% risk
- Lower win rate than trending
**Example Trade:**
```
Range: $95-$105
Entry: $96 (at support, RSI 35)
Stop: $94 (below support)
Target: $104 (at resistance)
Risk: $2, Reward: $8 (4:1)
```
---
### BEAR RANGING - Sell High, Buy Low
**Strategy: Range Trading (Short Bias)**
**Entry Rules:**
1. Wait for price at resistance zone
2. Look for RSI > 60
3. Enter on rejection candle
4. Confluence should be 1-2+
**Stop Loss:**
- Above resistance zone
- Tighter than trending (1.5 ATR)
**Take Profit:**
- At support zone
- Don't hold through support
**Position Size:**
- Reduce to 1-1.5% risk
- Lower win rate than trending
**Example Trade:**
```
Range: $95-$105
Entry: $104 (at resistance, RSI 65)
Stop: $106 (above resistance)
Target: $96 (at support)
Risk: $2, Reward: $8 (4:1)
```
---
### CONSOLIDATION - Wait for Breakout
**Strategy: Breakout Trading**
**Entry Rules:**
1. Identify consolidation range
2. Wait for VOLUME SURGE (1.5x+ avg)
3. Enter on close outside range
4. Direction must be clear
**Stop Loss:**
- Opposite side of range
- Or 2 ATR
**Take Profit:**
- Measure range height, project it
- Example: $10 range = $10 move expected
**Position Size:**
- Reduce to 1% risk
- 50% false breakout rate
**Example Trade:**
```
Consolidation: $98-$102 (4-point range)
Breakout: $102.50 (high volume)
Entry: $103
Stop: $100 (back in range)
Target: $107 (4-point range projected)
Risk: $3, Reward: $4
```
---
### CHAOS - STAY OUT!
**Strategy: Preservation**
**What to Do:**
- ❌ NO new positions
- ✅ Close existing positions if near entry
- ✅ Tighten stops on profitable trades
- ✅ Reduce position sizes dramatically
- ✅ Wait for regime to stabilize
**Why It's Dangerous:**
- Stop hunts are common
- Whipsaws everywhere
- News-driven volatility
- No technical reliability
- Even "perfect" setups fail
**When Does It End:**
- Volatility ratio drops < 1.5
- ADX starts rising (direction appears)
- Price respects support/resistance again
- Usually 1-5 days
---
## CONFLUENCE SYSTEM
### How It Works
The system scores each potential entry on 5 factors. More factors aligning = higher probability.
### Confluence Requirements by Regime
**Trending Regimes** (strictest):
- Minimum 2/5 required
- 3/5 = Good
- 4-5/5 = Excellent
**Ranging Regimes** (moderate):
- Minimum 1-2/5 required
- 2/5 = Good
- 3+/5 = Excellent
**Consolidation** (breakout only):
- Volume is most critical
- Direction confirmation
- Less confluence needed
### Adjusting Minimum Confluence
**If too few signals:**
- Lower from 2 to 1
- More trades, lower quality
**If too many false signals:**
- Raise from 2 to 3
- Fewer trades, higher quality
**Recommendation:**
- Start at 2
- Adjust based on win rate
- Aim for 55-65% win rate
---
## STRATEGY BACKTESTING
### Loading the Strategy
1. Copy `market_regime_strategy.pine`
2. Open Pine Editor in TradingView
3. Paste and "Add to Chart"
4. Strategy Tester tab opens at bottom
### Initial Settings
```
Risk Per Trade: 2%
ATR Stop Multiplier: 2.0
Reward:Risk Ratio: 2.5
Trade Longs: ✓
Trade Shorts: ✓
Trade Trending Only: ✗ (test both)
Avoid Chaos: ✓
Minimum Confluence: 2
```
### What to Look For
**Good Results:**
- Win Rate: 50-60%
- Profit Factor: 1.8-2.5
- Net Profit: Positive
- Max Drawdown: <20%
- Consistent equity curve
**Warning Signs:**
- Win Rate: <45% (too many losses)
- Profit Factor: <1.5 (barely profitable)
- Max Drawdown: >30% (too risky)
- Erratic equity curve (unstable)
### Testing Different Regimes
**Test 1: Trending Only**
```
Trade Trending Only: ✓
Result: Higher win rate, fewer trades
```
**Test 2: All Regimes**
```
Trade Trending Only: ✗
Result: More trades, potentially lower win rate
```
**Test 3: Long Only**
```
Trade Longs: ✓
Trade Shorts: ✗
Result: Works in bull markets
```
**Test 4: Short Only**
```
Trade Longs: ✗
Trade Shorts: ✓
Result: Works in bear markets
```
---
## SETTINGS OPTIMIZATION
### Key Parameters to Adjust
#### 1. Risk Per Trade (Most Important)
- **0.5%** = Very conservative
- **1.0%** = Conservative (recommended for beginners)
- **2.0%** = Moderate (recommended)
- **3.0%** = Aggressive
- **5.0%** = Very aggressive (not recommended)
**Impact:** Higher risk = higher returns BUT bigger drawdowns
#### 2. Reward:Risk Ratio
- **2:1** = More wins needed, hit target faster
- **2.5:1** = Balanced (recommended)
- **3:1** = Fewer wins needed, hold longer
- **4:1** = Very patient, best in trending
**Impact:** Higher R:R = can have lower win rate
#### 3. Minimum Confluence
- **1** = More signals, lower quality
- **2** = Balanced (recommended)
- **3** = Fewer signals, higher quality
- **4** = Very selective
- **5** = Almost never triggers
**Impact:** Higher = fewer but better trades
#### 4. ADX Thresholds
- **Trending: 20-30** (default 25)
- Lower = detect trends earlier
- Higher = only strong trends
- **Ranging: 15-25** (default 20)
- Lower = identify ranging earlier
- Higher = only weak trends
#### 5. Trend Period (SMA)
- **20-50** = Short-term trends
- **50** = Medium-term (default, recommended)
- **100-200** = Long-term trends
**Impact:** Longer period = slower regime changes, more stable
### Optimization Workflow
**Step 1: Baseline**
- Use all default settings
- Test on 3+ years
- Record: Win Rate, PF, Drawdown
**Step 2: Risk Optimization**
- Test 1%, 1.5%, 2%, 2.5%
- Find best risk-adjusted return
- Balance profit vs drawdown
**Step 3: R:R Optimization**
- Test 2:1, 2.5:1, 3:1
- Check which maximizes profit factor
- Consider holding time
**Step 4: Confluence Optimization**
- Test 1, 2, 3
- Find sweet spot for win rate
- Aim for 55-65% win rate
**Step 5: Regime Filter**
- Test with/without trend filter
- Test with/without chaos filter
- Find what works for your asset
---
## REAL TRADING EXAMPLES
### Example 1: Bull Trending - SPY
**Setup:**
- Regime: BULL TRENDING
- Price pulls back from $450 to $445
- EMA20 at $444
- RSI drops to 45
- Confluence: 4/5
**Entry:**
- Price closes at $445.50 (above EMA20)
- LONG signal appears
- Enter at $445.50
**Risk Management:**
- Stop: $443 (2 ATR = $2.50)
- Target: $451.75 (2.5:1 = $6.25)
- Risk: $2.50 per share
- Position: 80 shares (2% of $10k = $200 risk)
**Outcome:**
- Price rallies to $452 in 3 days
- Target hit
- Profit: $6.50 × 80 = $520
- Return: 2.6 × risk (excellent)
---
### Example 2: Bear Ranging - AAPL
**Setup:**
- Regime: BEAR RANGING
- Range: $165-$175
- Price rallies to $174
- Resistance at $175
- RSI at 68
- Confluence: 3/5
**Entry:**
- Rejection candle at $174
- SHORT signal appears
- Enter at $173.50
**Risk Management:**
- Stop: $176 (above resistance)
- Target: $166 (support)
- Risk: $2.50
- Position: 80 shares
**Outcome:**
- Price drops to $167 in 2 days
- Target hit
- Profit: $6.50 × 80 = $520
- Return: 2.6 × risk
---
### Example 3: Consolidation Breakout - BTC
**Setup:**
- Regime: CONSOLIDATION
- Range: $28,000 - $30,000
- Compressed for 2 weeks
- Volume declining
**Breakout:**
- Price breaks $30,000
- Volume surges 200%
- Close at $30,500
- LONG signal
**Entry:**
- Enter at $30,500
**Risk Management:**
- Stop: $29,500 (back in range)
- Target: $32,000 (range height = $2k)
- Risk: $1,000
- Position: 0.2 BTC ($200 risk on $10k)
**Outcome:**
- Price runs to $33,000
- Target exceeded
- Profit: $2,500 × 0.2 = $500
- Return: 2.5 × risk
---
### Example 4: Avoiding Chaos - Tesla
**Setup:**
- Regime: BULL TRENDING
- LONG position from $240
- Elon tweets something crazy
- Regime changes to CHAOS
**Action:**
- EXIT signal appears
- Close position immediately
- Current price: $242 (small profit)
**Outcome:**
- Next 3 days: wild swings
- High $255, Low $230
- By staying out, avoided:
- Potential stop out
- Whipsaw losses
- Stress
**Result:**
- Small profit preserved
- Capital protected
- Re-enter when regime stabilizes
---
## ALERTS SETUP
### Available Alerts
1. **Bull Trending Regime** - Market goes bullish
2. **Bear Trending Regime** - Market goes bearish
3. **Chaos Regime** - High volatility, stay out
4. **Long Entry Signal** - Buy opportunity
5. **Short Entry Signal** - Sell opportunity
6. **Long Exit Signal** - Close long
7. **Short Exit Signal** - Close short
### How to Set Up
1. Click **⏰ (Alert)** icon in TradingView
2. Select **Condition**: Choose indicator + alert type
3. **Options**: Popup, Email, Webhook, etc.
4. **Message**: Customize notification
5. Click **Create**
### Recommended Alert Strategy
**For Active Traders:**
- Long Entry Signal
- Short Entry Signal
- Long Exit Signal
- Short Exit Signal
**For Position Traders:**
- Bull Trending Regime (enter longs)
- Bear Trending Regime (enter shorts)
- Chaos Regime (exit all)
**For Conservative:**
- Only regime change alerts
- Manually review entries
- More selective
---
## TIPS FOR SUCCESS
### 1. Start Small
- Paper trade first
- Then 0.5% risk
- Build to 1-2% over time
### 2. Follow the Regime
- Don't fight it
- Adapt your style
- Different tactics for each
### 3. Trust the Confluence
- 4-5/5 = Best trades
- 2-3/5 = Good trades
- 1/5 = Skip unless desperate
### 4. Respect Exits
- Don't hope and hold
- Cut losses quickly
- Take profits at targets
### 5. Avoid Chaos
- Seriously, just stay out
- Protect your capital
- Wait for clarity
### 6. Keep a Journal
- Record every trade
- Note regime and confluence
- Review weekly
- Learn patterns
### 7. Backtest Thoroughly
- 3+ years minimum
- Multiple market conditions
- Different assets
- Walk-forward test
### 8. Be Patient
- Best setups are rare
- 1-3 trades per week is normal
- Quality over quantity
- Compound over time
---
## COMMON QUESTIONS
**Q: How many trades per month should I expect?**
A: Depends on timeframe and settings. Daily chart: 5-15 trades/month. 4H chart: 15-30 trades/month.
**Q: What's a good win rate?**
A: 55-65% is excellent. 50-55% is good. Below 50% needs adjustment.
**Q: Should I trade all regimes?**
A: Beginners: Only trending. Intermediate: Trending + ranging. Advanced: All except chaos.
**Q: Can I use this on any timeframe?**
A: Best on Daily and 4H. Works on 1H with more noise. Not recommended <1H.
**Q: What if I'm in a trade and regime changes?**
A: Exit immediately (if using indicator) or let strategy handle it automatically.
**Q: How do I know if I'm over-optimizing?**
A: If results are perfect on one period but fail on another. Use walk-forward testing.
**Q: Should I always take 5/5 confluence trades?**
A: Yes, but they're rare (1-2/month). Don't wait only for these.
**Q: Can I combine this with other indicators?**
A: Yes, but keep it simple. RSI, MACD already included. Maybe add volume profile.
**Q: What assets work best?**
A: Liquid stocks, major crypto, futures. Avoid forex spot (use futures), penny stocks.
**Q: How long to hold positions?**
A: Trending: Days to weeks. Ranging: Hours to days. Breakout: Days. Let the regime guide you.
---
## FINAL THOUGHTS
This system gives you:
- ✅ Clear market context (regime)
- ✅ High-probability entries (confluence)
- ✅ Defined exits (automatic signals)
- ✅ Adaptable tactics (regime-specific)
- ✅ Backtestable results (strategy version)
**Success requires:**
- 📚 Understanding each regime
- 🎯 Following the signals
- 💪 Discipline to wait
- 🧠 Emotional control
- 📊 Proper risk management
**Start your journey:**
1. Load the indicator
2. Watch for 1 week (no trading)
3. Identify regime patterns
4. Paper trade for 1 month
5. Go live with small size
6. Scale up as you gain confidence
**Remember:** The market will always be here. There's no rush. Master one regime at a time, and you'll be profitable in all conditions!
Good luck! 🚀





















