Pattern grafici
Effort per 1% Move (Normalized Columns)This indicator Shows a Normalized "effort" needed to move a certain assets price by 1 percent.
Used correctly, this can help in visualizing manipulation and shows a certain chance of a candle turning to a swing point.
Koushik_BBEMAJust a combination of BB and EMA. An easy way to immediately add bollinger band and multiple ema to your chart.
ATR + BJ Signal(GOLD)This script visualizes a price-based counting pattern that highlights potential market exhaustion and reversal areas.
When a series of candles continues in one direction, the indicator measures price momentum loss and marks possible turning points.
Features
Counts consecutive upward or downward price movement
Highlights possible exhaustion or reversal areas
Optional alerts, take-profit and stop-loss visual levels
Fully customizable colors and display settings
Useful as a confirmation tool with trend or volume indicators
This indicator is designed to assist decision-making, not to generate mechanical buy/sell signals.
Best used together with other trend or volatility tools.
📎 Short Description (for compact field)
Counts consecutive price movement to highlight potential market exhaustion and reversal zones.
Helps identify when strong trends may be weakening.
Volume Orderblock Breakout — Naaganeunja Lite v3.6Volume orderblocks breakout indicator
you can use it 5minutes (short trading)
or 4 hours(swing trading)
it is best indicator in the world
猛の掟・初動完成版//@version=5
indicator("猛の掟・初動スクリーナー_完成版", overlay=true)
// =============================
// 入力パラメータ
// =============================
emaLenShort = input.int(5, "短期EMA", minval=1)
emaLenMid = input.int(13, "中期EMA", minval=1)
emaLenLong = input.int(26, "長期EMA", minval=1)
macdFastLen = input.int(12, "MACD Fast", minval=1)
macdSlowLen = input.int(26, "MACD Slow", minval=1)
macdSignalLen = input.int(9, "MACD Signal", minval=1)
macdZeroTh = input.float(0.2, "MACDゼロライン近辺とみなす許容値", step=0.05)
volMaLen = input.int(5, "出来高平均日数", minval=1)
volMinRatio = input.float(1.3, "出来高倍率(初動判定しきい値)", step=0.1)
volStrongRatio = input.float(1.5, "出来高倍率(本物/三点シグナル用)", step=0.1)
highLookback = input.int(60, "直近高値の参照本数", minval=10)
pullbackMin = input.float(5.0, "押し目最小 ", step=0.5)
pullbackMax = input.float(15.0, "押し目最大 ", step=0.5)
breakLookback = input.int(15, "レジブレ後とみなす本数", minval=1)
wickBodyMult = input.float(2.0, "ピンバー:下ヒゲが実体の何倍以上か", step=0.5)
// ★ シグナル表示 ON/OFF
showMou = input.bool(true, "猛シグナルを表示")
showKaku = input.bool(true, "確シグナルを表示")
// =============================
// 基本指標計算
// =============================
emaShort = ta.ema(close, emaLenShort)
emaMid = ta.ema(close, emaLenMid)
emaLong = ta.ema(close, emaLenLong)
= ta.macd(close, macdFastLen, macdSlowLen, macdSignalLen)
volMa = ta.sma(volume, volMaLen)
volRatio = volMa > 0 ? volume / volMa : 0.0
recentHigh = ta.highest(high, highLookback)
prevHigh = ta.highest(high , highLookback)
pullbackPct = recentHigh > 0 ? (recentHigh - close) / recentHigh * 100.0 : 0.0
// ローソク足
body = math.abs(close - open)
upperWick = high - math.max(open, close)
lowerWick = math.min(open, close) - low
// =============================
// A:トレンド条件
// =============================
emaUp = emaShort > emaShort and emaMid > emaMid and emaLong > emaLong
goldenOrder = emaShort > emaMid and emaMid > emaLong
aboveEma2 = close > emaLong and close > emaLong
trendOK = emaUp and goldenOrder and aboveEma2
// =============================
// B:MACD条件
// =============================
macdGC = ta.crossover(macdLine, macdSignal)
macdNearZero = math.abs(macdLine) <= macdZeroTh
macdUp = macdLine > macdLine
macdOK = macdGC and macdNearZero and macdUp
// =============================
// C:出来高条件
// =============================
volInitOK = volRatio >= volMinRatio // 8条件用
volStrongOK = volRatio >= volStrongRatio // 三点シグナル用
volumeOK = volInitOK
// =============================
// D:ローソク足パターン
// =============================
isBullPinbar = lowerWick > wickBodyMult * body and lowerWick > upperWick and close >= open
isBullEngulf = close > open and open < close and close > open
isBigBullCross = close > emaShort and close > emaMid and open < emaShort and open < emaMid and close > open
candleOK = isBullPinbar or isBullEngulf or isBigBullCross
// =============================
// E:価格帯(押し目&レジブレ)
// =============================
pullbackOK = pullbackPct >= pullbackMin and pullbackPct <= pullbackMax
isBreakout = close > prevHigh and close <= prevHigh
barsSinceBreak = ta.barssince(isBreakout)
afterBreakZone = barsSinceBreak >= 0 and barsSinceBreak <= breakLookback
afterBreakPullbackOK = afterBreakZone and pullbackOK and close > emaShort
priceOK = pullbackOK and afterBreakPullbackOK
// =============================
// 8条件の統合
// =============================
allRulesOK = trendOK and macdOK and volumeOK and candleOK and priceOK
// =============================
// 最終三点シグナル
// =============================
longLowerWick = lowerWick > wickBodyMult * body and lowerWick > upperWick
macdGCAboveZero = ta.crossover(macdLine, macdSignal) and macdLine > 0
volumeSpike = volStrongOK
finalThreeSignal = longLowerWick and macdGCAboveZero and volumeSpike
buyConfirmed = allRulesOK and finalThreeSignal
// =============================
// 描画
// =============================
plot(emaShort, color=color.new(color.yellow, 0), title="EMA 短期(5)")
plot(emaMid, color=color.new(color.orange, 0), title="EMA 中期(13)")
plot(emaLong, color=color.new(color.blue, 0), title="EMA 長期(26)")
// シグナル表示(ON/OFF付き)
plotshape(showMou and allRulesOK, title="猛の掟 8条件クリア候補", location=location.belowbar, color=color.new(color.lime, 0), text="猛")
plotshape(showKaku and buyConfirmed, title="猛の掟 最終三点シグナル確定", location=location.belowbar, color=color.new(color.yellow, 0), text="確")
// =============================
// アラート条件
// =============================
alertcondition(allRulesOK, title="猛の掟 8条件クリア候補", message="猛の掟 8条件クリア候補シグナル発生")
alertcondition(buyConfirmed, title="猛の掟 最終三点シグナル確定", message="猛の掟 最終三点シグナル=買い確定")
Stochastic + MACD Alignment Signals//@version=5
indicator("Stochastic + MACD Alignment Signals", overlay=true)
// ————— INPUTS —————
stochLength = input.int(14, "Stoch Length")
k = input.int(3, "K Smoothing")
d = input.int(3, "D Smoothing")
macdFast = input.int(12, "MACD Fast Length")
macdSlow = input.int(26, "MACD Slow Length")
macdSignal = input.int(9, "MACD Signal Length")
emaLen = input.int(21, "EMA Filter Length")
// ————— CALCULATIONS —————
// Stochastic
kRaw = ta.stoch(close, high, low, stochLength)
kSmooth = ta.sma(kRaw, k)
dSmooth = ta.sma(kSmooth, d)
// MACD
macd = ta.ema(close, macdFast) - ta.ema(close, macdSlow)
signal = ta.ema(macd, macdSignal)
hist = macd - signal
// EMA Filter
ema = ta.ema(close, emaLen)
// ————— SIGNAL CONDITIONS —————
// BUY CONDITIONS
stochBull = ta.crossover(kSmooth, dSmooth) and kSmooth < 20
macdBull = ta.crossover(macd, signal) or (hist > 0)
emaBull = close > ema
buySignal = stochBull and macdBull and emaBull
// SELL CONDITIONS
stochBear = ta.crossunder(kSmooth, dSmooth) and kSmooth > 80
macdBear = ta.crossunder(macd, signal) or (hist < 0)
emaBear = close < ema
sellSignal = stochBear and macdBear and emaBear
// ————— PLOTTING SIGNALS —————
plotshape(buySignal, title="BUY", style=shape.labelup,
color=color.new(color.green, 0), size=size.large, text="BUY")
plotshape(sellSignal, title="SELL", style=shape.labeldown,
color=color.new(color.red, 0), size=size.large, text="SELL")
// ————— OPTIONAL ALERTS —————
alertcondition(buySignal, title="Buy Signal", message="Stoch + MACD Alignment BUY")
alertcondition(sellSignal, title="Sell Signal", message="Stoch + MACD Alignment SELL")
猛の掟・初動スクリーナー v3//@version=5
indicator("猛の掟・初動スクリーナー v3", overlay=true)
// ===============================
// 1. 移動平均線(EMA)設定
// ===============================
ema5 = ta.ema(close, 5)
ema13 = ta.ema(close, 13)
ema26 = ta.ema(close, 26)
plot(ema5, title="EMA5", color=color.orange, linewidth=2)
plot(ema13, title="EMA13", color=color.new(color.blue, 0), linewidth=2)
plot(ema26, title="EMA26", color=color.new(color.gray, 0), linewidth=2)
// ===============================
// 2. MACD(10,26,9)設定
// ===============================
fast = ta.ema(close, 10)
slow = ta.ema(close, 26)
macd = fast - slow
signal = ta.ema(macd, 9)
macdBull = ta.crossover(macd, signal)
// ===============================
// 3. 初動判定ロジック
// ===============================
// ゴールデン並び条件
goldenAligned = ema5 > ema13 and ema13 > ema26
// ローソク足が26EMAより上
priceAbove26 = close > ema26
// 3条件すべて満たすと「確」
bullEntry = goldenAligned and priceAbove26 and macdBull
// ===============================
// 4. スコア(0=なし / 1=猛 / 2=確)
// ===============================
score = bullEntry ? 2 : (goldenAligned ? 1 : 0)
// ===============================
// 5. スコアの色分け
// ===============================
scoreColor = score == 2 ? color.new(color.yellow, 0) : score == 1 ? color.new(color.lime, 0) : color.new(color.gray, 80)
// ===============================
// 6. スコア表示(カラム)
// ===============================
plot(score,
title="猛スコア (0=なし,1=猛,2=確)",
style=plot.style_columns,
color=scoreColor,
linewidth=3)
// 目安ライン
hline(0, "なし", color=color.new(color.gray, 80))
hline(1, "猛", color=color.new(color.lime, 60))
hline(2, "確", color=color.new(color.yellow, 60))
// ===============================
// 7. チャート上に「確」ラベル
// ===============================
plotshape(score == 2,
title="初動確定",
style=shape.labelup,
text="確",
color=color.yellow,
textcolor=color.black,
size=size.tiny,
location=location.belowbar)
MC² Tight Compression Screener v1.0//@version=5
indicator("MC² Tight Compression Screener v1.0", overlay=false)
// ————————————————
// Inputs
// ————————————————
lookbackHigh = input.int(50, "Near High Lookback")
atrLength = input.int(14, "ATR Length")
volLength = input.int(20, "Volume SMA Length")
thresholdNear = input.float(0.97, "Near Break % (0.97 = within 3%)")
// ————————————————
// Conditions
// ————————————————
// ATR Compression: shrinking 3 days in a row
atr = ta.atr(atrLength)
atrCompression = atr < atr and atr < atr and atr < atr
// Price is near recent highs
recentHigh = ta.highest(high, lookbackHigh)
nearBreak = close > recentHigh * thresholdNear
// Volume not dead (preferably building)
volAvg = ta.sma(volume, volLength)
volOK = volume > volAvg
// Final signal (binary)
signal = atrCompression and nearBreak and volOK
// ————————————————
// Plot (for Pine Screener)
// ————————————————
plot(signal ? 1 : 0, title="MC2 Compression Signal")
30-Minute High and Low30-Minute High and Low Levels
This indicator plots the previous 30-minute candle’s high and low on any intraday chart.
These levels are widely used by intraday traders to identify key breakout zones, liquidity pools, micro-range boundaries, and early trend direction.
Features:
• Automatically pulls the previous 30-minute candle using higher-timeframe HTF requests
• Displays the HTF High (blue) and HTF Low (red) on lower-timeframe charts
• Works on all intraday timeframes (1m, 3m, 5m, 10m, etc.)
• Levels stay fixed until the next 30-minute bar completes
• Ideal for ORB strategies, scalping, liquidity sweeps, and reversal traps
Use Cases:
• Watch for breakouts above the 30-minute high
• Monitor for liquidity sweeps and fakeouts around the high/low
• Treat the mid-range as a magnet during consolidation
• Combine with VWAP or EMA trend structure for high-precision intraday setups
This indicator is simple, fast, and designed for traders who rely on HTF micro-structure to guide intraday execution.
Golden Cross RSI Daily Helper (US Stocks)//@version=5
indicator("Golden Cross RSI Daily Helper (US Stocks)", overlay=true, timeframe="D", timeframe_gaps=true)
//========= الإعدادات الأساسية =========//
emaFastLen = input.int(50, "EMA سريع (اتجاه قصير المدى)")
emaSlowLen = input.int(200, "EMA بطيء (اتجاه طويل المدى)")
rsiLen = input.int(14, "فترة RSI")
rsiMin = input.float(40.0, "حد RSI الأدنى للدخول", 0.0, 100.0)
rsiMax = input.float(60.0, "حد RSI الأعلى للدخول", 0.0, 100.0)
slBufferPerc = input.float(1.5, "نسبة البفر لوقف الخسارة (%) أسفل/أعلى EMA200", 0.1, 5.0)
rrRatio = input.float(2.0, "نسبة العائد إلى المخاطرة (R:R)", 1.0, 5.0)
//========= حساب المؤشرات =========//
emaFast = ta.ema(close, emaFastLen)
emaSlow = ta.ema(close, emaSlowLen)
rsiVal = ta.rsi(close, rsiLen)
// اتجاه السوق
trendUp = emaFast > emaSlow
trendDown = emaFast < emaSlow
// ارتداد السعر من EMA50 أو EMA200 تقريبياً
bounceFromEmaFast = close > emaFast and low <= emaFast
bounceFromEmaSlow = close > emaSlow and low <= emaSlow
bounceLong = bounceFromEmaFast or bounceFromEmaSlow
bounceFromEmaFastShort = close < emaFast and high >= emaFast
bounceFromEmaSlowShort = close < emaSlow and high >= emaSlow
bounceShort = bounceFromEmaFastShort or bounceFromEmaSlowShort
// فلتر RSI
rsiOk = rsiVal >= rsiMin and rsiVal <= rsiMax
//========= شروط الدخول =========//
// شراء
longSignal = trendUp and bounceLong and rsiOk
// بيع
shortSignal = trendDown and bounceShort and rsiOk
//========= حساب وقف الخسارة والأهداف =========//
// نستخدم سعر إغلاق شمعة الإشارة كسعر دخول افتراضي
entryPriceLong = close
entryPriceShort = close
// وقف الخسارة حسب EMA200 + البفر
slLong = emaSlow * (1.0 - slBufferPerc / 100.0)
slShort = emaSlow * (1.0 + slBufferPerc / 100.0)
// المسافة بين الدخول ووقف الخسارة
riskLong = math.max(entryPriceLong - slLong, syminfo.mintick)
riskShort = math.max(slShort - entryPriceShort, syminfo.mintick)
// هدف الربح حسب R:R
tpLong = entryPriceLong + rrRatio * riskLong
tpShort = entryPriceShort - rrRatio * riskShort
//========= الرسم على الشارت =========//
// رسم المتوسطات
plot(emaFast, title="EMA 50", color=color.new(color.blue, 0), linewidth=2)
plot(emaSlow, title="EMA 200", color=color.new(color.orange, 0), linewidth=2)
// تلوين الخلفية حسب الاتجاه
bgcolor(trendUp ? color.new(color.green, 92) : trendDown ? color.new(color.red, 92) : na)
// إشارة شراء
plotshape(
longSignal,
title = "إشارة شراء",
style = shape.triangleup,
location = location.belowbar,
size = size.large,
color = color.new(color.green, 0),
text = "BUY")
// إشارة بيع
plotshape(
shortSignal,
title = "إشارة بيع",
style = shape.triangledown,
location = location.abovebar,
size = size.large,
color = color.new(color.red, 0),
text = "SELL")
// رسم SL و TP عند ظهور الإشارة
slPlotLong = longSignal ? slLong : na
tpPlotLong = longSignal ? tpLong : na
slPlotShort = shortSignal ? slShort : na
tpPlotShort = shortSignal ? tpShort : na
plot(slPlotLong, title="وقف خسارة شراء", color=color.new(color.red, 0), style=plot.style_linebr)
plot(tpPlotLong, title="هدف شراء", color=color.new(color.green, 0), style=plot.style_linebr)
plot(slPlotShort, title="وقف خسارة بيع", color=color.new(color.red, 0), style=plot.style_linebr)
plot(tpPlotShort, title="هدف بيع", color=color.new(color.green, 0), style=plot.style_linebr)
//========= إعداد التنبيهات =========//
alertcondition(longSignal, title="تنبيه إشارة شراء", message="إشارة شراء: ترند صاعد + ارتداد من EMA + RSI في المنطقة المسموحة.")
alertcondition(shortSignal, title="تنبيه إشارة بيع", message="إشارة بيع: ترند هابط + ارتداد من EMA + RSI في المنطقة المسموحة.")
MC² Pullback Screener v1.01//@version=5
indicator("MC² Pullback Screener v1.01", overlay=false)
//----------------------------------------------------
// 🔹 PARAMETERS
//----------------------------------------------------
lenTrend = input.int(20, "SMA Trend Length")
relVolLookback = input.int(10, "Relative Volume Lookback")
minRelVol = input.float(0.7, "Min Relative Volume on Pullback")
maxSpikeVol = input.float(3.5, "Max Spike Vol (Reject News Bars)")
pullbackBars = input.int(3, "Pullback Lookback Bars")
//----------------------------------------------------
// 🔹 DATA
//----------------------------------------------------
// Moving averages for trend direction
sma20 = ta.sma(close, lenTrend)
sma50 = ta.sma(close, 50)
// Relative Volume
volAvg = ta.sma(volume, relVolLookback)
relVol = volume / volAvg
// Trend condition
uptrend = close > sma20 and sma20 > sma50
//----------------------------------------------------
// 🔹 BREAKOUT + PULLBACK LOGIC
//----------------------------------------------------
// Recent breakout reference
recentHigh = ta.highest(close, 10)
isBreakout = close > recentHigh
// Pullback logic
nearSupport = close > recentHigh * 0.98 and close < recentHigh * 1.02
lowVolPullback = relVol < minRelVol
// Reject single-bar news spike
rejectSpike = relVol > maxSpikeVol
//----------------------------------------------------
// 🔹 ENTRY SIGNAL
//----------------------------------------------------
pullbackSignal = uptrend and lowVolPullback and nearSupport and not rejectSpike
//----------------------------------------------------
// 🔹 SCREENER OUTPUT
//----------------------------------------------------
// Pine Screener expects a plot output
plot(pullbackSignal ? 1 : 0, title="MC² Pullback Signal", style=plot.style_columns, color=pullbackSignal ? color.green : color.black)
Cold Brew Ranges🧭 Core Logic and Calculation
The fundamental logic for each range (OR and CR) is identical:
Time Definition: Each range is defined by a specific Start Time and a fixed 30-second duration. The timestamp function, using the "America/New_York" time zone, is used to calculate the exact start time in Unix milliseconds for the current day.
Example: t0200 = timestamp(TZ, yC, mC, dC, 2, 0, 0) sets the start time for the 02:00 OR to 2:00:00 AM NY time.
Range Data Collection: The indicator uses the request.security_lower_tf() function to collect the High (hArr) and Low (lArr) prices of all bars that fall within the defined 30-second window, using a user-specified, sub-chart-timeframe (openrangetime, defaulted to "1" second, "30S", or "5" minutes). This ensures high precision in capturing the exact high and low during the 30-second window.
High/Low Determination: It iteratively finds the absolute highest price (OR_high) and the absolute lowest price (OR_low) recorded by the bars during that 30-second window.
Range Locking: Once the current chart bar's time (lastTs) passes the 30-second End Time (tEnd), the High and Low are locked (OR_locked = true), meaning the range calculation is complete for the day.
Drawing: Upon locking, the range is drawn on the chart using line.new for the High, Low, and Equilibrium, and box.new for the shaded fill. The lines are extended to a subsequent time anchor point (e.g., the 02:00 OR is extended to 08:20, the 09:30 OR is extended to 16:00).
Equilibrium (EQ): This is calculated as the simple average (midpoint) of the High and Low of the range.
EQ=
2
OR_High+OR_Low
⏰ Defined Trading Ranges
The indicator defines and tracks the following specific 30-second ranges:
Range Name Type Start Time (NY) Line Extension End Time (NY) Common Market Context
02:00 OR Opening 02:00:00 08:20:00 Asian/European Market Overlap
08:20 OR Opening 08:20:00 16:00:00 Pre-New York Open
09:30 OR Opening 09:30:00 16:00:00 New York Stock Exchange Open (Most significant OR)
18:00 OR Opening 18:00:00 20:00:00 Futures Market Open (Sunday/Monday)
20:00 OR Opening 20:00:00 Next Day's session start Asian Session Start
15:50 CR Closing 15:50:00 20:00:00 New York Close Range
⚙️ Key User Inputs and Customization
The script offers extensive control over which ranges are displayed and how they are visualized:
Range Time & History
openrangetime: Sets the sub-timeframe (e.g., "1" for 1 second) used to calculate the precise High/Low of the 30-second range. Crucial for accuracy.
showHistory: A toggle to show the ranges from previous days (up to a histCap of 50 days).
Range Toggles and Styling
On/Off Toggles: Independent input.bool (e.g., OR_0200_on) to enable or disable the display of each individual range.
Colors & Width: Separate color and width inputs for the High/Low lines (hlC), the Equilibrium line (eqC), and the background fill (fillC) for each range.
Line Styles: Global inputs for the line styles of High/Low (lineStyleInput) and Equilibrium (eqLineStyleInput) lines (Solid, Dotted, or Dashed).
showFill: Global toggle to enable the shaded background box that highlights the area between the High and Low.
Extensions
The script calculates and plots extensions (multiples of the initial range) above the High and below the Low.
showExt: Toggles the visibility of the extension lines.
useRangeMultiples: If true, the step size for each extension level is equal to the initial range size:
Step=Range=OR_High−OR_Low
If false, the step size is a fixed value defined by stepPts (e.g., 60.0 points, which is a common value for NQ futures).
stepCnt: Determines how many extension levels (multiples) are drawn above and below the range (default is 10).
📈 Trading Strategy Implications
The Cold Brew Ranges indicator is a tool for session-based support and resistance and range breakout/reversal strategies.
Key Support/Resistance: The High and Low of these defined opening ranges often act as strong, predefined price levels. Traders look for price rejection off these boundaries or a breakout with conviction.
Equilibrium (Midpoint): The EQ often represents a fair value for that specific session's opening. Movements away from it are seen as opportunities, and a return to it is common.
Extensions: The range extensions serve as potential profit targets or stronger, layered support/resistance levels if the market trends aggressively after the opening range is set.
The core idea is that the activity in the first 30 seconds of a significant trading session (like the NYSE or a market session open) sets a bias and initial boundary for the trading period that follows.
ATR ZigZag - Volatility-Filtered Market StructureDescription
This indicator draws ZigZags using an ATR based threshold for direction switching to identify major swing highs and lows. Instead of relying on fractals or fixed bar-count swings, pivots are confirmed only when price moves beyond the prior extreme by:
threshold = ATR(length) × ATR_mult
This filters noise, enforces valid swing structure (high → low → high), and adapts automatically to volatility. The ATR ZigZag is ideal for traders who want a clean, objective view of swing structure without noise. This has many uses, including mapping swing structure, drawing chart patterns, and trading around extremes.
Lag and Repainting
Pivots are confirmed only after price moves sufficiently in the opposite direction. This creates necessary lag. The ZigZag is drawn when this occurs, and will anchor to the high/low in the past. Optional detection dot plots show exactly when confirmation occurred.
What You See
ZigZag: dashed gray line, repainted to anchor at the confirmed highs and lows
Latest Pivot Levels: Dashed horizontal lines at the most recent confirmed high/low.
Optional Live Swing Leg: A real-time line from the last confirmed pivot to the current swing extreme, updating until a new pivot forms.
Optional ATR Boxes: 1×ATR shaded zones around the latest pivot for structural context.
Optional Pivot Confirmation Dots: Markers show the bar where the threshold is crossed and a swing is officially confirmed. This is to understand the lag and see when the ZigZag repainted.
Green Day or Red Day?What it is:
This simple indicator provides immediate visual context by tinting the background of your chart Green or Red based on the asset's daily performance.
Who's it for?
It is designed for day traders and scalpers who operate on lower timeframes (1m, 5m, 15m) but need to remain aware of the overall daily direction without switching charts. It can be used in combination with the ORB strategy as a helpful tool to "feel" the trend when you're way out of the ORB range. But this indicator can be used by anyone regardless of trading style.
How it works:
This script pulls data from the daily timeframe regardless of the chart interval you are currently viewing. It compares the current price to a user-selectable reference point (either Yesterday's Close or Today's Open) to determine the background color.
Good Luck. May you make good trades!
FOR CRT SMT – 4 CANDLEFOR CRT SMT – 4 CANDLE Indicator
This indicator detects SMT (Smart Money Technique) divergence by comparing the last 4 candle highs and lows of two different assets.
Originally designed for BTC–ETH comparison, but it works on any market, including Forex pairs.
You can open EURUSD on the chart and select GBPUSD from the settings, and the indicator will detect SMT divergence between EUR and GBP the same way it does between BTC and ETH. This makes it useful for analyzing correlated markets across crypto, forex, and more.
🔴 Upper SMT (Bearish Divergence – Red)
Occurs when:
The main chart asset makes a higher high,
The comparison asset makes a lower high.
This may signal a liquidity grab and potential reversal.
🟢 Lower SMT (Bullish Divergence – Green)
Occurs when:
The main chart asset makes a lower low,
The comparison asset makes a higher low.
This may indicate the market is sweeping liquidity before reversing upward.
📌 Features
Uses the last 4 candles of both assets.
Automatically draws divergence lines.
Shows clear “SMT ↑” or “SMT ↓” labels.
Works on Crypto, Forex, and all correlated assets.
Reversal WaveThis is the type of quantitative system that can get you hated on investment forums, now that the Random Walk Theory is back in fashion. The strategy has simple price action rules, zero over-optimization, and is validated by a historical record of nearly a century on both Gold and the S&P 500 index.
Recommended Markets
SPX (Weekly, Monthly)
SPY (Monthly)
Tesla (Weekly)
XAUUSD (Weekly, Monthly)
NVDA (Weekly, Monthly)
Meta (Weekly, Monthly)
GOOG (Weekly, Monthly)
MSFT (Weekly, Monthly)
AAPL (Weekly, Monthly)
System Rules and Parameters
Total capital: $10,000
We will use 10% of the total capital per trade
Commissions will be 0.1% per trade
Condition 1: Previous Bearish Candle (isPrevBearish) (the closing price was lower than the opening price).
Condition 2: Midpoint of the Body The script calculates the exact midpoint of the body of that previous bearish candle.
• Formula: (Previous Open + Previous Close) / 2.
Condition 3: 50% Recovery (longCondition) The current candle must be bullish (green) and, most importantly, its closing price must be above the midpoint calculated in the previous step.
Once these parameters are met, the system executes a long entry and calculates the exit parameters:
Stop Loss (SL): Placed at the low of the candle that generated the entry signal.
Take Profit (TP): Calculated by projecting the risk distance upward.
• Calculation: Entry Price + (Risk * 1).
Risk:Reward Ratio of 1:1.
About the Profit Factor
In my experience, TradingView calculates profits and losses based on the percentage of movement, which can cause returns to not match expectations. This doesn’t significantly affect trending systems, but it can impact systems with a high win rate and a well-defined risk-reward ratio. It only takes one large entry candle that triggers the SL to translate into a major drop in performance.
For example, you might see a system with a 60% win rate and a 1:1 risk-reward ratio generating losses, even though commissions are under control relative to the number of trades.
My recommendation is to manually calculate the performance of systems with a well-defined risk-reward ratio, assuming you will trade using a fixed amount per trade and limit losses to a fixed percentage.
Remember that, even if candles are larger or smaller in size, we can maintain a fixed loss percentage by using leverage (in cases of low volatility) or reducing the capital at risk (when volatility is high).
Implementing leverage or capital reduction based on volatility is something I haven’t been able to incorporate into the code, but it would undoubtedly improve the system’s performance dramatically, as it would fix a consistent loss percentage per trade, preventing losses from fluctuating with volatility swings.
For example, we can maintain a fixed loss percentage when volatility is low by using the following formula:
Leverage = % of SL you’re willing to risk / % volatility from entry point to exit or SL
And if volatility is high and exceeds the fixed percentage we want to expose per trade (if SL is hit), we could reduce the position size.
For example, imagine we only want to risk 15% per SL on Tesla, where volatility is high and would cause a 23.57% loss. In this case, we subtract 23.57% from 15% (the loss percentage we’re willing to accept per trade), then subtract the result from our usual position size.
23.57% - 15% = 8.57%
Suppose I use $200 per trade.
To calculate 8.57% of $200, simply multiply 200 by 8.57/100. This simple calculation shows that 8.57% equals about $17.14 of the $200. Then subtract that value from $200:
$200 - $17.14 = $182.86
In summary, if we reduced the position size to $182.86 (from the usual $200, where we’re willing to lose 15%), no matter whether Tesla moves up or down 23.57%, we would still only gain or lose 15% of the $200, thus respecting our risk management.
Final Notes
The code is extremely simple, and every step of its development is detailed within it.
If you liked this strategy, which complements very well with others I’ve already published, stay tuned. Best regards.
EMA Crossover CandlesEMA Crossover Candles
This indicator colors your chart candles based on the relationship between two Exponential Moving Averages (EMAs).
How It Works
Green Candles - When the Fast EMA is above the Slow EMA, indicating bullish momentum
Red Candles - When the Fast EMA is below the Slow EMA, indicating bearish momentum
Settings
Source - The price data used for EMA calculations (default: close)
Fast Length - Period for the fast EMA (default: 5)
Slow Length - Period for the slow EMA (default: 10)
How To Use
This indicator provides a quick visual reference for trend direction. Green candles suggest the short-term trend is bullish, while red candles suggest bearish conditions. This can help you:
Identify trend direction at a glance
Filter trades in the direction of the trend
Spot potential trend changes when candle colors shift
Tips
Adjust the Fast and Slow Length settings to match your trading timeframe
Shorter periods = more responsive but more false signals
Longer periods = smoother but slower to react to trend changes
Consider hiding default candles in Chart Settings for a cleaner look
Note: This indicator is for informational purposes only and should not be used as the sole basis for trading decisions. Always use proper risk management and consider combining with other forms of analysis.
Feel free to modify this to match your style or add any additional details you'd like to include.Claude is AI and can make mistakes. Please double-check responses. Opus 4.5
Reversal (Heikin Ashi-ready)This indicator detects bullish and bearish reversal patterns based purely on price action relative to prior candles. It is designed to be Heikin Ashi–compatible, meaning it can optionally use HA OHLC values rather than standard candles.
The script identifies:
Bullish reversals (V Up triangles)
Bearish reversals (V Down triangles)
It uses a two-stage system:
Context detection (a potential reversal setup forms).
Confirmation detection (price breaks a key level within a specified number of bars).
Indicator ***TuYa*** V8.2 – HH/HL MTF + Peak Mid ZoneIndicator TuYa V8.0 – HH/HL MTF + Peak Mid Zone
TuYa V8.0 combines multi-timeframe market structure with a Peak Reaction midline to create clean, rule-based reversal and trend entries – designed primarily for 1-minute execution with 1-hour bias.
🧠 Core Concept
This indicator fuses three ideas:
HTF Peak Reaction Midline (1H)
Uses a Peak Reaction style logic on the higher timeframe (HTF, default: 1H).
Identifies a reaction high and reaction low, then calculates their midpoint → the Peak Mid Zone.
This midline acts as a dynamic sentiment divider (above = premium / below = discount).
Multi-Timeframe HH/HL/LH/LL Structure
HTF structure (1H): detects HH, HL, LH, LL using pivot highs/lows.
LTF structure (1m): detects HH, HL, LH, LL on the execution timeframe (chart TF, intended for 1m).
HTF → LTF Confirmation Window
After a 1H structure event (HH, HL, LL, LH), the indicator opens a confirmation window of up to N LTF candles (default: 10 x 1m bars).
Within that window, the required 1m structure event must occur to confirm an entry.
🎯 Signal Logic
All entries are generated on the LTF (e.g. 1m chart), using HTF (e.g. 1H) bias + Peak Mid Zone:
1️⃣ Price ABOVE Peak Mid (Bullish premium zone)
Reversal SELL
HTF: HH (Higher High)
Within N 1m bars: LTF HH
→ SELL signal (fading HTF strength near premium)
Trend/Bullish BUY
HTF: HL (Higher Low)
Within N 1m bars: LTF LL
→ BUY signal (buying dips in an uptrend above midline)
2️⃣ Price BELOW Peak Mid (Bearish discount zone)
Reversal BUY
HTF: LL (Lower Low)
Within N 1m bars: LTF LL
→ BUY signal (catching potential reversal from discount)
Trend/Bearish SELL
HTF: LH (Lower High)
Within N 1m bars: LTF HH
→ SELL signal (shorting strength in a downtrend below midline)
Signals are plotted as small BUY/SELL triangles on the chart and exposed via alert conditions.
🧾 Filters & Options
⏳ HTF → LTF Delay Window
Input: “Max 1m bars after HTF trigger” (default: 10)
After a 1H HH/HL/LL/LH event, the indicator waits up to N LTF candles for the matching 1m structure pattern.
If no match occurs within the window, no signal is generated.
📉 RSI No-Trade Zone (HTF)
Toggle: Use RSI no-trade zone
Inputs:
RSI Length (HTF)
No-trade lower bound (default 45)
No-trade upper bound (default 65)
If HTF RSI is inside the defined band (e.g. 45–65), signals are blocked (no-trade regime), helping to avoid noisy mid-range conditions.
You can turn this filter ON/OFF and adjust the band dynamically.
🧱 5m OB / Direction Filter (Optional)
Toggle: Use 5m OB direction filter
Timeframe: Configurable (default: 5m).
Uses a simple directional proxy on the OB timeframe:
For BUY signals → require a bullish candle on OB timeframe.
For SELL signals → require a bearish candle on OB timeframe.
When enabled, this adds an extra layer of confluence by aligning entries with the short-term directional context.
⚙️ Key Inputs (Summary)
Timeframes
HTF (Peak Reaction & Structure): default 60 (1H)
Peak Reaction
Lookback bars (HTF)
ATR multiplier for zones
Show/Hide Peak Mid line
Structure
Pivot left/right bars (for HH/HL/LH/LL swings)
Toggle structure labels (HTF & LTF)
Confirmation
Max LTF bars after HTF trigger (default 10, fully configurable)
RSI Filter
Use filter (on/off)
RSI length
No-trade range (low/high)
5m OB Filter
Use filter (on/off)
OB timeframe (default 5m)
📡 Alerts & Automation
The script includes alertconditions for both BUY and SELL signals, with JSON-formatted alert messages suitable for routing to external bridges (e.g. bots, MT5/MT4, n8n, etc.).
Each alert includes:
Symbol
Side (BUY / SELL)
Price / Entry
SL & TP placeholders (from hidden plots, ready to be wired to your own logic)
Time
Performance tag
CommentCode (for strategy/type tagging on the receiver side)
You can attach these alerts to a webhook and let your execution engine handle SL/TP and order management.
📌 How to Use
Attach the indicator to a 1-minute chart.
Set HTF timeframe to 60 (or your preferred higher timeframe).
Optionally enable:
RSI regime filter
5m OB direction filter
Watch for:
Price relative to the Peak Mid line
BUY/SELL triangles that respect HTF structure + LTF confirmation + filters.
For automation, create alerts using the built-in conditions and your preferred JSON alert template.
⚠️ Disclaimer
This tool is for educational and informational purposes only.
It is not financial advice and does not guarantee profits. Always test thoroughly in replay / paper trading before using with live funds, and trade at your own risk.
5-Bar BreakoutThis indicator shows if the price is breaking out above the high or the low of the previous 5 bars
Opening Range ICT 3-Bar FVG + Engulfing Signals (Overlay)Beta testing
open range break out and retest of FVG.
Still working on making it accurate so bear with me






















