Refined EMA Pullback Screener (v4) fully integrated Pine Script (v4) for your screener. It includes all prior conditions plus optional toggles for:
✅ Rising EMA
✅ EMA above longer EMA
✅ Closed above EMA for 10 prior bars
✅ Touch and close on EMA in the last bar
✅ Bar size smaller than 14-day ATR%
✅ Lower wick ≥ 25% of daily range
✅ Score-based screener signal
Göstergeler ve stratejiler
Triad RotationHey guys, this is the first indicator I've created. I have done some selective testing to validate the calculations against the FullStochastic indicators using the same settings.
From my review it looks to match correctly, but please do your own due diligence to verify this indicator matches your needs and strategy.
This indicator was designed closely with the Quad rotation strategy, where you use multiple stochastic indicators to identify overbought and oversold conditions.
Once all the stochastics are determined to be over/under the overbought/oversold threshold, the section will be highlighted red or green based on which condition is met. Green indicates a potential period to buy, and red indicates a potential period to sell.
P.S. I pair this with the MACD indicator to determine momentum of to aid in determining entry and exits, along with support and resistance levels. Thus far, I am an unprofitable trader, so this strategy may change. Again do your own due diligence to design a strategy that works for you.
MACD-TITANIndicator Description: MACD-TITAN
MACD-TITAN is an enhanced version of the traditional MACD (Moving Average Convergence Divergence) indicator. It features a modern visual design, vibrant colors, and a clear interpretation of market momentum. The indicator is designed to help traders identify trend strength and potential reversals more effectively.
Configurable Parameters (default values)
Fast Length: 12 – period of the fast moving average
Slow Length: 26 – period of the slow moving average
Signal Smoothing: 9 – smoothing period for the signal line
These settings determine how sensitive the indicator is to price changes and can be adjusted to fit different trading styles.
Visual Interpretation
Strong Green Histogram: bullish momentum increasing
Weak Green Histogram: bullish momentum weakening
Strong Red Histogram: bearish momentum increasing
Weak Red Histogram: bearish momentum weakening
Additional lines:
MACD Line (turquoise): represents current trend momentum
Signal Line (orange): used for crossover confirmations with the MACD line
Built-in Alerts
The indicator includes two native alert conditions:
When the histogram crosses from positive to negative: possible start of a bearish trend
When the histogram crosses from negative to positive: possible start of a bullish trend
These alerts help traders track key momentum shifts.
Usage Tips
This indicator can be used both for spotting potential reversals and for tracking the strength of an ongoing trend. For better reliability, it is recommended to combine it with other tools such as support/resistance levels, RSI, or volume analysis.
HMA 6/12 Crossover Strategy with 0.1% SL & Reverse on SLBest Strategy for BTCUSD works best with 3 min time frame
AD BackGrand//@version=5
indicator("AD BackGrand", overlay=true)
// فقط برای XAUUSD اجرا بشه
isGold = syminfo.ticker == "XAUUSD"
// ⚙️ ورودیها
threshold = input.float(4.0, title="🟡 Volatility Threshold ($)", minval=0.1, step=0.1)
candleCount = input.int(3, title="🕒 Number of Candles to Check", minval=1, maxval=50)
// محاسبه مجموع نوسان کندلها (داینامیک)
totalVol = 0.0
for i = 0 to candleCount - 1
totalVol += high - low
// شرطها
isVolatile = isGold and (totalVol > threshold)
isCalm = isGold and (totalVol <= threshold)
// رنگ بکگراند
bgcolor(isVolatile ? color.new(color.green, 80) : na, title="High Volatility")
bgcolor(isCalm ? color.new(color.red, 85) : na, title="Low Volatility")
// نمایش مجموع نوسان (اختیاری)
plot(isGold ? totalVol : na, title="🔢 Total Volatility", color=color.orange)
🦌 Horn Pattern - Horn + FT - Ming Joo太棒了!以下是你策略的中英文简介版本,专为 **TradingView 发布页面** 编写,突出你当前唯一的 context filter(基于 EMA20)。
---
## 🇬🇧 English Description — Horn Pattern Strategy with EMA Context Filter
**🦌 Horn Pattern Reversal Strategy (By Ming Joo)**
This strategy is based on a 3-bar reversal pattern known as the **Horn Pattern** (bull-bear-bull for longs, bear-bull-bear for shorts). A confirmation bar (bar\ ) follows the pattern to validate a breakout.
🔍 **Context Filter:**
To ensure high-quality trades, a simple trend filter is applied using EMA(20):
* ✅ **Bullish Horn** signals are valid **only if** the confirmation bar closes **above EMA20**
* ✅ **Bearish Horn** signals are valid **only if** the confirmation bar closes **below EMA20**
This prevents taking counter-trend reversals in weak conditions.
🎯 Entry Logic:
* Long entry: Horn high + 1 tick
* Short entry: Horn low – 1 tick
* Target: 1R
* Stop: Structural extreme (low/high of the horn)
* Optionally shows 0.5R line
This structure-based reversal model is suitable for 5min–1H timeframes, and works best on volatile instruments (e.g. ES1!, NQ1!, BTCUSD, AAPL).
---
## 🇨🇳 中文简介 — Horn 结构反转策略(含 EMA 趋势滤网)
**🦌 Horn 反转策略(By Ming Joo)**
本策略基于经典的 **Horn 形态**(多头为 bull-bear-bull,空头为 bear-bull-bear),由三根结构K线 + 一根确认K线构成,搭配 **EMA20 趋势过滤器** 筛选优质信号。
🔍 **上下文过滤条件(唯一 context filter):**
* ✅ **Bullish Horn** 仅在确认K线的收盘 **高于 EMA20** 时触发
* ✅ **Bearish Horn** 仅在确认K线的收盘 **低于 EMA20** 时触发
防止在弱趋势中逆势进场,提升成功率。
🎯 入场逻辑:
* 多头:Horn 高点 +1 tick 挂多
* 空头:Horn 低点 –1 tick 挂空
* 止盈:1R
* 止损:Horn 的结构极点
* 可选显示 0.5R 虚线
适合用于 5分钟至 1小时图表,特别适用于高波动性品种(如 ES1!, NQ1!, BTCUSD, AAPL 等)。
---
Renko New Brick AlertA simple indicator that triggers an alert when a new brick is formed on a Renko chart.
Gold Buy/Sell Signals with Engulfing & S&D ZonesTrade base on the Fast & Slow Moving Average. When the Fast MA line is below the candle, it is an uptrend to BUY. if Fast MA line is above the candle, it's time to SELL.
MACD Crossover with Supertrend FilterThis script is a custom trading indicator that generates **buy and sell signals** based on the combination of:
### 🔹 MACD Crossover:
* **Long (Buy)** signal: when the MACD line crosses above the signal line **below the 0 line**.
* **Short (Sell)** signal: when the MACD line crosses below the signal line **above the 0 line**.
### 🔹 Supertrend Filter:
* **Only buy** when the Supertrend is **bullish (green)**.
* **Only sell** when the Supertrend is **bearish (red)**.
### 🔹 Additional Features:
* Plots green or red arrows on the chart for entries.
* Supertrend line is color-coded.
* Alerts can be enabled for both long and short signals.
✅ This combination filters MACD signals using trend direction for more reliable entries.
Liquidity Sweep Strategy [Enhanced]//@version=5
indicator("Liquidity Sweep Strategy ", overlay=true)
// === USER SETTINGS ===
structureLookback = input.int(20, "Structure Lookback")
sweepSensitivity = input.int(2, "Sweep Sensitivity (Wicks Above/Below)")
showBreaks = input.bool(true, "Highlight Breaks of Structure")
showSweeps = input.bool(true, "Highlight Liquidity Sweeps")
showEntrySignals = input.bool(true, "Show Entry Signals After Sweeps")
emaLength = input.int(50, "EMA Trend Filter Length")
atrLength = input.int(14, "ATR Length")
atrMultiplier = input.float(1.2, "Minimum ATR for Valid Entry")
// === INDICATORS ===
ema = ta.ema(close, emaLength)
atr = ta.atr(atrLength)
// === HIGH/LOW STRUCTURE ===
var float lastHigh = na
var float lastLow = na
swingHigh = ta.highest(high, structureLookback) == high
swingLow = ta.lowest(low, structureLookback) == low
if swingHigh
lastHigh := high
if swingLow
lastLow := low
// === BREAK OF STRUCTURE ===
bosUp = showBreaks and swingHigh and close > lastHigh
bosDown = showBreaks and swingLow and close < lastLow
plotshape(bosUp, title="Break of Structure (Up)", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(bosDown, title="Break of Structure (Down)", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
// === LIQUIDITY SWEEP DETECTION ===
sweepHigh = high > lastHigh and close < lastHigh and showSweeps
sweepLow = low < lastLow and close > lastLow and showSweeps
plotshape(sweepHigh, title="Liquidity Sweep High", location=location.abovebar, color=color.orange, style=shape.xcross, size=size.small)
plotshape(sweepLow, title="Liquidity Sweep Low", location=location.belowbar, color=color.orange, style=shape.xcross, size=size.small)
// === ENTRY SIGNALS WITH CONFIRMATION ===
validShort = sweepHigh and close < open and close < ema and atr > atrMultiplier * ta.sma(close, atrLength)
validLong = sweepLow and close > open and close > ema and atr > atrMultiplier * ta.sma(close, atrLength)
entryShort = validShort and showEntrySignals
entryLong = validLong and showEntrySignals
plotshape(entryShort, title="Entry Short", location=location.abovebar, color=color.red, style=shape.arrowdown, size=size.normal)
plotshape(entryLong, title="Entry Long", location=location.belowbar, color=color.green, style=shape.arrowup, size=size.normal)
// === ALERT CONDITIONS ===
alertcondition(entryShort, title="Short Entry Alert", message="Liquidity Sweep Short Entry with EMA + ATR Confirmation")
alertcondition(entryLong, title="Long Entry Alert", message="Liquidity Sweep Long Entry with EMA + ATR Confirmation")
// === BACKGROUND COLOR ON CONFIRMATION ===
bgcolor(bosUp or bosDown ? color.new(color.gray, 85) : na)
Auto Fractal [theUltimator5]I took the awesome indicator provided by theUltimator5 from and implemented the Freeze function by screaming at gemini for the past hour to keep at it until it worked.
Props to theUltimator5 for sharing this script with everyone as opensource.
DMI-LuminateIndicator Description: DMI-Luminate (DMI-LMT)
DMI-Luminate is an enhanced version of the Directional Movement Index (DMI) indicator that combines multiple moving averages for smoothing and offers various options to customize the calculation of ADX, +DM, -DM, DX, and ADXR. It is ideal for traders looking to analyze trend strength and equilibrium points between buyers and sellers.
Components and Features
+DM and -DM: Indicators measuring positive and negative directional movement, helping identify trend direction.
DX (Directional Movement Index): Measures the relative difference between +DM and -DM, indicating the current trend strength.
ADX (Average Directional Index): A smoothed line showing trend strength regardless of direction. Values above 25 generally indicate a strong trend.
ADXR (Average Directional Movement Rating): A moving average of ADX that detects trend strength changes with less sensitivity.
Equilibrium Points: Visual markers (blue circles) that appear when +DM and -DM cross, signaling potential reversals or changes in trend strength.
Customizable Settings
DM Length: The period used to calculate directional movements.
ADX Smoothing: The smoothing period for ADX.
MA Type Universal: Select the moving average type used for smoothing calculations. Options include SMA, EMA, WMA, ALMA, T3, and advanced averages like DNA⚡ and RNA🐢.
T3 Hot Factor: Parameter to adjust the intensity of the T3 moving average (when selected).
Show Lines: Toggle the display of ADX, ADXR, DX, and +DM/-DM lines as you prefer.
Show Equilibrium Points: Enable to visualize crossing points between +DM and -DM.
Background Color and Offset: Customize the background color and offset for better visibility.
How to Use
Trend Identification
Watch the ADX line to gauge trend strength. When ADX is above 25, the trend is considered strong. The +DM and -DM lines indicate if the trend is bullish (+DM > -DM) or bearish (-DM > +DM).
Entry/Exit Signals
Use the equilibrium points (blue circles) to identify potential reversals or changes in trend dynamics based on +DM and -DM crossings.
Moving Average Selection
Experiment with different moving averages to smooth the data and tailor the indicator to your trading style and asset. Faster averages like EMA react better in volatile markets, while SMMA and ALMA suit more stable conditions.
Using ADXR
ADXR offers a smoother view of trend strength to avoid false signals during sideways markets.
Visual Customization
Adjust colors and background to improve readability, especially across different chart themes.
Recommendations
Combine DMI-Luminate with other indicators (e.g., volume, RSI, chart patterns) to confirm entries and exits.
Adjust DM Length and ADX Smoothing according to the timeframe you trade.
Use different moving average types to find the setup that works best for your asset and strategy.
Time//@version=5
indicator('Time', overlay=true, max_bars_back=1000, max_labels_count=500, max_lines_count=500, max_boxes_count=500)
// Asia
var GRP1 = "Asian Session"
extendLines = true
rangeTime = '1705-0101'
boxLineColor = input(color.new(color.rgb(212, 129, 4), int(80)), 'Line color', group=GRP1)
backgroundColor = input(color.new(color.rgb(221, 133, 0), int(90)), "Background color", group=GRP1)
// A session
inSession1 = not na(time(timeframe.period, rangeTime))
inExtend = not na(time(timeframe.period, "0100-0801"))
startTime = 0
startTime := inSession1 and not inSession1 ? time : startTime
var line lowHLine = na
var line topHLine = na
var line leftVLine = na
var line rightVLine = na
var line middleHLine = na
var box bgBox = na
var low_val = float(0.0)
var high_val = 0.0
if inSession1 and not inSession1
low_val := low
high_val := high
high_val
if inSession1 and timeframe.isintraday
if inSession1
line.delete(lowHLine)
line.delete(topHLine)
line.delete(middleHLine)
box.delete(bgBox)
if low < low_val
low_val := low
low_val
if high > high_val
high_val := high
high_val
if true and timeframe.multiplier <= 60
bgBox := box.new(startTime, high_val, time, low_val, xloc=xloc.bar_time, bgcolor=backgroundColor, border_width=0)
if true and timeframe.multiplier <= 60
lowHLine := line.new(startTime, low_val, time, low_val, xloc=xloc.bar_time, color=boxLineColor, style=line.style_solid, width=1)
topHLine := line.new(startTime, high_val, time, high_val, xloc=xloc.bar_time, color=boxLineColor, style=line.style_solid, width=1)
if true and timeframe.multiplier <= 60
middleHLine := line.new(startTime, (high_val + low_val) / 2, time, (high_val + low_val) / 2, xloc=xloc.bar_time, color=boxLineColor, style=line.style_solid, width=1)
else
if inExtend and extendLines and not inSession1 and timeframe.isintraday
time1 = line.get_x1(lowHLine)
time2 = line.get_x2(lowHLine)
price = line.get_y1(lowHLine)
line.delete(lowHLine)
lowHLine := line.new(time1, price, time, price, xloc=xloc.bar_time, color=boxLineColor, style=line.style_solid, width=1)
time1 := line.get_x1(topHLine)
time2 := line.get_x2(topHLine)
price := line.get_y1(topHLine)
line.delete(topHLine)
topHLine := line.new(time1, price, time, price, xloc=xloc.bar_time, color=boxLineColor, style=line.style_solid, width=1)
time1 := line.get_x1(middleHLine)
time2 := line.get_x2(middleHLine)
price := line.get_y1(middleHLine)
line.delete(middleHLine)
middleHLine := line.new(time1, price, time, price, xloc=xloc.bar_time, color=boxLineColor, style=line.style_solid, width=1)
middleHLine
// LDN & NY
remove(str, pos, length) =>
arr = str.split(str, "")
len = array.size(arr)
pos1 = pos >= 0 ? pos : len + pos
length_ = length >= 0 ? length : len - pos1
pos2 = pos1 + length_
if len > 0 and length_ > 0 and pos1 >= 0 and pos2 <= len
for i = 0 to length_ - 1
array.remove(arr, pos1)
res = array.join(arr, "")
CalcOffs(timeStr) =>
hourStartStr = remove(timeStr, 2, 7)
hourStart = str.tonumber(hourStartStr)
minStartTemp = remove(timeStr, 0, 2)
minStartStr = remove(minStartTemp, 2, 5)
minStart = str.tonumber(minStartStr)
timeEndStr = remove(timeStr, 0, 5)
hourEndStr = remove(timeEndStr, 2, 2)
hourEnd = str.tonumber(hourEndStr)
minEndStr = remove(timeEndStr, 0, 2)
minEnd = str.tonumber(minEndStr)
time_diff_minutes = str.tostring(math.abs((hourEnd * 60 + minEnd) - (hourStart * 60 + minStart)))
// Settings
isLondon = true
loSessionTime = input.session("0300-0400", title="Session", group = "London Session")
loBoxColor = input.color(color.new(#2962ff, 80), title="Background color", group = "London Session")
isNewYorkTrap = true
nytrapSessionTime = input.session("0900-1000", title="Session", group ="New York Trap Session")
nytrapBoxColor = input.color(color.new(#2962ff, 80), title="Background color", group = "New York Trap Session")
loOffs = math.round(str.tonumber(CalcOffs(loSessionTime)))
nytrapOffs = math.round(str.tonumber(CalcOffs(nytrapSessionTime)))
dayOffs = 1440
if timeframe.period == "S"
loOffs := loOffs * 60
nytrapOffs := nytrapOffs * 60
dayOffs := dayOffs * 60
if timeframe.period == "5S"
loOffs := loOffs * 60 / 5
nytrapOffs := nytrapOffs * 60/5
dayOffs := dayOffs * 60 / 5
if timeframe.period == "15S"
loOffs := loOffs * 60 / 15
nytrapOffs := nytrapOffs *60 / 15
dayOffs := dayOffs * 60 / 15
if timeframe.period == "30S"
loOffs := loOffs * 60 / 30
nytrapOffs := nytrapOffs *60 / 30
dayOffs := dayOffs * 60 / 30
if timeframe.period == "3"
loOffs := loOffs / 3
nytrapOffs := nytrapOffs /3
dayOffs := dayOffs / 3
if timeframe.period == "5"
loOffs := loOffs / 5
nytrapOffs := nytrapOffs / 5
dayOffs := dayOffs / 5
if timeframe.period == "15"
loOffs := loOffs / 15
nytrapOffs := nytrapOffs / 15
dayOffs := dayOffs / 15
if timeframe.period == "30"
loOffs := loOffs / 30
nytrapOffs := nytrapOffs / 30
dayOffs := dayOffs / 30
if timeframe.period == "45"
loOffs := loOffs / 45
nytrapOffs := nytrapOffs / 45
dayOffs := dayOffs / 45
if timeframe.period == "60"
loOffs := loOffs / 60
nytrapOffs := nytrapOffs / 60
dayOffs := dayOffs / 60
if timeframe.period == "120"
loOffs := loOffs / 120
nytrapOffs := nytrapOffs / 120
dayOffs := dayOffs / 120
if timeframe.period == "180"
loOffs := loOffs / 180
nytrapOffs := nytrapOffs / 180
dayOffs := dayOffs / 180
if timeframe.period == "240"
loOffs := loOffs / 240
nytrapOffs := nytrapOffs / 240
dayOffs := dayOffs / 240
if true and timeframe.multiplier <= 60
if isLondon
var sessionHighPrice = 0.0
var sessionLowPrice = 0.0
var sessionOpenPrice = 0.0
var box sessionBox = na
var line sessionTopLine = na
var line sessionLowLine = na
inSession = not na(time(timeframe.period, loSessionTime)) and timeframe.isintraday
sessionStart = inSession and not inSession
if sessionStart
sessionHighPrice := high
sessionLowPrice := low
sessionOpenPrice := open
else if inSession
sessionHighPrice := math.max(sessionHighPrice, high)
sessionLowPrice := math.min(sessionLowPrice, low)
if sessionStart
sessionBox := box.new(left=bar_index, top=na, right=bar_index+loOffs, bottom=na, border_color = color.new(#ffffff, 100), bgcolor=loBoxColor)
sessionTopLine := line.new(x1=bar_index, y1=na, x2=bar_index+loOffs, y2=na, style=line.style_solid, width=0)
sessionLowLine := line.new(x1=bar_index, y1=na, x2=bar_index+loOffs, y2=na, style=line.style_solid, width=0)
if inSession
box.set_top(sessionBox, sessionHighPrice)
box.set_bottom(sessionBox, sessionLowPrice)
if isNewYorkTrap
var sessionHighPrice = 0.0
var sessionLowPrice = 0.0
var sessionOpenPrice = 0.0
var box sessionBox = na
var line sessionTopLine = na
var line sessionLowLine = na
inSession = not na(time(timeframe.period, nytrapSessionTime)) and timeframe.isintraday
sessionStart = inSession and not inSession
if sessionStart
sessionHighPrice := high
sessionLowPrice := low
sessionOpenPrice := open
else if inSession
sessionHighPrice := math.max(sessionHighPrice, high)
sessionLowPrice := math.min(sessionLowPrice, low)
if sessionStart
sessionBox := box.new(left=bar_index, top=na, right=bar_index+nytrapOffs, bottom=na, border_color = color.new(#ffffff, 100), bgcolor=nytrapBoxColor)
sessionTopLine := line.new(x1= bar_index, y1=na, x2=bar_index+nytrapOffs, y2=na, style=line.style_solid, width=0)
sessionLowLine := line.new(x1= bar_index, y1=na, x2=bar_index+nytrapOffs, y2=na, style=line.style_solid, width=0)
if inSession
box.set_top(sessionBox, sessionHighPrice)
box.set_bottom(sessionBox, sessionLowPrice)
box.set_top(sessionBox, sessionHighPrice)
box.set_bottom(sessionBox, sessionLowPrice)
var GRPFF = 'Frankfurt Session'
ffsession = '0200-0201'
ffcolor = input.color(color.new(#787b86, 70), title='Line color', group=GRPFF)
var GRPMMM1 = 'Magic Manipulation Minute 1'
mmm1time = '0430-0431'
mmm1color = input.color(color.new(#787b86, 70), title="Line color",group=GRPMMM1)
var GRPMMM2 = 'Magic Manipulation Minute 2'
mmm2time = '0630-0631'
mmm2color = input.color(color.new(#787b86, 70), title="Line color", group=GRPMMM2)
var GRPNYO = 'New York Open'
nyosession = '0800-0801'
nyocolor = input.color(color.new(#787b86, 70),title="Line color", group=GRPNYO)
var GRPLC = 'London Close'
lcsession = '1100-1101'
lccolor = input.color(color.new(#787b86, 0),title="Line color", group=GRPLC)
asiansize = (high_val-low_val)/4
in_session_ff = time(timeframe.period, ffsession)
sessionffActive = in_session_ff and timeframe.multiplier <= 15
var line ff = na
if sessionffActive and sessionffActive == false
ff := line.new(bar_index, high+asiansize, bar_index, low-asiansize, color=ffcolor, style=line.style_solid)
in_session_mmm1 = time(timeframe.period, mmm1time)
sessionmmm1Active = in_session_mmm1 and timeframe.multiplier <= 15
var line mmm1 = na
if sessionmmm1Active and sessionmmm1Active == false
mmm1 := line.new(bar_index, high+asiansize, bar_index, low-asiansize, color=mmm1color, style=line.style_solid)
in_session_mmm2 = time(timeframe.period, mmm2time)
sessionmmm2Active = in_session_mmm2 and timeframe.multiplier <= 15
var line mmm2 = na
if sessionmmm2Active and sessionmmm2Active == false
mmm2 := line.new(bar_index, high+asiansize, bar_index, low-asiansize, color=mmm2color, style=line.style_solid)
in_session_nyo = time(timeframe.period, nyosession)
sessionnyoActive = in_session_nyo and timeframe.multiplier <= 15
var line nyo = na
if sessionnyoActive and sessionnyoActive == false
nyo := line.new(bar_index, high+asiansize, bar_index, low-asiansize, color=nyocolor, style=line.style_solid)
in_session_lc = time(timeframe.period, lcsession)
sessionlcActive = in_session_lc and timeframe.multiplier <= 15
var line lc = na
if sessionlcActive and sessionlcActive == false
lc := line.new(bar_index, high+asiansize, bar_index, low-asiansize, color=lccolor, style=line.style_solid)
Anti-SMT + FVG StrategieMade by Laila
4h gives 57% winrate!
Instead of trading based on an expected SMT divergence, you assume that the divergence will not continue. You combine this with a Fair Value Gap (FVG) that is touched by price as additional confirmation.
Anti-SMT Logic (False Divergence)
Short:
EURUSD makes a new high (candle 1)
DXY does not make a new low
Long:
EURUSD makes a new low (candle 1)
DXY does not make a new high
This looks like SMT divergence, but your expectation is: "There will be no SMT."
Fair Value Gap (FVG) Detection
Detects an unfilled gap between candle 1 and 3.
You only trade if the FVG is touched during:
🔹 Candle 1 (the false SMT candle) or
🔹 Candle 2 (the entry candle)
Extra Filters
Only go long if price is above the 50 EMA
Only go short if price is below the 50 EMA
Only trade between 08:00 and 18:00 UTC
Wait 10 candles cooldown between trades
Result:
You only trade when:
There is a possible SMT illusion
An FVG is touched
The setup aligns with trend, session, and timing
This gives you a rational, rare, but strong edge.
🔥 Volatility Squeeze Breakout Strategy (TP/SL in Points)This strategy is designed to catch explosive breakout moves from low-volatility consolidations using a "volatility squeeze" + breakout + momentum" approach. It identifies high-probability buy opportunities when the market is in a tight range and preparing for expansion.
✅ Entry Condition:
- Previous candle is in a squeeze
- Current candle breaks above channel high
- Momentum is positive (ROC)
🎯 Exit Conditions:
- Take Profit in fixed points above entry price
- Stop Loss in fixed points below entry price
🧰 Inputs:
- ATR Length for volatility
- Channel Length for breakout levels
- ROC Length for momentum
- Squeeze threshold (ATR/close)
- TP/SL in absolute price points
📊 Plots:
- Buy signals shown as green triangles
- Channel high/low plotted
- TP/SL levels shown as live lines when in position
Suitable for intraday breakout scalping or directional trades
when price expands from compression zones.
Fallback VWAP (No Volume? No Problem!) – Yogi365Fallback VWAP (No Volume? No Problem!) – Yogi365
This script plots Daily, Weekly, and Monthly VWAPs with ±1 Standard Deviation bands. When volume data is missing or zero (common in indices or illiquid assets), it automatically falls back to a TWAP-style calculation, ensuring that your VWAP levels always remain visible and accurate.
Features:
Daily, Weekly, and Monthly VWAPs with ±1 Std Dev bands.
Auto-detection of missing volume and seamless fallback.
Clean, color-coded trend table showing price vs VWAP/bands.
Uses hlc3 for VWAP source.
Labels indicate when fallback is used.
Best Used On:
Any asset or index where volume is unavailable.
Intraday and swing trading.
Works on all timeframes but optimized for overlay use.
How it Works:
If volume == 0, the script uses a constant fallback volume (1), turning the VWAP into a TWAP (Time-Weighted Average Price) — still useful for intraday or index-based analysis.
This ensures consistent plotting on instruments like indices (e.g., NIFTY, SENSEX,DJI etc.) which might not provide volume on TradingView.
Smart Money Index (SMI) EnhancedSmart Money Index (SMI) Enhanced is an indicator that visualizes the behavior of "smart money" based on intraday price movements.
📌 Based on Don Hays’ classic formula:
SMI = Yesterday’s value – Morning movement + Late-day movement
🔍 Key Features:
Highlighted buy/sell zones for accumulation and distribution;
Alerts for crossovers between SMI and its moving average;
Supports multiple timeframes (hourly, daily, weekly).
✅ Useful for identifying institutional sentiment and potential market reversal points.
ℹ️ Works with stocks, indices, and cryptocurrencies.
This script is for educational purposes only and not financial advice.
Macro Dashboard Multi-TickerThis indicator gives you a compact, high-impact overview of up to 10 custom assets — showing whether each is currently trading above or below a key moving average on a shared timeframe.
🟩 Above MA = colored bar
⬛ Below MA = dimmed bar
Features:
Monitor up to 10 symbols (stocks, crypto, ETFs, etc.)
Customize:
- Symbol
- Color
- Timeframe
- MA type (EMA/SMA)
- MA length
Shared logic keeps the layout clean and consistent.
Use Cases:
- Build a macro trend dashboard for SPY, QQQ, BTC, ETH, ARKK, IWM, DXY, VIX, etc.
- Confirm risk-on alignment
- Identify broad market rotation or weakness
- Pair with individual asset setups to stay in sync with the environment
This tool is ideal for traders who want a one-glance check on market strength without cluttering their main charts. It's fast, flexible, and highly visual.
Double Inside Bar Alert (1-1 Only)Double Inside Bar Alert Indicator
Stay ahead of breakout opportunities with our Double Inside Bar Alert Indicator. This tool automatically scans your watchlist and notifies you in real-time whenever a double inside bar pattern appears—an advanced price action setup known for signaling strong potential breakouts or reversals.
Whether you’re a day trader or swing trader, this indicator helps you:
Spot consolidation zones early before major price moves
Receive instant alerts across your entire watchlist
Filter noise and focus on high-probability chart setups
Perfect for traders who rely on price action and want to catch momentum shifts as they form.
FVG Strategy 5minThat's the early of my new strat, can't wait to upgrade it and take bigggg profit guys
Candle Body Strength CounterThis indicator measures the total bullish and bearish candle body strength over a user-defined lookback period. For each bar, it sums the absolute body sizes of bullish candles (where close > open) and bearish candles (where close < open) within the lookback window. The result is two lines: one for bullish body strength and one for bearish body strength, making it easy to spot shifts in market momentum and bias.
Adjustable lookback period (default: 20 bars)
Green line: cumulative bullish body strength
Red line: cumulative bearish body strength
Use this tool to quickly assess which side (bulls or bears) has been stronger over your chosen timeframe.