UT Bot + SMC PRO (PROP) + VISUAL SIGNALS-DE ALEJANDRO PONCEHOW TO USE THEM TOGETHER (GOLDEN RULE)
Reading Sequence
UT → without B Bounce / pullback
B → without UT Weak break
UT → B (same direction) ✅ Valid setup
UT ↔ Opposite Bs Noise / range
نماذج فنيه
Custom ORBIT GSK-VIZAG-AP-INDIA🚀 Custom ORBIT — Opening Range Breakout & Reversal Indicator
This indicator automatically calculates and plots the Opening Range (OR) high and low levels for a user-defined session and duration. It is designed to assist intraday traders by providing immediate visual signals for both price breakouts and subsequent reversals from these key levels.
The indicator is particularly suitable for markets with defined trading hours, such as the Indian indices (Nifty, Bank Nifty), given its default time settings are based on GMT+5:30.
⚙️ How It Works (Indicator Logic)
The indicator operates based on three main logical components: time definition, level calculation, and signal generation.
1. Time Session and Range Definition: All time calculations are based on GMT+5:30 (Indian Standard Time/IST). The script defines a specific trading session from a customizable start time (default 9:15 AM) to a session end time (default 3:30 PM). The Opening Range (OR) is established during the initial duration, which is set by the rangeMinutes input (default 15 minutes, meaning the OR is calculated from 9:15 AM to 9:30 AM).
2. Level Calculation and Plotting: During the initial range duration, the script captures the absolute highest price (OR High) and the absolute lowest price (OR Low). Once this period ends, two horizontal lines—a green line for the OR High and a red line for the OR Low—are drawn and automatically extended across the chart for the remainder of the active trading session. The visual style of these lines can be customized to Dotted, Dashed, or Solid.
3. Breakout and Reversal Logic: The indicator actively tracks the market's state relative to the OR levels to generate four distinct signals:
Break Up: A signal is generated when the closing price crosses over the OR High, indicating potential upward momentum.
Break Down: A signal is generated when the closing price crosses under the OR Low, indicating potential downward momentum.
Reversal Down: This yellow signal occurs only after a price has already broken above the OR High (Break Up state), and then the price moves back into the range (closing below the ORH), suggesting a failed breakout.
Reversal Up: This yellow signal occurs only after a price has already broken below the OR Low (Break Down state), and then the price moves back into the range (closing above the ORL), suggesting a failed breakdown.
💡 Suggested Use Cases
The signals generated by this indicator can be used in two primary ways:
Breakout Trading: A trader may enter a long position on a "Break Up" signal or a short position on a "Break Down" signal. A common risk management practice is to use the opposite OR level (ORL for long trades, ORH for short trades) as a stop-loss reference.
Faded Breakout / Reversal Trading: Look for the yellow "Reversal Up" or "Reversal Down" signals. These signals indicate a rejection of the OR level, and a trader may take a counter-trend position with the expectation that the price will return to the consolidation range or move toward the opposite OR level.
⚠️ Educational Disclaimer
This indicator is for educational and illustrative purposes only. It provides technical signals based on mathematical calculation of price action and should not be construed as financial advice, trading advice, or a solicitation to buy or sell any financial instrument. Trading carries a high level of risk, and you may lose more than your initial deposit. Past performance is not indicative of future results. Always consult with a qualified financial professional before making any investment decisions.
ORB Pressure (Futures) Your TradingView script is an ORB “pressure + confirmation” indicator built for futures that anchors the Opening Range to the NY cash open and then manages the day in three phases. First, it constructs the Opening Range high/low starting at 09:30 NY for a user-selectable duration (3/5/15/30/60 minutes) and draws those levels forward on the chart. Second, once the range is set, it computes a real-time break likelihood score (0–100) plus a directional lean (UP/DOWN/NEUTRAL) using a blend of factors traders care about: proximity to the OR edges, ATR-based compression, repeated “touches” near ORH/ORL, EMA stacking and VWAP positioning/slope, and relative volume vs a baseline. Third, it enforces a clean signal structure: it triggers a one-shot event only when a candle closes outside ORH/ORL, logs the break details (direction, price, ticks beyond the range, and time), and prevents repeat firing; however, if price closes back inside the range within a configurable number of candles, the script treats it as a failed break and resets so it can re-arm. A compact dashboard displays the live state (building/set/armed), score, lean, and it preserves the break statistics after a trigger so you can review the day’s breakout behavior at a glance.
CS Trendline ProTitle: CS Trendline Pro
Description:
CS Trendline Pro is a comprehensive scalping and day-trading system designed to filter out noise and identify high-probability breakout setups. It combines the structural precision of Fractal Trendlines with a robust Dual-EMA Filter, visualized through an intuitive "Traffic Light" color system.
This tool is specifically engineered for traders who want to trade Trendline Breakouts but need a safety mechanism to avoid false signals (fakeouts) and counter-trend traps.
🚦 How the "Traffic Light" Logic Works
The core feature of this script is the dynamic coloring of the candles, which acts as a visual filter for your entries:
🟢 GREEN Zone (Safe Buy):
Condition: A Bullish Trendline Breakout has occurred AND the price is holding ABOVE the EMA 30 (Yellow Line).
Meaning: Momentum is bullish, and you are in a safe zone to look for Long entries.
🔴 RED Zone (Safe Sell):
Condition: A Bearish Trendline Breakout has occurred AND the price is holding BELOW the EMA 30 (Yellow Line).
Meaning: Momentum is bearish, and you are in a safe zone to look for Short entries.
⚪ GRAY Zone (No Trade / Wait):
Condition: A breakout occurred, but the price is on the "wrong side" of the EMA 30.
Meaning: Indecision. The market structure is conflicting with the immediate momentum. It is recommended to stay out until the color changes.
🛠️ Key Features
** automated Trendlines:** Automatically draws Support and Resistance dynamic trendlines based on pivot points (LuxAlgo engine).
Dual EMA Filter:
EMA 30 (Yellow): Acts as the immediate "Safe Zone" filter.
EMA 200 (White): Displays the macro trend. (Pro Tip: Only take Green signals if price is above the White line).
CS-BUY / CS-SELL Labels: Clear text markers appear exactly when a valid breakout occurs.
Customizable: Adjustable sensitivity (Length), EMA periods, and Slope calculation methods (ATR, Stdev, Linreg).
📉 How to Trade with CS Trendline Pro
For Scalping (5m / 15m):
Identify the Main Trend: Look at the White EMA (200).
If Price > EMA 200 → Focus on BUY signals.
If Price < EMA 200 → Focus on SELL signals.
Wait for the Signal:
Wait for the candle to turn Teal (Green) or Red.
Ensure the candle closes with the new color.
Risk Management:
Place Stop Loss below the recent swing low (for buys) or above the swing high (for sells).
Target a 1.5 Risk/Reward ratio or trail your stop using the EMA 30.
⚠️ Important Note on Backpainting
This indicator uses pivot points to draw trendlines. By nature, a pivot point can only be confirmed after a few bars have passed (Lag).
Backpaint Setting (Default ON): Keeps your historical chart clean by connecting the exact pivot points in the past.
Real-Time Behavior: In live trading, the trendline and signal will appear once the pivot is confirmed (based on your 'Length' setting). This is normal behavior for any trendline script.
Settings Recommended:
5-Minute Chart: Length 10 or 14.
15-Minute Chart: Length 14.
Enjoy trading with precision! ~ CS Trading
GMMA fill (v5) + Golden Crossover HighlightsGMMA Fill (v5) + Golden Crossover Highlights
This setup combines the Guppy Multiple Moving Average (GMMA) Fill version 5 with Golden Crossover signals to identify strong trend continuation and potential breakout points. GMMA provides layered moving averages for short- and long-term trend analysis, while the Golden Crossover highlights bullish momentum shifts, making it ideal for spotting entry opportunities in trending markets.
8menutakeshi//@version=5
indicator("猛の掟・初動スクリーナー(完全版:8項目コメント表示)", overlay=true, max_labels_count=50)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// Inputs
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
showPanel = input.bool(true, "コメント表示")
panelPos = input.string("右上", "コメント位置", options= )
lastBarOnly = input.bool(true, "最後の足だけ更新(推奨)")
// EMA
lenEma1 = input.int(5, "EMA 5", minval=1)
lenEma2 = input.int(13, "EMA 13", minval=1)
lenEma3 = input.int(26, "EMA 26", minval=1)
// MACD
macdFast = input.int(12, "MACD fast", minval=1)
macdSlow = input.int(26, "MACD slow", minval=1)
macdSig = input.int(9, "MACD signal", minval=1)
// Volume
volMaLen = input.int(5, "出来高平均(N日)", minval=1)
volMinMul = input.float(1.3, "出来高倍率Min", step=0.1)
volMaxMul = input.float(2.0, "出来高倍率Max", step=0.1)
volFinalMul = input.float(1.5, "最終三点:出来高倍率(>=)", step=0.1)
// Candle
wickBodyMult = input.float(1.8, "下ヒゲ判定:下ヒゲ/実体 >=", step=0.1)
atrLen = input.int(14, "ATR長", minval=1)
bigBodyATR = input.float(1.2, "大陽線判定:実体 >= ATR×", step=0.1)
// Breakout / Pullback
resLookback = input.int(20, "レジスタンス:過去N日高値", minval=5)
pullMinPct = input.float(5.0, "押し目Min(%)", step=0.5)
pullMaxPct = input.float(15.0, "押し目Max(%)", step=0.5)
retestAllowPct = input.float(1.0, "ブレイク価格の許容下抜け(%)", step=0.1)
stateExpireBars = input.int(30, "ブレイク状態の期限(本数)", minval=5)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// Series
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ema5 = ta.ema(close, lenEma1)
ema13 = ta.ema(close, lenEma2)
ema26 = ta.ema(close, lenEma3)
= ta.macd(close, macdFast, macdSlow, macdSig)
volAvg = ta.sma(volume, volMaLen)
volMul = volAvg == 0 ? na : (volume / volAvg)
atr = ta.atr(atrLen)
// Candle parts
body = math.abs(close - open)
upperWick = high - math.max(open, close)
lowerWick = math.min(open, close) - low
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 1-3: トレンド
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ema5Up = ema5 > ema5
ema13Up = ema13 > ema13
ema26Up = ema26 > ema26
allEmaUp = ema5Up and ema13Up and ema26Up
golden = (ema5 > ema13) and (ema13 > ema26)
above26_2days = (close > ema26) and (close > ema26 )
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 4: MACD(ゼロライン上GC)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
macdZeroGC = ta.crossover(macdLine, macdSignal) and (macdLine > 0)
histShrinkToUp = (macdHist > macdHist ) and (macdHist < macdHist ) // 参考表示
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 5: 出来高
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
volOK = not na(volMul) and (volMul >= volMinMul) and (volMul <= volMaxMul)
volStrongOK = not na(volMul) and (volMul >= volFinalMul) // 最終三点用
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 6: ローソク(ピンバー/包み/大陽線)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
longLowerWick = (body > 0) and ((lowerWick / body) >= wickBodyMult) and (upperWick <= lowerWick * 0.6) and (close > open)
bullEngulf = (close < open ) and (close > open) and (open <= close ) and (close >= open )
bigBull = (close > open) and (body >= atr * bigBodyATR) and (open < ema13) and (close > ema5)
candleOK = longLowerWick or bullEngulf or bigBull
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 7-8: ブレイク後押し目(押し目 -5〜15%)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
res = ta.highest(high, resLookback)
breakout = ta.crossover(close, res)
var bool inBreak = false
var float breakPrice = na
var int breakBar = na
var float postBreakHigh = na
if breakout
inBreak := true
breakPrice := res
breakBar := bar_index
postBreakHigh := high
if inBreak
postBreakHigh := na(postBreakHigh) ? high : math.max(postBreakHigh, high)
pullPct = (inBreak and not na(postBreakHigh) and postBreakHigh != 0) ? (postBreakHigh - close) / postBreakHigh * 100.0 : na
pullOK = not na(pullPct) and (pullPct >= pullMinPct) and (pullPct <= pullMaxPct)
retestOK = inBreak and not na(breakPrice) and (close >= breakPrice * (1 - retestAllowPct/100.0))
breakoutPullbackOK = inBreak and retestOK and pullOK
if inBreak and not na(breakBar) and (bar_index - breakBar > stateExpireBars)
inBreak := false
breakPrice := na
breakBar := na
postBreakHigh := na
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 8項目チェック(1つでも欠けたら見送り)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
chk1 = allEmaUp
chk2 = golden
chk3 = above26_2days
chk4 = macdZeroGC
chk5 = volOK
chk6 = candleOK
chk7 = pullOK
chk8 = breakoutPullbackOK
all8 = chk1 and chk2 and chk3 and chk4 and chk5 and chk6 and chk7 and chk8
// 最終三点(ヒゲ×出来高×MACD)
// ※「成立時は買い確定」の定義に合わせて、all8に加えてfinal3も必須にしている
final3 = longLowerWick and volStrongOK and macdZeroGC
judge = (all8 and final3) ? "判定:買い" : "判定:見送り"
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// コメント文字列(←txt を必ず先に定義)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fMark(x) => x ? "達成" : "未達"
txt =
"【8項目チェック】 " +
"1 EMA全上向き: " + fMark(chk1) + " " +
"2 黄金隊列: " + fMark(chk2) + " " +
"3 26EMA上2日: " + fMark(chk3) + " " +
"4 MACDゼロ上GC: " + fMark(chk4) + " " +
"5 出来高" + str.tostring(volMinMul) + "-" + str.tostring(volMaxMul) + ": " + fMark(chk5) + " " +
"6 ローソク条件: " + fMark(chk6) + " " +
"7 押し目-" + str.tostring(pullMinPct) + "〜" + str.tostring(pullMaxPct) + "%: " + fMark(chk7) + " " +
"8 ブレイク後押し目: " + fMark(chk8) + " " +
"最終三点(ヒゲ×出来高×MACD): " + (final3 ? "成立" : "未成立") + " " +
judge + " " +
"(参考)出来高倍率=" + (na(volMul) ? "na" : str.tostring(volMul, "#.00")) +
" / 押し目率=" + (na(pullPct) ? "na" : str.tostring(pullPct, "#.0")) + "%" +
" / hist転換=" + (histShrinkToUp ? "YES" : "NO")
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// Table(位置は if で確定。三項演算子で改行しない)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
var pos = position.top_right
if panelPos == "右上"
pos := position.top_right
else if panelPos == "左上"
pos := position.top_left
else if panelPos == "右下"
pos := position.bottom_right
else
pos := position.bottom_left
var table t = table.new(pos, 1, 1)
// 描画条件
drawNow = showPanel and (lastBarOnly ? barstate.islast : true)
bg = (all8 and final3) ? color.new(color.lime, 80) : color.new(color.gray, 15)
fg = color.white
if drawNow
table.cell(t, 0, 0, txt, text_color=fg, bgcolor=bg, text_size=size.small)
else
table.cell(t, 0, 0, "", text_color=fg, bgcolor=color.new(color.black, 100))
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 視覚補助
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
plot(ema5, color=color.new(color.yellow, 0), title="EMA5")
plot(ema13, color=color.new(color.orange, 0), title="EMA13")
plot(ema26, color=color.new(color.red, 0), title="EMA26")
plotshape(all8 and final3, title="BUY", style=shape.triangleup, location=location.belowbar,
color=color.new(color.lime, 0), size=size.tiny, text="BUY")
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/確 いずれか")
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.
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.
PDI / MMXM Execution OverlayCreates FVG's on lower time frames automatically. Helps with charting live.
Early Momentum Dashboard [Small Caps]Early Momentum Dashboard for Small Caps
A clean, real-time dashboard that detects building momentum before major moves in small-cap stocks.
Features:
• 7 key early-momentum indicators with traffic-light system (🟢 Bullish / 🟡 Neutral / 🔴 Bearish)
• Toggle each indicator on/off via settings
• Momentum Score (e.g., 5/7) – higher = stronger early signal
• Visual markers on chart (VOL, RSI, MACD)
• Includes: Relative Volume Spike, RSI Buildup, MACD, OBV Accumulation, ROC, ATR Volatility, VWAP Proximity
Ideal for scanning low-float or catalyst-driven small caps.
Tip: Look for 4+ green lights as a high-probability early entry signal.
Enjoy!
Harmonic Patterns (Experimental) [Kodexius]Harmonic Patterns (Experimental) is a multi pattern harmonic geometry scanner that automatically detects, validates, and draws classic harmonic structures directly on your chart. The script continuously builds a pivot map (swing highs and swing lows), then evaluates the most recent pivot sequence against a library of harmonic ratio templates such as Gartley, Bat, Deep Bat, Butterfly, Crab, Deep Crab, Cypher, Shark, Alt Shark, 5-0, AB=CD, and 3 Drives.
Unlike simple “pattern exists / pattern doesn’t exist” indicators, this version scores candidates by accuracy . Each pattern includes “ideal” ratio targets, and the script computes a total error score by measuring how far the observed ratios deviate from the ideal. When multiple patterns could match the same pivot structure, the script selects the best match (lowest total error) and displays that one. This reduces clutter and makes the output more practical in real market conditions where many ratio ranges overlap.
The end result is a clean, information rich visualization of harmonic opportunities that is:
-Pivot based and swing aware
-Ratio validated with configurable tolerance
-Direction filtered (bullish, bearish, or both)
-Ranked by accuracy to prefer higher quality matches
Note: This is an experimental pattern engine intended for research, confluence and chart study. Harmonic patterns are probabilistic and can fail often. Always combine with your own risk management and confirmation tools.
🔹 Features
🔸Pivot Detection
The script uses pivot functions to detect structural turning points:
-Pivot Left Bars controls how many bars must exist on the left of the pivot
-Pivot Right Bars controls confirmation delay on the right (smaller value reacts faster)
Additionally, a Min Swing Distance (%) filter can ignore tiny swings to reduce noise. Pivots are stored separately for highs and lows and capped by Max Pivots to Store to keep the script efficient.
🔸Pattern Library (XABCD and Beyond)
Supported structures include:
-Gartley, Bat, Deep Bat, Butterfly, Crab, Deep Crab
-Cypher (uses XC extension and CD retracement logic)
-Shark and Alt Shark (0-X-A-B-C mapping)
-5-0 (AB and BC extensions with CD retracement)
-AB=CD (symmetry and proportionality checks)
-3 Drives (6 point structure, drive and retracement ratios)
Each pattern is defined by ratio ranges and also “ideal” ratio targets used for scoring.
🔸 Pattern Fibonacci Rules (Detailed Ratio Definitions)
This script validates each harmonic template by measuring a small set of Fibonacci relationships between the legs of the pattern. All measurements are computed using absolute price distance (so the ratios are direction independent), and then a directional sanity check ensures the geometry is positioned correctly for bullish or bearish cases.
How ratios are measured
Most patterns in this script use the standard X A B C D harmonic structure. Four ratios are evaluated:
1) XB retracement of XA
This measures how much price retraces from A back toward X when forming point B .
xbRatio = |B - A| / |A - X|
2) AC retracement of AB
This measures how much point C retraces the AB leg.
acRatio = |C - B| / |B - A|
3) BD extension of BC
This measures the “drive” from C into D relative to the BC leg.
bdRatio = |D - C| / |C - B|
4) XD retracement of XA
This is the most important “completion” ratio in many patterns. It measures where D lands relative to the original XA swing.
xdRatio = |D - A| / |A - X|
Important: the script applies a user defined Fibonacci Tolerance to each accepted range, meaning the pattern can still pass even if ratios are slightly off from the textbook values.
🔸 XABCD Pattern Ratio Templates
Below are the exact ratio rules used by the templates in this script.
Gartley
-XB must be ~0.618 of XA
-AC must be between 0.382 and 0.886 of AB
-BD must be between 1.272 and 1.618 extension of BC
-XD must be ~0.786 of XA
In practice, Gartley is a “non extension” structure, meaning D usually remains inside the X boundary .
Bat
-XB between 0.382 and 0.50 of XA
-AC between 0.382 and 0.886 of AB
-BD between 1.618 and 2.618 of BC
-XD ~0.886 of XA
Bat patterns typically complete deeper than Gartley and often create a sharper reaction at D.
Deep Bat
-XB ~0.886 of XA
-AC between 0.382 and 0.886 of AB
-BD between 1.618 and 2.618 of BC
-XD ~0.886 of XA
Deep Bat uses the same completion zone as Bat, but requires a much deeper B point.
Butterfly
-XB ~0.786 of XA
-AC between 0.382 and 0.886 of AB
-BD between 1.618 and 2.618 of BC
-XD between 1.272 and 1.618 of XA
Butterfly is an extension pattern . That means D is expected to break beyond X (in the completion direction).
Crab
-XB between 0.382 and 0.618 of XA
-AC between 0.382 and 0.886 of AB
-BD between 2.24 and 3.618 of BC
-XD ~1.618 of XA
Crab is also an extension pattern . It often produces a very deep D completion and a strong reaction zone.
Deep Crab
-XB ~0.886 of XA
-AC between 0.382 and 0.886 of AB
-BD between 2.0 and 3.618 of BC
-XD ~1.618 of XA
Deep Crab combines a deep B point with a strong XA extension completion.
🔸 Cypher Fibonacci Rules (XC Based)
Cypher is not validated with the same four ratios as XABCD patterns. Instead it uses an XC based completion model:
1) B as a retracement of XA
xb = |B - A| / |A - X| // AB/XA
Must be between 0.382 and 0.618 .
2) C as an extension from X relative to XA
xc = |C - X| / |A - X| // XC/XA
Must be between 1.272 and 1.414 .
3) D as a retracement of XC
xd = |D - C| / |C - X| // CD/XC
Must be ~ 0.786 .
This makes Cypher structurally different: the “completion” is defined as a retracement of the entire XC leg, not XA.
🔸 Shark and Alt Shark Fibonacci Rules (0-X-A-B-C Mapping)
Shark patterns are commonly defined as 0 X A B C . In this script the pivots are mapped like this:
0 = pX, X = pA, A = pB, B = pC, C = pD
So the final pivot (stored as pD) is labeled as C on the chart.
Three ratios are validated:
1) AB relative to XA
ab_xa = |B - A| / |A - X|
Must be between 1.13 and 1.618 .
2) BC relative to AB
bc_ab = |C - B| / |B - A|
Must be between 1.618 and 2.24 .
3) OC relative to OX
oc_ox = |C - 0| / |X - 0|
For Shark it must be between 0.886 and 1.13 .
For Alt Shark it must be between 1.13 and 1.618 (a deeper / more extended completion).
🔸 5-0 Fibonacci Rules
5-0 is validated as a sequence of extensions and then a fixed retracement:
1) AB extension of XA
ab_xa = |B - A| / |A - X|
Must be between 1.13 and 1.618 .
2) BC extension of AB
bc_ab = |C - B| / |B - A|
Must be between 1.618 and 2.24 .
3) CD retracement of BC
cd_bc = |D - C| / |C - B|
Must be approximately 0.50 .
Note that for 5-0 the script does not rely on an XA completion ratio like 0.786 or 1.618. The defining completion is the 0.5 retracement of BC.
🔸 AB=CD Fibonacci Rules
AB=CD is a symmetry pattern and is treated differently from the harmonic templates:
1) AB and CD length symmetry
The script checks if CD is approximately equal to AB within tolerance.
2) BC proportion
BC/AB is expected to fall in a common Fibonacci retracement zone:
-approximately 0.618 to 0.786 (with a looser tolerance in code)
3) CD/BC expansion
CD/BC is expected to be an expansion ratio:
-approximately 1.272 to 1.618 (also with a looser tolerance)
This allows the script to capture both classic equal leg AB=CD and common “expanded” variations.
🔸 3 Drives Fibonacci Rules (6 Point Structure)
3 Drives is a 6 point structure and is validated using retracement ratios and extension ratios:
Retracement rules
Retracement 1 must be between 0.618 and 0.786 of Drive 1
Retracement 2 must be between 0.618 and 0.786 of Drive 2
Extension rules
Drive 2 must be between 1.272 and 1.618 of Retracement 1
Drive 3 must be between 1.272 and 1.618 of Retracement 2
This pattern is meant to capture rhythm and proportional repetition rather than a single XA completion ratio.
🔸 Why the script can show “ratio labels” on legs
If you enable Show Fibonacci Values on Legs , the script prints the measured ratios near the midpoint of each leg (or diagonal, depending on pattern type). This makes it easy to visually confirm:
-Which ratios caused the pattern to pass
-How close the structure is to ideal harmonic values
-Why one template was preferred over another via the accuracy score
🔸 Fibonacci Tolerance Control
All ratio checks use a single tolerance input (percentage). This tolerance expands or contracts the acceptable ratio ranges, letting you decide whether you want:
-Tight, high precision matches (lower tolerance)
-Broader, more frequent matches (higher tolerance)
🔸 Direction Filter (Bullish Only / Bearish Only / Both)
You can restrict scanning to bullish patterns, bearish patterns, or allow both. This is useful if you are aligning with higher timeframe bias or only trading one side of the market.
🔸 Best Match Selection (Anti Clutter Logic)
When a new pivot confirms, the script evaluates all enabled patterns against the latest pivot sequence and keeps the one with the smallest total error score. This is especially helpful because many harmonic templates overlap in real time. Instead of drawing multiple conflicting labels, you get one “most accurate” candidate.
🔸 Clean Visual Rendering and Optional Details
The drawing system can display:
-Main structure lines (X-A-B-C-D or special mappings)
-Dashed diagonals for geometric context (XB, AC, BD, XD)
-Pattern fill to visually highlight the structure zone
-Point labels (X,A,B,C,D or 0..5 for 3 Drives, 0-X-A-B-C for Shark)
-Leg Fibonacci labels placed around midpoints for fast ratio reading
All colors (bullish and bearish line and fill) are configurable.
🔸 Pattern Spacing and Display Limits
To keep charts readable, the script includes:
-Max Patterns to Display to limit on-chart drawings
-Min Bars Between Patterns to avoid repeated signals too close together in the same direction
Older patterns are automatically deleted once the display limit is exceeded.
🔸 Alerts
When enabled, alerts trigger on new confirmed detections:
-Bullish Pattern Detected
-Bearish Pattern Detected
Alerts fire once per bar when a new pattern is confirmed by a fresh pivot.
🔹 Calculations
This section summarizes the core logic used under the hood.
1) Pivot Detection and Swing Filtering
The script confirms pivots using right side confirmation, then optionally filters them by minimum swing distance relative to the last opposite pivot.
// Pivot detection
float pHigh = ta.pivothigh(high, pivotLeftBars, pivotRightBars)
float pLow = ta.pivotlow(low, pivotLeftBars, pivotRightBars)
// Example swing distance filter (conceptual)
abs(newPivot - lastOppPivot) / lastOppPivot >= minSwingPercent
Pivots are stored in capped arrays (high pivots and low pivots), ensuring performance and stable memory usage.
2) Ratio Measurements (Retracement and Extension)
The engine measures harmonic ratios using two core helpers:
Retracement measures how much the third point retraces the previous leg.
Extension measures how much the next leg extends relative to the previous leg.
// Retracement: (p3 - p2) compared to (p2 - p1)
calcRetracement(p1, p2, p3) =>
float leg = math.abs(p2.price - p1.price)
float retr = math.abs(p3.price - p2.price)
leg != 0 ? retr / leg : na
// Extension: (p4 - p3) compared to (p3 - p2)
calcExtension(p2, p3, p4) =>
float leg = math.abs(p3.price - p2.price)
float ext = math.abs(p4.price - p3.price)
leg != 0 ? ext / leg : na
For a standard XABCD pattern the script evaluates:
-XB retracement of XA
-AC retracement of AB
-BD extension of BC
-XD retracement of XA
3) Tolerance Based Range Check
Ratio validation uses a flexible range check that expands min and max by the tolerance percent:
isInRange(value, minVal, maxVal, tolerance) =>
float tolMin = minVal * (1.0 - tolerance)
float tolMax = maxVal * (1.0 + tolerance)
value >= tolMin and value <= tolMax
This means even “fixed” ratios (like 0.786) still allow a user controlled deviation.
4) Positional Sanity Check for D (Beyond X or Not)
Some harmonic patterns require D to remain within X (non extension patterns), while others require D to break beyond X (extension patterns). The script enforces that using a boolean flag in each template.
Conceptually:
-If the pattern is an extension type, D should cross beyond X in the expected direction
-If the pattern is not extension type, D should stay on the correct side of X
This prevents visually incorrect “ratio matches” that violate the intended geometry.
5) Template Definitions (Ranges + Ideal Targets)
Every pattern includes ratio ranges plus ideal values. The ideal values are used only for scoring quality, not for pass/fail. Example concept:
-Ranges determine validity
-Ideal targets determine ranking
6) Accuracy Scoring (Total Error)
When a candidate passes all validity checks, the script computes an accuracy score by summing absolute deviations from ideal ratios:
calcError(value, ideal) =>
math.abs(value - ideal)
// Total error is the sum of the four leg errors (as available for the pattern)
totalError =
calcError(xbRatio, xbIdeal) +
calcError(acRatio, acIdeal) +
calcError(bdRatio, bdIdeal) +
calcError(xdRatio, xdIdeal)
Lower score means closer to the “textbook” harmonic proportions.
7) Best Match Resolution (Choosing One Winner)
When multiple enabled patterns match the same pivot structure, the script selects the one with the lowest totalError:
updateBest(currentBest, newCandidate) =>
result = currentBest
if not na(newCandidate)
if na(currentBest) or newCandidate.totalError < currentBest.totalError
result := newCandidate
result
This is a major practical feature because it reduces clutter and highlights the highest quality interpretation.
8) Bullish and Bearish Scanning Logic
The scanner runs when pivots confirm:
-Bullish patterns are evaluated on a newly confirmed pivot low (potential D)
-Bearish patterns are evaluated on a newly confirmed pivot high (potential D)
From that D pivot, the script searches backward through stored pivots to build a valid pivot sequence (X,A,B,C,D). If 3 Drives is enabled, it also attempts to find the extra preceding point needed for the 6 point structure.
9) Rendering: Lines, Fill, Labels, and Leg Fib Text
After detection the script draws:
-Primary legs with thicker lines
-Geometric diagonals with dashed lines (for XABCD types)
-Optional fill between selected legs to emphasize the structure area
-A summary label showing direction, pattern name, and ratios
-Optional point labels and leg ratio labels placed near midpoints
To avoid overlapping with candles, the script offsets labels using ATR:
float yOff = math.max(ta.atr(14) * 0.15, syminfo.mintick * 10)
10) Pattern Lifecycle and Cleanup
To respect chart limits and keep visuals clean, the script deletes old drawings once the maximum visible patterns threshold is exceeded. This includes lines, fills, and labels.
ICT Candle Reading PROICT Candle Reading – Visual Clean
This indicator is designed to provide a clean and precise price reading, based on ICT and Smart Money Concepts, without cluttering the chart.
Its purpose is to help traders identify real institutional zones, understand market intention, and improve entry timing, using pure price action.
🔹 What does this indicator show?
🟢 Fair Value Gaps (FVG / Imbalances)
Detects market inefficiencies created by impulsive moves.
Displayed as clean and minimal boxes extended into the future.
Useful as mitigation, reaction, or continuation zones.
🟠 Liquidity Sweeps
Highlights liquidity grabs above recent highs or below recent lows.
Drawn using dashed horizontal lines.
Helps identify market manipulation before the true move.
🔵 Displacement Candles
Identifies candles with dominant bodies, showing institutional momentum.
Marked with small symbols to keep the chart clean.
Useful to confirm impulse starts or shifts in market intent.
🎯 Indicator Philosophy
❌ No lagging indicators
❌ No chart clutter
✅ Real ICT concepts
✅ Clean candle reading
✅ Suitable for scalping, intraday, and swing trading
⚙️ Customization
Each concept can be enabled or disabled individually.
Zone extension length is adjustable.
Optimized for 15M, 1H, and 4H timeframes.
📈 How to use
This indicator does not provide automatic buy/sell signals.
It is best used with:
Higher timeframe bias
Market structure
Session timing (London / New York)
Proper risk management
🧠 Final Notes
ICT Candle Reading – Visual Clean helps you see the market from an institutional perspective, focusing only on what truly matters: price, liquidity, and intent.
Magical Thirteen Turns - The Greedy SnakeThe number 9 appears:
Meaning: Warning signal. The rise may encounter resistance and a cautious pullback is about to begin.
Operation: Consider reducing your holdings (selling a portion) to lock in profits and avoid experiencing wild fluctuations.
The number 13 appears:
Meaning: Strong sell signal. The upward momentum is likely to be exhausted, which is also known as "bull exhaustion".
Operation: It is recommended to liquidate your positions or significantly reduce them. Short sell (if you are trading contracts).
Bottom & Top ReversalBottom & Top Reversal
Bottom Reversal (Bullish):
Opens gap down but recovers strongly
Makes new low but closes above previous close
Lime green arrow + label
Top Reversal (Bearish):
Opens gap up but fails
Makes new high but closes below previous close
Red arrow + label
Extra features:
Status table showing active patterns
Toggle each pattern on/off
Background highlights
Alert system
MACD Trend Count ScoreThis indicator aims to confirm trends in an asset's price. This confirmation is achieved by counting the MACD bars in a calculation using the chosen timeframe. Positive and negative bars are considered in the calculation of the strength index, which indicates the current trend of that asset.
This Delta index summarizes the predominance of positive or negative bars in the MACD histogram over weekly, bi-weekly, monthly, bi-monthly, and quarterly periods, and, depending on the timeframe used, its result allows one to indicate the intensity of the current trend, according to the results it shows within the following ranges:
Acima de +60 → Strong Raise.
Entre +20 e +60 → Moderate High.
Entre -20 e +20 → Neutral.
Entre -60 e -20 → Moderate Low.
Abaixo de -60 → Strong Low.
Abyss Protocol OneAbyss Protocol One — Momentum Exhaustion Trading System
Overview
Abyss Protocol One is a momentum exhaustion indicator designed to identify high-probability reversal points by detecting when price momentum has reached extreme levels. It combines Chande Momentum Oscillator (CMO) threshold signals with dynamic volatility-adjusted bands and multiple protective filters to generate buy and sell signals.
Core Concept
The indicator operates on the principle that extreme momentum readings (CMO reaching ±80) often precede mean reversion. Rather than chasing trends, Abyss Protocol waits for momentum exhaustion before signaling entries and exits.
Key Components
1. Dynamic Bands (Money Line ± ATR)
Center line uses linear regression (Money Line) for smooth trend representation
Bands expand and contract based on Bollinger Band Width Percentile (BBWP)
Low volatility (BBWP < 30): Tighter bands using lower multiplier
High volatility (BBWP > 70): Wider bands using higher multiplier
Bands visually adapt to current market conditions
2. CMO Exhaustion Signals
BUY Signal: CMO drops below -80 (oversold/momentum exhaustion to downside)
SELL Signal: CMO rises above +80 (overbought/momentum exhaustion to upside)
Thresholds are configurable for different assets and timeframes
3. ADX Filter
Signals only fire when ADX exceeds minimum threshold (default: 22)
Ensures there's enough directional movement to trade
Prevents signals during choppy, directionless markets
4. Band Contraction Filter
Calculates band width percentile rank over configurable lookback
When bands are contracted (below 18th percentile), ALL signals are blocked
Prevents trading during low-volatility squeeze periods where breakout direction is uncertain
5. Consecutive Buy Limit
Maximum of 3 consecutive buys allowed before a sell is required
Prevents overexposure during extended downtrends
Counter resets when a sell signal fires
6. Underwater Protection
Tracks rolling average of recent entry prices (last 10 entries within 7 days)
Blocks sell signals if current price is below average entry price
Prevents locking in losses during drawdowns
7. Signal Cooldown
Minimum 5-bar cooldown between signals
Prevents rapid-fire signals during volatile swings
8. Extreme Move Detection
Detects when price penetrates beyond bands by more than 0.6 × ATR
Extreme signals can bypass normal cooldown period
Fire intra-bar for faster response to capitulation/blow-off moves
Still respects max consecutive buys and underwater protection
Visual Features
Trend State Detection
The indicator classifies market conditions into six states based on EMA stack, price position, and directional indicators:
STRONG UP: Full bullish alignment (EMA stack + price above trend + bullish DI + ADX > threshold)
UP: Moderate bullish conditions
NEUTRAL: No clear directional bias
DOWN: Moderate bearish conditions
STRONG DOWN: Full bearish alignment
CONTRACTED: Bands squeezed, volatility low
ADX Trend Bar
Colored dots at chart bottom provide instant trend state visibility:
Lime = Strong Uptrend
Blue = Uptrend
Orange = Neutral
Red = Downtrend
Maroon = Strong Downtrend
White = Contracted
Volume Spike Highlighting
Purple background highlights candles where volume exceeds 2x the 20-bar average, helping identify institutional activity or significant market events.
Signal Labels
Buy labels show consecutive buy count (e.g., "BUY 2/3"), price, and CMO value
Sell labels show consecutive sell count, price, and CMO value
Extreme signals display in distinct colors (cyan for buys, fuchsia for sells)
Signal candles turn bright blue for easy identification
Info Panel
Real-time dashboard displaying:
Current trend state
CMO value with threshold status
CMO thresholds (buy/sell levels)
ADX with directional indicator (▲/▼) and signal eligibility
BBWP percentage
Buy/Sell counters
Average entry price (with underwater shield indicator 🛡 when protected)
Price position relative to Money Line
Band width percentile rank
Extreme move status
Signals status (OPEN/BLOCKED)
Recommended Use
Timeframe: 5-15 minute charts (parameters tuned for this range)
Best suited for: Assets with regular oscillations between overbought/oversold extremes
Trading style: Mean reversion, momentum exhaustion, scaled entries
Parameters Summary
Money Line Length: 12 — Smoothing for center line
ATR Length: 10 — Volatility measurement
Band Multiplier (Low/High Vol): 1.5 / 2.5 — Dynamic band width
CMO Length: 9 — Momentum calculation period
CMO Buy/Sell Threshold: -80 / +80 — Signal trigger levels
ADX Min for Signals: 22 — Minimum trend strength
Signal Cooldown: 5 bars — Minimum bars between signals
Max Consecutive Buys: 3 — Position scaling limit
Band Contraction Threshold: 18th %ile — Low volatility filter
Band Contraction Lookback: 188 bars — Percentile calculation period
Extreme Penetration: 0.6 × ATR — Threshold for extreme signals
ORB Strategy + Backtesting (fixed timestamp) - Lines Adjusted⚡ ORB Strategy + Backtesting (Pine Script v5)
This script implements a complete Opening Range Breakout (ORB) strategy, featuring built-in backtesting, advanced TP/SL visualization, full style customization, and a performance dashboard. It is designed for traders who want to clearly evaluate breakout performance directly on the chart.
🕑 ORB Window Configuration
🔹 Session selection: choose between Market Timezone or Custom Session.
🔹 Timezone support: configurable from UTC-8 to UTC+12.
🔹 Daily limit: option to allow only one trade per day.
🔹 Risk/Reward (RR) settings:
Configurable TP1, TP2, and TP3 levels.
Stop Loss calculated dynamically from the ORB range.
📊 Backtesting Engine
🔹 Interactive dashboard showing trades, wins, losses, and win rate.
🔹 Adjustable partial exits for each TP (TP1, TP2, TP3).
🔹 Automatic calculation of percentage-based profit and loss.
🔹 Tracks total trades, total profit, and average profit per trade.
🎨 Visual Customization
🔹 Fully customizable colors:
ORB high/low lines and range fill.
Buy/Sell entry labels.
TP and SL lines with background zones.
🔹 Line style and thickness options (solid, dotted, dashed).
🔹 Visibility controls for each TP/SL level.
🔹 Clear profit and loss zones drawn directly on the chart.
🚀 Trading Logic
🔹 LONG entries: triggered when price breaks above the ORB high.
🔹 SHORT entries: triggered when price breaks below the ORB low.
🔹 Automatic calculation of Stop Loss and TP1, TP2, TP3 based on ORB range and RR.
🔹 Customizable BUY / SELL labels displayed at entry.
✅ TP / SL Detection
🔹 Real-time detection of TP1, TP2, TP3, and SL hits.
🔹 Prevents double counting of the same level.
🔹 Extended TP/SL lines with shaded zones for better clarity.
📈 Backtesting Dashboard
🔹 Displayed in the top-right corner of the chart.
🔹 Shows:
Total trades
Wins / Losses
Win rate (%)
Total profit (%)
Average profit per trade
🔹 Fully customizable panel color.
✨ Summary
This script combines:
Opening Range detection
Breakout trading logic with advanced risk management
Professional-grade visualizations
Integrated historical performance tracking
High customization for sessions, styles, and colors
💡 Ideal for traders who want to trade ORB setups with clarity, structure, and measurable results.
MACD Trend Count ScoreThis indicator aims to confirm trends in an asset's price. This confirmation is achieved by counting the MACD bars in a calculation using the chosen timeframe. Positive and negative bars are considered in the calculation of the strength index, which indicates the current trend of that asset.
Unsurpassed Close LevelsThis indicator identifies and visually highlights previous candle close prices that have not yet been surpassed by any subsequent higher high — creating dynamic horizontal resistance levels based purely on closing prices.
How it works:
For every confirmed candle, a dashed horizontal ray is drawn from its close price extending to the right.
The ray remains visible as long as no future candle's high reaches or exceeds that previous close level.
As soon as price makes a new high that touches or surpasses the level, the ray is automatically removed.
Duplicate levels (exact same close price already active) are skipped to keep the chart clean.
A built-in limit of 50 active levels prevents overload on very long timeframes.
Use cases:
Spot potential resistance zones formed by previous closes that price has failed to reclaim on the upside.
Helpful in downtrends or ranging markets to visualize "overhead supply" levels where sellers previously stepped in at the close.
Great complement to traditional swing highs or supply/demand zones — focuses exclusively on close-based resistance.
Works on any timeframe and any instrument.
Visuals:
Dashed red horizontal rays extending right from unsurpassed closes.
Clean and lightweight — lines disappear automatically when invalidated.
Simple, effective, and fully automatic. No inputs required.
Feel free to customize the color, style, or max levels count in the code if desired.






















