Entry / TP / SL Alert Bands (Simple & Stable)
Get an alert before you reach your take profit or stop loss. Set as a percentage over the distance to your stop loss and take profit and improve your Money Management
インジケーターとストラテジー
FX Session High/Low Bands - Last 5 EST Days
FX Session High/Low Bands - Last 5 Days
Description:
This indicator plots horizontal bands representing the high and low price levels from the major forex trading sessions over the last 5 days. It helps traders identify key support and resistance zones based on recent session activity.
Features:
Multiple Session Tracking: Displays high/low levels for major FX sessions:
Asian Session (Tokyo)
European Session (London)
US Session (New York)
5-Day Lookback: Captures the highest high and lowest low from each session over the previous 5 trading days
Visual Bands: Clear horizontal lines or filled zones showing session boundaries
Dynamic Updates: Automatically recalculates as new session data becomes available
How to Use:
Support/Resistance: Previous session highs/lows often act as key price levels
Breakout Trading: Watch for price breaking above/below session bands
Range Trading: Trade within the bands during consolidation periods
Session Overlap: Pay attention to multiple session bands converging
Ideal For:
Forex day traders
Session-based trading strategies
Support/resistance identification
Multi-timeframe analysis
Day of WeekDay of Week is an indicator that runs in a separate panel and colors the panel background according to the day of the week.
Main Features
Colors the background of the lower panel based on the day of the week
Includes all days, from Monday to Sunday
Customizable colors
Time Offset Correction
TradingView calculates the day of the week using the exchange’s timezone, which can cause visual inconsistencies on certain symbols.
To address this, the indicator includes a configurable time offset that allows the user to synchronize the calculated day with the day displayed on the chart.
By simply adjusting the Time Offset (hours) parameter, the background will align correctly with the visible chart calendar.
HIGH BULLISH PROBABILITY SIGNAL Based on Ema, rsi, adr, volume we will determine if the stock is going to explode.
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/確 いずれか")
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)
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.
Wavelet Candlestick Slope Follower-Master Edition Here is a short description of this script:
This is a **Trend Following strategy** that utilizes advanced mathematics—the **Wavelet Transform**—to filter out market noise.
**Key Features:**
1. **Synthetic Candles:** The script does not analyze raw prices. Instead, it constructs "Wavelet Candles"—smoothed candles created through mathematical convolution of prices with a specific wavelet "kernel" (e.g., Mexican Hat, Morlet, Haar).
2. **Auto-Correction (Normalization):** This is the most critical technical feature of this code. The script automatically normalizes the weights. This ensures that even when using complex mathematical shapes (like the Mexican Hat), the output price remains accurate to the real chart scale and is not distorted.
3. **Strategy Logic:** The logic is very straightforward—the system enters a **Long** position when the smoothed closing price (`w_close`) is rising, and closes the position when it starts to fall.
4. **Visualization:** It draws new, cleaner candles (green/red) on the chart, revealing the "true" trend structure after filtering out temporary fluctuations.
This is a example of use idea of wavelet candle
Hybrid Strategy: Trend/ORB/MTFHybrid Strategy: Trend + ORB + Multi-Timeframe Matrix
This script is a comprehensive "Trading Manager" designed to filter out noise and identify high-probability breakout setups. It combines three powerful concepts into a single, clean chart interface: Trend Alignment, Opening Range Breakout (ORB), and Multi-Timeframe (MTF) Analysis.
It is designed to prevent "analysis paralysis" by providing a unified Dashboard that confirms if the trend is aligned across 5 different timeframes before you take a trade.
How it Works
The strategy relies on the "Golden Trio" of confluence:
1. Trend Definition (The Setup) Before looking for entries, the script analyzes the immediate trend. A bullish trend is defined as:
Price is above the Session VWAP.
The fast EMA (9) is above the slow EMA (21). (The inverse applies for bearish trends).
2. The Signal (The Trigger) The script draws the Opening Range (default: first 15 minutes of the session).
Buy Signal: Price breaks above the Opening Range High while the Trend is Bullish.
Sell Signal: Price breaks below the Opening Range Low while the Trend is Bearish.
3. The Confirmation (The Filter) A signal is only valid if the Higher Timeframe (default: 60m) agrees with the direction. If the 1m chart says "Buy" but the 60m chart is bearish, the signal is filtered out to prevent false breakouts.
Key Features
The Matrix Dashboard A zero-lag, real-time table in the corner of your screen that monitors 5 user-defined timeframes (e.g., 5m, 15m, 30m, 60m, 4H).
Trend: Checks if Price > EMA 21.
VWAP: Checks if Price > VWAP.
ORB: Checks if Price is currently above/below the Opening Range of that session.
D H/L: Warns if price is near the Daily High or Low.
PD H/L: Warns if price is near the Previous Daily High or Low.
Visual Order Blocks The script automatically identifies valid Order Blocks (sequences of consecutive candles followed by a strong explosive move).
Chart: Draws Green/Red zones extending to the right, showing where price may react.
Dashboard: Displays the exact High, Low, and Average price of the most recent Order Blocks for precision planning.
Risk Management (Trailing Stop) Once a trade is active, the script plots Chandelier Exit dots (ATR-based trailing stop) to help you manage the trade and lock in profits during trend runs.
Visual Guide (Chart Legend)
⬜ Gray Box: Represents the Opening Range (first 15 minutes). This is your "No Trade Zone." Wait for price to break out of this box.
🟢 Green Line: The Opening Range High. A break above this line signals potential Bullish momentum.
🔴 Red Line: The Opening Range Low. A break below this line signals potential Bearish momentum.
🟢 Green / 🔴 Red Zones (Boxes): These are Order Blocks.
🟢 Green Zone: A Bullish Order Block (Demand). Expect price to potentially bounce up from here.
🔴 Red Zone: A Bearish Order Block (Supply). Expect price to potentially reject down from here.
⚪ Dots (Trailing Stop):
🟢 Green Dots: These appear below price during a Bullish trend. They represent your suggested Stop Loss.
🔴 Red Dots: These appear above price during a Bearish trend.
🏷️ Buy / Sell Labels:
BUY: Triggers when Price breaks the Green Line + Trend is Bullish + HTF is Bullish.
SELL: Triggers when Price breaks the Red Line + Trend is Bearish + HTF is Bearish.
Settings
Session: Customizable RTH (Regular Trading Hours) to filter out pre-market noise.
Matrix Timeframes: 5 fixed slots to choose which timeframes you want to monitor.
Order Blocks: Adjust the sensitivity and lookback period for Order Block detection.
Risk: Customize the ATR multiplier for the trailing stop.
Disclaimer
This tool is for educational purposes only. Past performance does not guarantee future results. Always manage your risk properly.
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
Price Crossing 144 EMA Alert (No Visuals)Price Crossing 144 EMA Alert (No VisuPrice Crossing 144 EMA Alert (No Visuals)Price Crossing 144 EMA Alert (No Visuals)Price Crossing 144 EMA Alert (No Visuals)Price Crossing 144 EMA Alert (No Visuals)als)
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.
Relative Strength Index_YJ//@version=5
indicator(title="MACD_YJ", shorttitle="MACD_YJ",format=format.price, precision=2)
source = close
useCurrentRes = input.bool(true, title="Use Current Chart Resolution?")
resCustom = input.timeframe("60", title="Use Different Timeframe? Uncheck Box Above")
smd = input.bool(true, title="Show MacD & Signal Line? Also Turn Off Dots Below")
sd = input.bool(false, title="Show Dots When MacD Crosses Signal Line?")
sh = input.bool(true, title="Show Histogram?")
macd_colorChange = input.bool(true, title="Change MacD Line Color-Signal Line Cross?")
hist_colorChange = input.bool(true, title="MacD Histogram 4 Colors?")
// === Divergence inputs ===
grpDiv = "Divergence"
calculateDivergence = input.bool(true, title="Calculate Divergence", group=grpDiv, tooltip="피벗 기반 정/역배 다이버전스 탐지 및 알람 사용")
lookbackRight = input.int(5, "Lookback Right", group=grpDiv, minval=1)
lookbackLeft = input.int(5, "Lookback Left", group=grpDiv, minval=1)
rangeUpper = input.int(60, "Bars Range Upper", group=grpDiv, minval=1)
rangeLower = input.int(5, "Bars Range Lower", group=grpDiv, minval=1)
bullColor = input.color(color.new(#4CAF50, 0), "Bull Color", group=grpDiv)
bearColor = input.color(color.new(#F23645, 0), "Bear Color", group=grpDiv)
textColor = color.white
noneColor = color.new(color.white, 100)
res = useCurrentRes ? timeframe.period : resCustom
fastLength = input.int(12, minval=1)
slowLength = input.int(26, minval=1)
signalLength= input.int(9, minval=1)
fastMA = ta.ema(source, fastLength)
slowMA = ta.ema(source, slowLength)
macd = fastMA - slowMA
signal = ta.sma(macd, signalLength)
hist = macd - signal
outMacD = request.security(syminfo.tickerid, res, macd)
outSignal = request.security(syminfo.tickerid, res, signal)
outHist = request.security(syminfo.tickerid, res, hist)
// 가격도 같은 res로
hi_res = request.security(syminfo.tickerid, res, high)
lo_res = request.security(syminfo.tickerid, res, low)
// ── Histogram 색
histA_IsUp = outHist > outHist and outHist > 0
histA_IsDown = outHist < outHist and outHist > 0
histB_IsDown = outHist < outHist and outHist <= 0
histB_IsUp = outHist > outHist and outHist <= 0
macd_IsAbove = outMacD >= outSignal
plot_color = hist_colorChange ? (histA_IsUp ? color.new(#00FF00, 0) :
histA_IsDown ? color.new(#006900, 0) :
histB_IsDown ? color.new(#FF0000, 0) :
histB_IsUp ? color.new(#670000, 0) : color.yellow) : color.gray
macd_color = macd_colorChange ? color.new(#00ffff, 0) : color.new(#00ffff, 0)
signal_color = color.rgb(240, 232, 166)
circleYPosition = outSignal
// 골든/데드 크로스 (경고 해결: 먼저 계산)
isBullCross = ta.crossover(outMacD, outSignal)
isBearCross = ta.crossunder(outMacD, outSignal)
cross_color = isBullCross ? color.new(#00FF00, 0) : isBearCross ? color.new(#FF0000, 0) : na
// ── 플롯
plot(sh and outHist ? outHist : na, title="Histogram", color=plot_color, style=plot.style_histogram, linewidth=5)
plot(smd and outMacD ? outMacD : na, title="MACD", color=macd_color, linewidth=1)
plot(smd and outSignal? outSignal: na, title="Signal Line", color=signal_color, style=plot.style_line, linewidth=1)
plot(sd and (isBullCross or isBearCross) ? circleYPosition : na,
title="Cross", style=plot.style_circles, linewidth=3, color=cross_color)
hline(0, "0 Line", linestyle=hline.style_dotted, color=color.white)
// =====================
// Divergence (정배/역배) - 피벗 비교
// =====================
_inRange(cond) =>
bars = ta.barssince(cond)
rangeLower <= bars and bars <= rangeUpper
plFound = false
phFound = false
bullCond = false
bearCond = false
macdLBR = outMacD
if calculateDivergence
// 정배: 가격 LL, MACD HL
plFound := not na(ta.pivotlow(outMacD, lookbackLeft, lookbackRight))
macdHL = macdLBR > ta.valuewhen(plFound, macdLBR, 1) and _inRange(plFound )
lowLBR = lo_res
priceLL = lowLBR < ta.valuewhen(plFound, lowLBR, 1)
bullCond := priceLL and macdHL and plFound
// 역배: 가격 HH, MACD LH
phFound := not na(ta.pivothigh(outMacD, lookbackLeft, lookbackRight))
macdLH = macdLBR < ta.valuewhen(phFound, macdLBR, 1) and _inRange(phFound )
highLBR = hi_res
priceHH = highLBR > ta.valuewhen(phFound, highLBR, 1)
bearCond := priceHH and macdLH and phFound
// 시각화 (editable 파라미터 삭제)
plot(plFound ? macdLBR : na, offset=-lookbackRight, title="Regular Bullish (MACD)",
linewidth=2, color=(bullCond ? bullColor : noneColor), display=display.pane)
plotshape(bullCond ? macdLBR : na, offset=-lookbackRight, title="Bullish Label",
text=" Bull ", style=shape.labelup, location=location.absolute, color=bullColor, textcolor=textColor, display=display.pane)
plot(phFound ? macdLBR : na, offset=-lookbackRight, title="Regular Bearish (MACD)",
linewidth=2, color=(bearCond ? bearColor : noneColor), display=display.pane)
plotshape(bearCond ? macdLBR : na, offset=-lookbackRight, title="Bearish Label",
text=" Bear ", style=shape.labeldown, location=location.absolute, color=bearColor, textcolor=textColor, display=display.pane)
// 알람
alertcondition(bullCond, title="MACD Regular Bullish Divergence",
message="MACD 정배 다이버전스 발견: 현재 봉에서 lookbackRight 만큼 좌측.")
alertcondition(bearCond, title="MACD Regular Bearish Divergence",
message="MACD 역배 다이버전스 발견: 현재 봉에서 lookbackRight 만큼 좌측.")
50% level of Daily RangeThe 50% or midpoint between the current days highest and lowest points be used to divide the premium and discount of the days range. Price often reacts at this point and it can be used as a target for reversal trades. This indicator plots the level as it moves through out each day so is useful for backtesting as well as determining whether the current price is in premium or discount.
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.
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.
Trend Quality Score (Options-Friendly)Trend Quality Score for options entry that signals with background coloring for good movement or chop, to avoid theta burn. Toggle for conservative, balanced or aggressive with triggers.
Premarket, Previous Day, Current Day high/lowHighs and lows for premarket, previous day, and current day
PDI / MMXM Execution OverlayCreates FVG's on lower time frames automatically. Helps with charting live.
HAR Volatility ATR (Multi-Asset) - Andreus VillalobosIndicator based on the HAR (Hyper-Realized Volatility) model.
Combines daily, weekly, and monthly ATRs to project:
– Most probable price range (90%)
– Most probable take profit (60%)
Does not generate entry signals.
Designed for use in conjunction with:
market structure, liquidity, and price action.
Works on Forex, Indices, Gold, and Cryptocurrencies.
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.
Pre-Market Gap %Helps identify Pre Market Gap %. If Blue line is above the green dotted line, this indicates the stock is gapping up as its >1%. If the Blue line is below the dotted Red then this indicates the stock will gap down on open.
RO H1 Signal CandleMarks specific H1 signal candles based on Bucharest (RO) time.
Designed for clean backtesting and time-based analysis.
Displays a small marker on selected hourly candles only.






















