Bias & Rules ChecklistThis script provides a clean trading checklist panel:
Bias calculation on a selectable timeframe (e.g., 1H, 4H, Daily)
Up to 5 fully customizable rules with individual scores
Automatic total score and percentage calculation
Designed and developed by ValieTrades
Multitimeframe
Confluence Dashboard V3This dashboard puts everything you need in one place, trend direction, momentum, and entry/exit signals, so you can focus on executing trades with confidence instead of juggling multiple charts. Built to help you see the market clearly and move with discipline.
TCLC - Multi TimeFrame VWAPVWAP :
VWAP, or Volume Weighted Average Price, is a trading indicator that represents the average price of a security over a specific period, weighted by the volume of trades at each price level. It is calculated by taking the sum of the product of price and volume and dividing it by the total volume for the period. Essentially, VWAP shows the average price at which most trades occurred, giving more weight to prices with higher trading volumes.
The Indicator Plots the VWAP in Daily, WEEKLY , MONTHLY , YEARLY which helps to gauage the trend where the Volume vs Price exists....
MTF Trend Analyzer + Option SignalThis Pine Script indicator, titled "MTF Trend Analyzer + Option Signal", is a comprehensive multi-timeframe trend analysis tool designed for TradingView to assist traders in identifying market trends and generating potential option trade signals. It overlays the chart and provides visual labels, a detailed trend table, and option strike suggestions based on trend conditions.
Detailed Description for Publishing on TradingView
Overview
The MTF Trend Analyzer + Option Signal indicator is designed to help traders make informed decisions by analyzing trend strength and direction across the current and a higher timeframe using Exponential Moving Averages (EMAs) and the Average Directional Index (ADX). Alongside trend analysis, it generates actionable option signals (Call or Put options) for instruments like NIFTY or BANKNIFTY by suggesting strikes based on the current trend and user input.
Key Features
- Multi-Timeframe Trend Analysis: Compares trend indicators on both the current chart’s timeframe and a user-selected higher timeframe to confirm trend direction and strength.
- Trend Identification Using EMAs and ADX:
- Calculates fast and slow EMA crossovers.
- Uses ADX to determine trend strength (with values above 20 indicating strong trends).
- Visual Labels for Trend Changes:
- Displays "BUY" or "SELL" labels on the chart when the trend shifts, based on EMA and ADX conditions.
- Option Trade Signal Suggestions:
- Based on the identified trend and option action type (Buy or Sell), suggests corresponding Call or Put option strike prices.
- Strike prices are calculated dynamically using the current price and user-defined strike gap (e.g., 50 for NIFTY, 100 for BANKNIFTY).
- Trend Score: A cumulative score from 0 to 100 reflecting the alignment of EMA and ADX conditions across both timeframes, helping quantify trend reliability.
- Trend Summary Table: A dynamic table positioned on the chart displaying key metrics including EMA values, ADX values, trend direction, score, and option signals for quick reference.
Inputs
- Fast EMA Length: Length for the fast EMA used to detect short-term trend signals (default 20).
- Slow EMA Length: Length for the slow EMA used as a baseline trend filter (default 50).
- ADX Length: Length for the ADX calculation to assess trend strength (default 14).
- Show Trend Table: Toggle to display or hide the trend summary table on the chart.
- Higher Timeframe for Confirmation: The timeframe used for higher timeframe validation (default 60 minutes).
- Option Action: Choose the desired option trading action: "Buy" or "Sell".
- Strike Gap: Defines the interval between option strikes, e.g., 50 for NIFTY or 100 for BANKNIFTY.
How It Works
1. Current Timeframe Calculations: The indicator computes EMAs and ADX on the current chart timeframe to identify short-term trends.
2. Higher Timeframe Validation: It concurrently fetches corresponding values on the selected higher timeframe to confirm trend strength and direction.
3. Trend Determination:
- A BUY trend is confirmed when:
- Fast EMA > Slow EMA on both timeframes.
- ADX > 20 on both timeframes (signifying strong trend).
- A SELL trend occurs when:
- Fast EMA < Slow EMA on both timeframes.
- ADX > 20 on both timeframes.
- Any other condition results in a NEUTRAL trend.
4. Trend Score: Adds points (25 each) for each condition met (fast EMA relation and ADX threshold on both timeframes), totaling up to 100 points.
5. Trend Change Labels: When the trend shifts from previous bars, a label ("BUY" in green or "SELL" in red) is plotted to visually alert traders.
6. Option Strike Suggestions: The indicator rounds the current price to the nearest strike based on strike gap and suggests buying or selling Calls/Puts aligned with the trend and user's option action preference.
7. Trend Table: Displays a comprehensive snapshot of EMA and ADX values on both timeframes, the detected trend, trend score, and option signal for easy monitoring.
Practical Usage
- Trend Confirmation: Use the combined signals from current and higher timeframes to avoid false signals during choppy or sideways markets.
- Option Trading Guidance: The option strike recommendations ease decision-making for options traders by suggesting actionable strikes aligned with the trend.
- Visual Alerts: The labels and table provide quick, on-chart updates without requiring constant monitoring of multiple indicators.
- Customization: Adapt the EMA lengths, ADX window, higher timeframe, and strike gap as per specific market instruments or trading style.
Who Should Use This Indicator?
- Swing and intraday traders seeking robust trend validation across multiple timeframes.
- Options traders looking for timely strike price signals based on technical conditions.
- Traders who prefer a visual and quantitative summary of trend behavior over manual analysis.
- Market participants trading indices or stocks with available options, especially in markets similar to NIFTY or BANKNIFTY.
Summary
The MTF Trend Analyzer + Option Signal is an all-in-one tool for comprehensive trend analysis and options trade signal generation. Its multi-timeframe approach combined with EMA and ADX indicators delivers reliable trend direction and strength insights. The dynamic visual labels, scoring mechanism, and detailed trend table empower traders to make informed market entries and option strike selections effectively.
This script is a powerful yet user-friendly assistant for improving timing and precision in trading decisions, making it an invaluable addition to TradingView’s indicator library.
If needed, customisation or integration support is available upon request.
Sources
Ichimoku + SuperTrend + Oscillator + Divergence + SMC Lite//@version=5
indicator("Ichimoku + SuperTrend + Oscillator + Divergence + SMC Lite", overlay=true, max_labels_count=500, max_lines_count=500, max_boxes_count=500, max_bars_back=1000)
// ====================
// === CODE BLOCK 1: Ichimoku + SuperTrend + Oscillator Monitor + Divergence ===
// ====================
// --- User Inputs ---
lowerTF = input.timeframe("5", "Lower Timeframe (Ichimoku + SuperTrend)")
higherTF = input.timeframe("60", "Higher Timeframe (Tenkan/Kijun check)")
tenkanLength = input.int(9, "Tenkan-sen Length (Lower TF)")
kijunLength = input.int(26, "Kijun-sen Length (Lower TF)")
senkouSpanBLength = input.int(52, "Senkou Span B Length (Lower TF)")
displacement = input.int(26, "Displacement (Lower TF)")
showCloud = input.bool(true, "Show Kumo Cloud (Lower TF)")
buyColor = input.color(color.new(color.green, 0), "Buy Candle Color")
sellColor = input.color(color.new(color.red, 0), "Sell Candle Color")
crossCandleColor = input.color(color.new(color.yellow, 0), "Cross Candle Color")
bodyFilterColor = input.color(color.new(color.lime,0), "Body Filter Active Color")
htfCrossColor = input.color(color.new(color.orange,0), "HTF Cross Signal Color")
stopColor = input.color(color.new(color.red,0), "Stop Line Color")
targetColor = input.color(color.new(color.blue,0), "Target Line Color")
cooldownBars = input.int(5, "Cooldown Bars After Signal")
// --- Higher TF Ichimoku ---
tenkanLengthHTF = input.int(36, "Tenkan Length (Higher TF)")
kijunLengthHTF = input.int(103, "Kijun Length (Higher TF)")
showTenkanHTF = input.bool(true, "Show Tenkan (HTF)")
showKijunHTF = input.bool(true, "Show Kijun (HTF)")
tenkanHTFValue = request.security(syminfo.tickerid, higherTF, (ta.highest(high, tenkanLengthHTF)+ta.lowest(low, tenkanLengthHTF))/2)
kijunHTFValue = request.security(syminfo.tickerid, higherTF, (ta.highest(high, kijunLengthHTF)+ta.lowest(low, kijunLengthHTF))/2)
plot(showTenkanHTF ? tenkanHTFValue : na, color=color.blue, linewidth=2, title="Tenkan HTF")
plot(showKijunHTF ? kijunHTFValue : na, color=color.red, linewidth=2, title="Kijun HTF")
// --- Lower TF Ichimoku ---
tenkan = request.security(syminfo.tickerid, lowerTF, (ta.highest(high, tenkanLength) + ta.lowest(low, tenkanLength)) / 2)
kijun = request.security(syminfo.tickerid, lowerTF, (ta.highest(high, kijunLength) + ta.lowest(low, kijunLength)) / 2)
senkouA = request.security(syminfo.tickerid, lowerTF, (tenkan + kijun) / 2)
senkouB = request.security(syminfo.tickerid, lowerTF, (ta.highest(high, senkouSpanBLength) + ta.lowest(low, senkouSpanBLength)) / 2)
plot(tenkan, color=color.blue, title="Tenkan-sen (LTF)", linewidth=2)
plot(kijun, color=color.red, title="Kijun-sen (LTF)", linewidth=2)
sA = plot(senkouA , display=display.none)
sB = plot(senkouB , display=display.none)
cloudColor = showCloud ? (senkouA > senkouB ? color.new(color.green, 80) : color.new(color.red, 80)) : na
fill(sA, sB, color=cloudColor)
// --- Detect Crosses ---
crossUp = ta.crossover(tenkan, kijun)
crossDown = ta.crossunder(tenkan, kijun)
crossUpHTF = ta.crossover(tenkanHTFValue, kijunHTFValue)
crossDownHTF = ta.crossunder(tenkanHTFValue, kijunHTFValue)
candle2AboveCloud = close > math.max(senkouA , senkouB )
candle2BelowCloud = close < math.min(senkouA , senkouB )
// --- SuperTrend Lower TF ---
atrPeriodLTF = 12
multiplierLTF = 3.0
atrValueLTF = ta.atr(atrPeriodLTF)
upLTF = hl2 - multiplierLTF * atrValueLTF
dnLTF = hl2 + multiplierLTF * atrValueLTF
var int trendLTF = 1
trendLTF := trendLTF == -1 and close > dnLTF ? 1 : trendLTF == 1 and close < upLTF ? -1 : trendLTF
// --- SuperTrend Higher TF ---
useHTFST = input.bool(true, "Use HTF SuperTrend")
atrPeriodHTF = input.int(12, "HTF SuperTrend ATR")
multiplierHTF = input.float(3.0, "HTF SuperTrend Multiplier")
hl2HTF = request.security(syminfo.tickerid, higherTF, hl2)
atrHTF = request.security(syminfo.tickerid, higherTF, ta.atr(atrPeriodHTF))
upHTF = hl2HTF - multiplierHTF * atrHTF
dnHTF = hl2HTF + multiplierHTF * atrHTF
var int trendHTF = 1
trendHTF := trendHTF == -1 and close > dnHTF ? 1 : trendHTF == 1 and close < upHTF ? -1 : trendHTF
// --- Body Filter ---
useBodyFilter = input.bool(true, "Use Body Filter")
bodyMinPerc = input.float(20, "Min Body %")
bodyMaxPerc = input.float(100, "Max Body %")
bodyLen = math.abs(close - open)
candleLen = high - low
bodyPerc = (bodyLen / candleLen) * 100
bodyFilterPass = not useBodyFilter or (bodyPerc >= bodyMinPerc and bodyPerc <= bodyMaxPerc)
// --- Reward Filter ---
useReward = input.bool(true, "Use Reward 1:1 Filter")
stopLossPerc = input.float(1.5, "Stop Loss %")
reward1 = input.float(1.0, "Target 1 R/R")
reward2 = input.float(2.0, "Target 2 R/R")
reward3 = input.float(3.0, "Target 3 R/R")
rewardPass = not useReward or ((math.abs(close - tenkanHTFValue) * reward1) <= math.abs(kijunHTFValue - close))
// --- TSI Higher TF ---
tsiLong = input.int(25, "TSI Long")
tsiShort = input.int(13, "TSI Short")
tsiHTF = ta.tsi(request.security(syminfo.tickerid, higherTF, close), tsiLong, tsiShort)
// --- Lower TF Signals ---
buySignalLTF = (crossUp and candle2AboveCloud) and trendLTF == 1
sellSignalLTF = (crossDown and candle2BelowCloud) and trendLTF == -1
plotshape(crossUpHTF, title="HTF Buy Cross", location=location.belowbar, color=htfCrossColor, style=shape.triangleup, size=size.small)
plotshape(crossDownHTF, title="HTF Sell Cross", location=location.abovebar, color=htfCrossColor, style=shape.triangledown, size=size.small)
buyConfirmedRaw = (buySignalLTF and close > tenkanHTFValue and (not useHTFST or trendHTF==1)) and rewardPass and (tsiHTF > 0)
sellConfirmedRaw = (sellSignalLTF and close < tenkanHTFValue and (not useHTFST or trendHTF==-1)) and rewardPass and (tsiHTF < 0)
// --- Cooldown ---
var int barsSinceSignal = cooldownBars
barsSinceSignal += 1
buyConfirmed = buyConfirmedRaw and barsSinceSignal >= cooldownBars
sellConfirmed = sellConfirmedRaw and barsSinceSignal >= cooldownBars
if buyConfirmed or sellConfirmed
barsSinceSignal := 0
// --- Plot Final Signals ---
plotshape(buyConfirmed and bodyFilterPass, title="Buy Signal", location=location.belowbar, color=buyColor, style=shape.triangleup, size=size.small)
plotshape(sellConfirmed and bodyFilterPass, title="Sell Signal", location=location.abovebar, color=sellColor, style=shape.triangledown, size=size.small)
plotshape(buyConfirmed and not bodyFilterPass, title="Buy Signal (Filtered)", location=location.belowbar, color=bodyFilterColor, style=shape.triangleup, size=size.tiny)
plotshape(sellConfirmed and not bodyFilterPass, title="Sell Signal (Filtered)", location=location.abovebar, color=bodyFilterColor, style=shape.triangledown, size=size.tiny)
barcolor(crossUp or crossDown ? crossCandleColor : na)
barcolor(buyConfirmed and bodyFilterPass ? buyColor : sellConfirmed and bodyFilterPass ? sellColor : na)
// --- Stop & Targets ---
var float lastBuyPrice = na
var float lastSellPrice = na
var bool buyActive = false
var bool sellActive = false
f_drawLine(_price) =>
line.new(bar_index, _price, bar_index+3, _price, color=targetColor, width=2, style=line.style_dotted)
if buyConfirmed and not buyActive and not sellActive
buyActive := true
lastBuyPrice := close
line.new(bar_index, close*(1-stopLossPerc/100), bar_index+3, close*(1-stopLossPerc/100), color=stopColor, width=2, style=line.style_dotted)
f_drawLine(close*(1+reward1/100))
f_drawLine(close*(1+reward2/100))
f_drawLine(close*(1+reward3/100))
if buyActive
if low <= lastBuyPrice*(1-stopLossPerc/100) or high >= lastBuyPrice*(1+reward1/100)
buyActive := false
if sellConfirmed and not sellActive and not buyActive
sellActive := true
lastSellPrice := close
line.new(bar_index, close*(1+stopLossPerc/100), bar_index+3, close*(1+stopLossPerc/100), color=stopColor, width=2, style=line.style_dotted)
f_drawLine(close*(1-reward1/100))
f_drawLine(close*(1-reward2/100))
f_drawLine(close*(1-reward3/100))
if sellActive
if high >= lastSellPrice*(1+stopLossPerc/100) or low <= lastSellPrice*(1-reward1/100)
sellActive := false
// --- Oscillator Panel ---
showPanel = input.bool(true, "Show Oscillator Panel")
panelX = input.int(20, "Panel X Offset (Bars)")
panelY = input.int(50, "Panel Y Offset (Pixels)")
panelBgColor = input.color(color.new(color.black, 85), "Panel Background Color")
panelTextSize = input.string("normal", "Text Size", options= )
// MACD
macdFast = input.int(12)
macdSlow = input.int(26)
macdSignal= input.int(9)
= ta.macd(close, macdFast, macdSlow, macdSignal)
macdBull = macdLine > signalLine
// RSI
rsiLen = input.int(14)
rsiVal = ta.rsi(close, rsiLen)
rsiBull = rsiVal > 50
// TSI
tsiVal = ta.tsi(close, 25, 13)
tsiBull = tsiVal > 0
// Divergence detection (RSI, MACD, TSI)
leftBars = input.int(2)
rightBars = input.int(2)
rsiLow = ta.pivotlow(rsiVal, leftBars, rightBars)
rsiHigh = ta.pivothigh(rsiVal, leftBars, rightBars)
bullDivRSI = not na(rsiLow) and low < low and rsiVal > rsiVal
bearDivRSI = not na(rsiHigh) and high > high and rsiVal < rsiVal
macdLow = ta.pivotlow(macdLine, leftBars, rightBars)
macdHigh = ta.pivothigh(macdLine, leftBars, rightBars)
bullDivMACD = not na(macdLow) and low < low and macdLine > macdLine
bearDivMACD = not na(macdHigh) and high > high and macdLine < macdLine
tsiLow = ta.pivotlow(tsiVal, leftBars, rightBars)
tsiHigh = ta.pivothigh(tsiVal, leftBars, rightBars)
bullDivTSI = not na(tsiLow) and low < low and tsiVal > tsiVal
bearDivTSI = not na(tsiHigh) and high > high and tsiVal < tsiVal
// Plot divergence on chart
plotshape(bullDivRSI, style=shape.labelup, text="R d+", color=color.lime, textcolor=color.white, location=location.belowbar, size=size.tiny)
plotshape(bearDivRSI, style=shape.labeldown, text="R d-", color=color.red, textcolor=color.white, location=location.abovebar, size=size.tiny)
plotshape(bullDivMACD, style=shape.labelup, text="M d+", color=color.lime, textcolor=color.white, location=location.belowbar, size=size.tiny)
plotshape(bearDivMACD, style=shape.labeldown, text="M d-", color=color.red, textcolor=color.white, location=location.abovebar, size=size.tiny)
plotshape(bullDivTSI, style=shape.labelup, text="T d+", color=color.lime, textcolor=color.white, location=location.belowbar, size=size.tiny)
plotshape(bearDivTSI, style=shape.labeldown, text="T d-", color=color.red, textcolor=color.white, location=location.abovebar, size=size.tiny)
// Panel
var label panelLabel = label.new(bar_index + panelX, close, "", xloc=xloc.bar_index, yloc=yloc.price, style=label.style_label_left, color=panelBgColor, size=panelTextSize)
if showPanel
label.set_xy(panelLabel, bar_index + panelX, close + panelY * syminfo.mintick)
label.set_text(panelLabel, "MACD: " + (macdBull ? "↑" : "↓") + (bullDivMACD ? " d+" : bearDivMACD ? " d-" : "") + " " +
"RSI : " + (rsiBull ? "↑" : "↓") + (bullDivRSI ? " d+" : bearDivRSI ? " d-" : "") + " " +
"TSI : " + (tsiBull ? "↑" : "↓") + (bullDivTSI ? " d+" : bearDivTSI ? " d-" : "") + " " +
"ST : " + (trendLTF==1 ? "↑" : "↓"))
label.set_textcolor(panelLabel, color.white)
// ====================
// === CODE BLOCK 2: FluidTrades - SMC Lite (Light) ===
// ====================
// === SETTINGS ===
swing_length = input.int(10, "Swing High/Low Length", minval=1, maxval=50)
history_keep = input.int(20, "History To Keep", minval=5, maxval=50)
box_width = input.float(2.5, "Supply/Demand Box Width", minval=1, maxval=10, step=0.5)
show_labels = input.bool(false, "Show Price Action Labels")
supply_color = input.color(color.new(#EDEDED,70), "Supply Color")
supply_outline = input.color(color.new(color.white,75), "Supply Outline")
demand_color = input.color(color.new(#00FFFF,70), "Demand Color")
demand_outline = input.color(color.new(color.white,75), "Demand Outline")
bos_color = input.color(color.white, "BOS Label Color")
poi_color = input.color(color.white, "POI Label Color")
label_color = input.color(color.black, "Swing Label Color")
// === FUNCTIONS ===
f_add_pop(arr, val) =>
array.unshift(arr, val)
array.pop(arr)
f_draw_swing_label(values, swing_type) =>
var string txt = na
if swing_type == 1
txt := array.get(values,0) >= array.get(values,1) ? "HH" : "LH"
label.new(bar_index - swing_length, array.get(values,0), txt, style=label.style_label_down, textcolor=label_color, color=color.new(label_color,100), size=size.tiny)
else
txt := array.get(values,0) >= array.get(values,1) ? "HL" : "LL"
label.new(bar_index - swing_length, array.get(values,0), txt, style=label.style_label_up, textcolor=label_color, color=color.new(label_color,100), size=size.tiny)
f_check_overlap(new_poi, box_arr, atr) =>
ok = true
for i=0 to array.size(box_arr)-1
b = array.get(box_arr,i)
top = box.get_top(b)
bot = box.get_bottom(b)
mid = (top+bot)/2
threshold = atr*2
if new_poi >= mid - threshold and new_poi <= mid + threshold
ok := false
break
ok
f_create_box(vals, bn_arr, box_arr, label_arr, type_box, atr) =>
atr_buf = atr*(box_width/10)
left = array.get(bn_arr,0)
right = bar_index
var float top=0.0
var float bottom=0.0
var float poi=0.0
if type_box==1
top := array.get(vals,0)
bottom := top - atr_buf
else
bottom := array.get(vals,0)
top := bottom + atr_buf
poi := (top+bottom)/2
if f_check_overlap(poi, box_arr, atr)
box.delete(array.get(box_arr,array.size(box_arr)-1))
f_add_pop(box_arr, box.new(left, top, right, bottom, border_color=type_box==1?supply_outline:demand_outline,
bgcolor=type_box==1?supply_color:demand_color, extend=extend.right, text=type_box==1?"SUPPLY":"DEMAND",
text_halign=text.align_center, text_valign=text.align_center, text_color=poi_color, text_size=size.small, xloc=xloc.bar_index))
box.delete(array.get(label_arr,array.size(label_arr)-1))
f_add_pop(label_arr, box.new(left, poi, right, poi, border_color=color.new(poi_color,90),
bgcolor=color.new(poi_color,90), extend=extend.right, text="POI", text_halign=text.align_left, text_valign=text.align_center, text_color=poi_color, text_size=size.small, xloc=xloc.bar_index))
f_to_bos(box_arr, bos_arr, label_arr, type_box) =>
for i=0 to array.size(box_arr)-1
b = array.get(box_arr,i)
lvl = type_box==1? box.get_top(b) : box.get_bottom(b)
cond = type_box==1? close>=lvl : close<=lvl
if cond
cbox = box.copy(b)
f_add_pop(bos_arr, cbox)
mid = (box.get_top(b)+box.get_bottom(b))/2
box.set_top(cbox, mid)
box.set_bottom(cbox, mid)
box.set_extend(cbox, extend.none)
box.set_right(cbox, bar_index)
box.set_text(cbox, "BOS")
box.set_text_color(cbox, bos_color)
box.set_text_size(cbox, size.small)
box.set_text_halign(cbox, text.align_center)
box.set_text_valign(cbox, text.align_center)
box.delete(b)
box.delete(array.get(label_arr,i))
f_extend(box_arr) =>
for i=0 to array.size(box_arr)-1
box.set_right(array.get(box_arr,i), bar_index+100)
// === CALCULATIONS ===
atr = ta.atr(50)
swing_high = ta.pivothigh(high, swing_length, swing_length)
swing_low = ta.pivotlow(low, swing_length, swing_length)
var swing_high_vals = array.new_float(5,0.0)
var swing_low_vals = array.new_float(5,0.0)
var swing_high_bn = array.new_int(5,0)
var swing_low_bn = array.new_int(5,0)
var supply_boxes = array.new_box(history_keep, na)
var demand_boxes = array.new_box(history_keep, na)
var supply_poi = array.new_box(history_keep, na)
var demand_poi = array.new_box(history_keep, na)
var bos_supply = array.new_box(5, na)
var bos_demand = array.new_box(5, na)
// NEW SWING HIGH
if not na(swing_high)
f_add_pop(swing_high_vals, swing_high)
f_add_pop(swing_high_bn, bar_index )
if show_labels
f_draw_swing_label(swing_high_vals,1)
f_create_box(swing_high_vals, swing_high_bn, supply_boxes, supply_poi, 1, atr)
// NEW SWING LOW
if not na(swing_low)
f_add_pop(swing_low_vals, swing_low)
f_add_pop(swing_low_bn, bar_index )
if show_labels
f_draw_swing_label(swing_low_vals,-1)
f_create_box(swing_low_vals, swing_low_bn, demand_boxes, demand_poi, -1, atr)
f_to_bos(supply_boxes, bos_supply, supply_poi, 1)
f_to_bos(demand_boxes, bos_demand, demand_poi, -1)
f_extend(supply_boxes)
f_extend(demand_boxes)
//@version=6
length = input.int(9, minval=1)
src = input(close, title="Source")
e1 = ta.ema(src, length)
e2 = ta.ema(e1, length)
dema = 2 * e1 - e2
plot(dema, "DEMA", color=#43A047)
Ichimoku + SuperTrend + Oscillator + Divergence + SMC Lite//@version=5
indicator("Ichimoku + SuperTrend + Oscillator + Divergence + SMC Lite", overlay=true, max_labels_count=500, max_lines_count=500, max_boxes_count=500, max_bars_back=1000)
// ====================
// === CODE BLOCK 1: Ichimoku + SuperTrend + Oscillator Monitor + Divergence ===
// ====================
// --- User Inputs ---
lowerTF = input.timeframe("5", "Lower Timeframe (Ichimoku + SuperTrend)")
higherTF = input.timeframe("60", "Higher Timeframe (Tenkan/Kijun check)")
tenkanLength = input.int(9, "Tenkan-sen Length (Lower TF)")
kijunLength = input.int(26, "Kijun-sen Length (Lower TF)")
senkouSpanBLength = input.int(52, "Senkou Span B Length (Lower TF)")
displacement = input.int(26, "Displacement (Lower TF)")
showCloud = input.bool(true, "Show Kumo Cloud (Lower TF)")
buyColor = input.color(color.new(color.green, 0), "Buy Candle Color")
sellColor = input.color(color.new(color.red, 0), "Sell Candle Color")
crossCandleColor = input.color(color.new(color.yellow, 0), "Cross Candle Color")
bodyFilterColor = input.color(color.new(color.lime,0), "Body Filter Active Color")
htfCrossColor = input.color(color.new(color.orange,0), "HTF Cross Signal Color")
stopColor = input.color(color.new(color.red,0), "Stop Line Color")
targetColor = input.color(color.new(color.blue,0), "Target Line Color")
cooldownBars = input.int(5, "Cooldown Bars After Signal")
// --- Higher TF Ichimoku ---
tenkanLengthHTF = input.int(36, "Tenkan Length (Higher TF)")
kijunLengthHTF = input.int(103, "Kijun Length (Higher TF)")
showTenkanHTF = input.bool(true, "Show Tenkan (HTF)")
showKijunHTF = input.bool(true, "Show Kijun (HTF)")
tenkanHTFValue = request.security(syminfo.tickerid, higherTF, (ta.highest(high, tenkanLengthHTF)+ta.lowest(low, tenkanLengthHTF))/2)
kijunHTFValue = request.security(syminfo.tickerid, higherTF, (ta.highest(high, kijunLengthHTF)+ta.lowest(low, kijunLengthHTF))/2)
plot(showTenkanHTF ? tenkanHTFValue : na, color=color.blue, linewidth=2, title="Tenkan HTF")
plot(showKijunHTF ? kijunHTFValue : na, color=color.red, linewidth=2, title="Kijun HTF")
// --- Lower TF Ichimoku ---
tenkan = request.security(syminfo.tickerid, lowerTF, (ta.highest(high, tenkanLength) + ta.lowest(low, tenkanLength)) / 2)
kijun = request.security(syminfo.tickerid, lowerTF, (ta.highest(high, kijunLength) + ta.lowest(low, kijunLength)) / 2)
senkouA = request.security(syminfo.tickerid, lowerTF, (tenkan + kijun) / 2)
senkouB = request.security(syminfo.tickerid, lowerTF, (ta.highest(high, senkouSpanBLength) + ta.lowest(low, senkouSpanBLength)) / 2)
plot(tenkan, color=color.blue, title="Tenkan-sen (LTF)", linewidth=2)
plot(kijun, color=color.red, title="Kijun-sen (LTF)", linewidth=2)
sA = plot(senkouA , display=display.none)
sB = plot(senkouB , display=display.none)
cloudColor = showCloud ? (senkouA > senkouB ? color.new(color.green, 80) : color.new(color.red, 80)) : na
fill(sA, sB, color=cloudColor)
// --- Detect Crosses ---
crossUp = ta.crossover(tenkan, kijun)
crossDown = ta.crossunder(tenkan, kijun)
crossUpHTF = ta.crossover(tenkanHTFValue, kijunHTFValue)
crossDownHTF = ta.crossunder(tenkanHTFValue, kijunHTFValue)
candle2AboveCloud = close > math.max(senkouA , senkouB )
candle2BelowCloud = close < math.min(senkouA , senkouB )
// --- SuperTrend Lower TF ---
atrPeriodLTF = 12
multiplierLTF = 3.0
atrValueLTF = ta.atr(atrPeriodLTF)
upLTF = hl2 - multiplierLTF * atrValueLTF
dnLTF = hl2 + multiplierLTF * atrValueLTF
var int trendLTF = 1
trendLTF := trendLTF == -1 and close > dnLTF ? 1 : trendLTF == 1 and close < upLTF ? -1 : trendLTF
// --- SuperTrend Higher TF ---
useHTFST = input.bool(true, "Use HTF SuperTrend")
atrPeriodHTF = input.int(12, "HTF SuperTrend ATR")
multiplierHTF = input.float(3.0, "HTF SuperTrend Multiplier")
hl2HTF = request.security(syminfo.tickerid, higherTF, hl2)
atrHTF = request.security(syminfo.tickerid, higherTF, ta.atr(atrPeriodHTF))
upHTF = hl2HTF - multiplierHTF * atrHTF
dnHTF = hl2HTF + multiplierHTF * atrHTF
var int trendHTF = 1
trendHTF := trendHTF == -1 and close > dnHTF ? 1 : trendHTF == 1 and close < upHTF ? -1 : trendHTF
// --- Body Filter ---
useBodyFilter = input.bool(true, "Use Body Filter")
bodyMinPerc = input.float(20, "Min Body %")
bodyMaxPerc = input.float(100, "Max Body %")
bodyLen = math.abs(close - open)
candleLen = high - low
bodyPerc = (bodyLen / candleLen) * 100
bodyFilterPass = not useBodyFilter or (bodyPerc >= bodyMinPerc and bodyPerc <= bodyMaxPerc)
// --- Reward Filter ---
useReward = input.bool(true, "Use Reward 1:1 Filter")
stopLossPerc = input.float(1.5, "Stop Loss %")
reward1 = input.float(1.0, "Target 1 R/R")
reward2 = input.float(2.0, "Target 2 R/R")
reward3 = input.float(3.0, "Target 3 R/R")
rewardPass = not useReward or ((math.abs(close - tenkanHTFValue) * reward1) <= math.abs(kijunHTFValue - close))
// --- TSI Higher TF ---
tsiLong = input.int(25, "TSI Long")
tsiShort = input.int(13, "TSI Short")
tsiHTF = ta.tsi(request.security(syminfo.tickerid, higherTF, close), tsiLong, tsiShort)
// --- Lower TF Signals ---
buySignalLTF = (crossUp and candle2AboveCloud) and trendLTF == 1
sellSignalLTF = (crossDown and candle2BelowCloud) and trendLTF == -1
plotshape(crossUpHTF, title="HTF Buy Cross", location=location.belowbar, color=htfCrossColor, style=shape.triangleup, size=size.small)
plotshape(crossDownHTF, title="HTF Sell Cross", location=location.abovebar, color=htfCrossColor, style=shape.triangledown, size=size.small)
buyConfirmedRaw = (buySignalLTF and close > tenkanHTFValue and (not useHTFST or trendHTF==1)) and rewardPass and (tsiHTF > 0)
sellConfirmedRaw = (sellSignalLTF and close < tenkanHTFValue and (not useHTFST or trendHTF==-1)) and rewardPass and (tsiHTF < 0)
// --- Cooldown ---
var int barsSinceSignal = cooldownBars
barsSinceSignal += 1
buyConfirmed = buyConfirmedRaw and barsSinceSignal >= cooldownBars
sellConfirmed = sellConfirmedRaw and barsSinceSignal >= cooldownBars
if buyConfirmed or sellConfirmed
barsSinceSignal := 0
// --- Plot Final Signals ---
plotshape(buyConfirmed and bodyFilterPass, title="Buy Signal", location=location.belowbar, color=buyColor, style=shape.triangleup, size=size.small)
plotshape(sellConfirmed and bodyFilterPass, title="Sell Signal", location=location.abovebar, color=sellColor, style=shape.triangledown, size=size.small)
plotshape(buyConfirmed and not bodyFilterPass, title="Buy Signal (Filtered)", location=location.belowbar, color=bodyFilterColor, style=shape.triangleup, size=size.tiny)
plotshape(sellConfirmed and not bodyFilterPass, title="Sell Signal (Filtered)", location=location.abovebar, color=bodyFilterColor, style=shape.triangledown, size=size.tiny)
barcolor(crossUp or crossDown ? crossCandleColor : na)
barcolor(buyConfirmed and bodyFilterPass ? buyColor : sellConfirmed and bodyFilterPass ? sellColor : na)
// --- Stop & Targets ---
var float lastBuyPrice = na
var float lastSellPrice = na
var bool buyActive = false
var bool sellActive = false
f_drawLine(_price) =>
line.new(bar_index, _price, bar_index+3, _price, color=targetColor, width=2, style=line.style_dotted)
if buyConfirmed and not buyActive and not sellActive
buyActive := true
lastBuyPrice := close
line.new(bar_index, close*(1-stopLossPerc/100), bar_index+3, close*(1-stopLossPerc/100), color=stopColor, width=2, style=line.style_dotted)
f_drawLine(close*(1+reward1/100))
f_drawLine(close*(1+reward2/100))
f_drawLine(close*(1+reward3/100))
if buyActive
if low <= lastBuyPrice*(1-stopLossPerc/100) or high >= lastBuyPrice*(1+reward1/100)
buyActive := false
if sellConfirmed and not sellActive and not buyActive
sellActive := true
lastSellPrice := close
line.new(bar_index, close*(1+stopLossPerc/100), bar_index+3, close*(1+stopLossPerc/100), color=stopColor, width=2, style=line.style_dotted)
f_drawLine(close*(1-reward1/100))
f_drawLine(close*(1-reward2/100))
f_drawLine(close*(1-reward3/100))
if sellActive
if high >= lastSellPrice*(1+stopLossPerc/100) or low <= lastSellPrice*(1-reward1/100)
sellActive := false
// --- Oscillator Panel ---
showPanel = input.bool(true, "Show Oscillator Panel")
panelX = input.int(20, "Panel X Offset (Bars)")
panelY = input.int(50, "Panel Y Offset (Pixels)")
panelBgColor = input.color(color.new(color.black, 85), "Panel Background Color")
panelTextSize = input.string("normal", "Text Size", options= )
// MACD
macdFast = input.int(12)
macdSlow = input.int(26)
macdSignal= input.int(9)
= ta.macd(close, macdFast, macdSlow, macdSignal)
macdBull = macdLine > signalLine
// RSI
rsiLen = input.int(14)
rsiVal = ta.rsi(close, rsiLen)
rsiBull = rsiVal > 50
// TSI
tsiVal = ta.tsi(close, 25, 13)
tsiBull = tsiVal > 0
// Divergence detection (RSI, MACD, TSI)
leftBars = input.int(2)
rightBars = input.int(2)
rsiLow = ta.pivotlow(rsiVal, leftBars, rightBars)
rsiHigh = ta.pivothigh(rsiVal, leftBars, rightBars)
bullDivRSI = not na(rsiLow) and low < low and rsiVal > rsiVal
bearDivRSI = not na(rsiHigh) and high > high and rsiVal < rsiVal
macdLow = ta.pivotlow(macdLine, leftBars, rightBars)
macdHigh = ta.pivothigh(macdLine, leftBars, rightBars)
bullDivMACD = not na(macdLow) and low < low and macdLine > macdLine
bearDivMACD = not na(macdHigh) and high > high and macdLine < macdLine
tsiLow = ta.pivotlow(tsiVal, leftBars, rightBars)
tsiHigh = ta.pivothigh(tsiVal, leftBars, rightBars)
bullDivTSI = not na(tsiLow) and low < low and tsiVal > tsiVal
bearDivTSI = not na(tsiHigh) and high > high and tsiVal < tsiVal
// Plot divergence on chart
plotshape(bullDivRSI, style=shape.labelup, text="R d+", color=color.lime, textcolor=color.white, location=location.belowbar, size=size.tiny)
plotshape(bearDivRSI, style=shape.labeldown, text="R d-", color=color.red, textcolor=color.white, location=location.abovebar, size=size.tiny)
plotshape(bullDivMACD, style=shape.labelup, text="M d+", color=color.lime, textcolor=color.white, location=location.belowbar, size=size.tiny)
plotshape(bearDivMACD, style=shape.labeldown, text="M d-", color=color.red, textcolor=color.white, location=location.abovebar, size=size.tiny)
plotshape(bullDivTSI, style=shape.labelup, text="T d+", color=color.lime, textcolor=color.white, location=location.belowbar, size=size.tiny)
plotshape(bearDivTSI, style=shape.labeldown, text="T d-", color=color.red, textcolor=color.white, location=location.abovebar, size=size.tiny)
// Panel
var label panelLabel = label.new(bar_index + panelX, close, "", xloc=xloc.bar_index, yloc=yloc.price, style=label.style_label_left, color=panelBgColor, size=panelTextSize)
if showPanel
label.set_xy(panelLabel, bar_index + panelX, close + panelY * syminfo.mintick)
label.set_text(panelLabel, "MACD: " + (macdBull ? "↑" : "↓") + (bullDivMACD ? " d+" : bearDivMACD ? " d-" : "") + " " +
"RSI : " + (rsiBull ? "↑" : "↓") + (bullDivRSI ? " d+" : bearDivRSI ? " d-" : "") + " " +
"TSI : " + (tsiBull ? "↑" : "↓") + (bullDivTSI ? " d+" : bearDivTSI ? " d-" : "") + " " +
"ST : " + (trendLTF==1 ? "↑" : "↓"))
label.set_textcolor(panelLabel, color.white)
// ====================
// === CODE BLOCK 2: FluidTrades - SMC Lite (Light) ===
// ====================
// === SETTINGS ===
swing_length = input.int(10, "Swing High/Low Length", minval=1, maxval=50)
history_keep = input.int(20, "History To Keep", minval=5, maxval=50)
box_width = input.float(2.5, "Supply/Demand Box Width", minval=1, maxval=10, step=0.5)
show_labels = input.bool(false, "Show Price Action Labels")
supply_color = input.color(color.new(#EDEDED,70), "Supply Color")
supply_outline = input.color(color.new(color.white,75), "Supply Outline")
demand_color = input.color(color.new(#00FFFF,70), "Demand Color")
demand_outline = input.color(color.new(color.white,75), "Demand Outline")
bos_color = input.color(color.white, "BOS Label Color")
poi_color = input.color(color.white, "POI Label Color")
label_color = input.color(color.black, "Swing Label Color")
// === FUNCTIONS ===
f_add_pop(arr, val) =>
array.unshift(arr, val)
array.pop(arr)
f_draw_swing_label(values, swing_type) =>
var string txt = na
if swing_type == 1
txt := array.get(values,0) >= array.get(values,1) ? "HH" : "LH"
label.new(bar_index - swing_length, array.get(values,0), txt, style=label.style_label_down, textcolor=label_color, color=color.new(label_color,100), size=size.tiny)
else
txt := array.get(values,0) >= array.get(values,1) ? "HL" : "LL"
label.new(bar_index - swing_length, array.get(values,0), txt, style=label.style_label_up, textcolor=label_color, color=color.new(label_color,100), size=size.tiny)
f_check_overlap(new_poi, box_arr, atr) =>
ok = true
for i=0 to array.size(box_arr)-1
b = array.get(box_arr,i)
top = box.get_top(b)
bot = box.get_bottom(b)
mid = (top+bot)/2
threshold = atr*2
if new_poi >= mid - threshold and new_poi <= mid + threshold
ok := false
break
ok
f_create_box(vals, bn_arr, box_arr, label_arr, type_box, atr) =>
atr_buf = atr*(box_width/10)
left = array.get(bn_arr,0)
right = bar_index
var float top=0.0
var float bottom=0.0
var float poi=0.0
if type_box==1
top := array.get(vals,0)
bottom := top - atr_buf
else
bottom := array.get(vals,0)
top := bottom + atr_buf
poi := (top+bottom)/2
if f_check_overlap(poi, box_arr, atr)
box.delete(array.get(box_arr,array.size(box_arr)-1))
f_add_pop(box_arr, box.new(left, top, right, bottom, border_color=type_box==1?supply_outline:demand_outline,
bgcolor=type_box==1?supply_color:demand_color, extend=extend.right, text=type_box==1?"SUPPLY":"DEMAND",
text_halign=text.align_center, text_valign=text.align_center, text_color=poi_color, text_size=size.small, xloc=xloc.bar_index))
box.delete(array.get(label_arr,array.size(label_arr)-1))
f_add_pop(label_arr, box.new(left, poi, right, poi, border_color=color.new(poi_color,90),
bgcolor=color.new(poi_color,90), extend=extend.right, text="POI", text_halign=text.align_left, text_valign=text.align_center, text_color=poi_color, text_size=size.small, xloc=xloc.bar_index))
f_to_bos(box_arr, bos_arr, label_arr, type_box) =>
for i=0 to array.size(box_arr)-1
b = array.get(box_arr,i)
lvl = type_box==1? box.get_top(b) : box.get_bottom(b)
cond = type_box==1? close>=lvl : close<=lvl
if cond
cbox = box.copy(b)
f_add_pop(bos_arr, cbox)
mid = (box.get_top(b)+box.get_bottom(b))/2
box.set_top(cbox, mid)
box.set_bottom(cbox, mid)
box.set_extend(cbox, extend.none)
box.set_right(cbox, bar_index)
box.set_text(cbox, "BOS")
box.set_text_color(cbox, bos_color)
box.set_text_size(cbox, size.small)
box.set_text_halign(cbox, text.align_center)
box.set_text_valign(cbox, text.align_center)
box.delete(b)
box.delete(array.get(label_arr,i))
f_extend(box_arr) =>
for i=0 to array.size(box_arr)-1
box.set_right(array.get(box_arr,i), bar_index+100)
// === CALCULATIONS ===
atr = ta.atr(50)
swing_high = ta.pivothigh(high, swing_length, swing_length)
swing_low = ta.pivotlow(low, swing_length, swing_length)
var swing_high_vals = array.new_float(5,0.0)
var swing_low_vals = array.new_float(5,0.0)
var swing_high_bn = array.new_int(5,0)
var swing_low_bn = array.new_int(5,0)
var supply_boxes = array.new_box(history_keep, na)
var demand_boxes = array.new_box(history_keep, na)
var supply_poi = array.new_box(history_keep, na)
var demand_poi = array.new_box(history_keep, na)
var bos_supply = array.new_box(5, na)
var bos_demand = array.new_box(5, na)
// NEW SWING HIGH
if not na(swing_high)
f_add_pop(swing_high_vals, swing_high)
f_add_pop(swing_high_bn, bar_index )
if show_labels
f_draw_swing_label(swing_high_vals,1)
f_create_box(swing_high_vals, swing_high_bn, supply_boxes, supply_poi, 1, atr)
// NEW SWING LOW
if not na(swing_low)
f_add_pop(swing_low_vals, swing_low)
f_add_pop(swing_low_bn, bar_index )
if show_labels
f_draw_swing_label(swing_low_vals,-1)
f_create_box(swing_low_vals, swing_low_bn, demand_boxes, demand_poi, -1, atr)
f_to_bos(supply_boxes, bos_supply, supply_poi, 1)
f_to_bos(demand_boxes, bos_demand, demand_poi, -1)
f_extend(supply_boxes)
f_extend(demand_boxes)
//@version=6
length = input.int(9, minval=1)
src = input(close, title="Source")
e1 = ta.ema(src, length)
e2 = ta.ema(e1, length)
dema = 2 * e1 - e2
plot(dema, "DEMA", color=#43A047)
Crypto Breakout Buy/Sell Sequence
⚙️ Components & Sequence Multiple Timeframe (What It Does)
1. Bollinger Bands – Form the foundation by measuring volatility and creating the dynamic range where squeezes and breakouts occur.
2. Squeeze Dots – Show when price compresses inside the bands, signaling reduced volatility before expansion.
3. Breakout Event (Brk Dot) – Fires when price expands beyond the squeeze zone, confirming volatility expansion. (This paints Intra, before candle close)
4. Buy Signal – Confirms entry after a breakout is validated. (This paints at candle close)
5. Pump Signal – Flags sudden surges that extend sharply from the bands, often linked to strong inflows.
6. Momentum Stream – Tracks the strength of movement following the breakout, from continuation (🟢) to slowing (🟡) to exhaustion (🔴). (Resets at Pump Signal)
7. Overbought Indicator – Confirms when momentum has reached overheated conditions, often aligning with band extremes.
8. Sell Signal – Prints when exhaustion/reversal conditions are met, closing the trade cycle.
The Crypto Breakout Buy/Sell Sequence is a no-repaint event indicator that maps a full trade cycle using Bollinger-band-based volatility states: Bollinger Bands → Squeeze → Breakout → Buy → Pump → Momentum → Top Test → Overbought → Sell. Each stage is rule-based and designed to be read on standard candlesticks.
How It Works (System Logic)
Volatility framework: Bollinger Bands define dynamic range and compression/expansion.
Initiation: Squeeze → Breakout confirms expansion; Buy validates participation after expansion begins.
Management: Pump highlights unusual acceleration; Momentum stream tracks continuation → slowing → exhaustion.
Exhaustion/Exit: Top Testing + Overbought build the exhaustion case; Sell marks the sequence end.
How To Use (Quick Guide)
Wait for Squeeze → Breakout → Buy to establish a structured start.
Manage with Momentum:
🟢 continuation, 🟡 slowing, 🔴 exhaustion pressure.
Monitor extremes: Top Testing and/or Overbought = tighten risk.
Exit on Sell or on your risk rules when exhaustion builds.
Limitations & Good Practice
Signals reflect price/volatility behavior, not certainty.
Strong trends can remain extended; Overbought/Top Test ≠ instant reversal.
Always confirm with your own risk rules, position sizing, and market context.
Initial public release: integrated Squeeze/Breakout/Buy → Momentum → Exhaustion → Sell cycle; improved label clarity; cleaned defaults.
Disclaimer
For educational purposes only. Not financial advice. Past performance does not guarantee future results. Test before live use.
Thank You
Margyntrade - Indicator V1Margyntrade is an automatic support-resistance indicator. Calculations are instantaneous and do not reflect past candlesticks. A separate support-resistance point is determined for each currency pair.
Autoback Grid Lab [trade_lexx]Autoback Grid Lab: Your personal laboratory for optimizing grid strategies.
Introduction
First of all, it is important to understand that Autoback Grid Lab is a powerful professional tool for backtesting and optimization, created specifically for traders using both grid strategies and regular take profit with stop loss.
The main purpose of this script is to save you weeks and months of manual testing and parameter selection. Instead of manually testing one combination of settings after another, Autoback Grid Lab automatically tests thousands of unique strategies on historical data, providing you with a comprehensive report on the most profitable and, more importantly, sustainable ones.
If you want to find mathematically sound, most effective settings for your grid strategy on a specific asset and timeframe, then this tool was created for you.
Key Features
My tool has functionality that transforms the process of finding the perfect strategy from a routine into an exciting exploration.
🧪 Mass testing of thousands of combinations
The script is able to systematically generate and run a huge number of unique combinations of parameters through the built-in simulator. You set the ranges, and the indicator does all the work, testing all possible options for the following grid settings:
* Number of safety orders (SO Count)
* Grid step (SO Step)
* Step Multiplier (SO Multiplier) for building nonlinear grids
* Martingale for controlling the volume of subsequent orders
* Take Profit (%)
* Stop Loss (%), with the possibility of calculating both from the entry point and from the dynamic breakeven line
* The volume of the base order (Volume BO) as a percentage of the deposit
🏆 Unique `FinalScore` rating system
Sorting strategies by net profit alone is a direct path to self—deception and choosing strategies that are "tailored" to history and will inevitably fail in real trading. To solve this problem, we have developed FinalScore, a comprehensive assessment of the sustainability and quality of the strategy.
How does it work?
FinalScore analyzes each combination not one by one, but by nine key performance metrics at once, including Net Profit, Drawdown, Profit Factor, WinRate, Sharpe coefficients, Sortino, Squid and Omega. Each of these indicators is normalized, that is, reduced to a single scale. Then, to test the strategy for strength, the system performs 30 iterations, each time assigning random weights to these 9 metrics. A strategy gets a high FinalScore only if it shows consistently high results under different evaluation criteria. This proves her reliability and reduces the likelihood that her success was an accident.
📈 Realistic backtesting engine
The test results are meaningless if they do not take into account the actual trading conditions. Our simulator simulates real trading as accurately as possible, taking into account:
* Leverage: Calculation of the required margin to open and hold positions.
* Commission: A percentage commission is charged each time an order is opened and closed.
* Slippage: The order execution price is adjusted by a set percentage to simulate real market conditions.
* Liquidation model: This is one of the most important functions. The script continuously monitors the equity of the account (capital + unrealized P&L). If equity falls below the level of the supporting margin (calculated from the current value of the position), the simulator forcibly closes the position, as it would happen on a real exchange. This eliminates unrealistic scenarios where the strategy survives after a huge drawdown.
🔌 Integration with external signals
The indicator operates in two modes:
1. `No Signal': Standard mode. The trading cycle starts immediately as soon as the previous one has been closed. Ideal for testing the "pure" mechanics of the grid.
2. `External Signal`: In this mode, a new trading cycle will start only when a signal is received from an external source. You can connect any other indicator (such as the RSI, MACD, or your own strategy) to the script and use it as a trigger to log in. This allows you to combine the power of a grid strategy with your own entry points.
📊 Interactive and informative results panel
Upon completion of the calculations, a detailed table with the TOP N best strategies appears on the screen, sorted according to your chosen criterion. For each strategy in the rating, you will see not only the key metrics (Profit, Drawdown, duration of transactions), but also all the parameters that led to this result. You can immediately take these settings and apply them in your trading.
Application Options: How To Solve Your Problems
Autoback Grid Lab is a flexible tool that can be adapted to solve various tasks, from complete grid optimization to fine—tuning existing strategies. Here are some key scenarios for its use:
1. Complete Optimization Of The Grid Strategy
This is the basic and most powerful mode of use. You can find the most efficient grid configuration for any asset from scratch.
* How to use: Set wide ranges for all key grid parameters ('SO Count`, SO Step, SO Multiplier, Martingale, TP, etc.).
* In the `No Signal` mode: You will find the most stable grid configuration that works as an independent, constantly active strategy, regardless of which-or entrance indicators.
* In the `External Signal` mode: You can connect your favorite indicator for input (for example, RSI, MACD or a complex author's script) and find the optimal grid parameters that best complement your input signals. This allows you to turn a simple signaling strategy into a full-fledged grid system.
2. Selecting the Optimal Take Profit and Stop Loss for Your Strategy
Do you already have an entry strategy, but you are not sure where it is best to put Take Profit and Stop Loss? Autoback Grid Lab can solve this problem as well.
* How to use:
1. Disable optimization of all grid parameters (uncheck SO Count, SO Step, Martingale, etc.). Set the Min value for SO Count to 0.
2. Set the ranges for iteration only for 'Take Profit` and `Stop Loss'.
3. Turn on the External Signal mode and connect your indicator with input signals.
* Result: The script will run your historical entry signals with hundreds of different TP and SL combinations and show you which stop order levels bring maximum profit with minimal risk specifically for your entry points.
3. Building a Secure Network with Risk Management
Many traders are afraid of grid strategies because of the risk of large drawdowns. With the help of the optimizer, you can purposefully find the parameters for such a grid, which includes mandatory risk management through Stop Loss.
* How to use: Enable and set the range for Stop Loss, along with other grid parameters. Don't forget to test both types of SL calculations (`From entry point` and `From breakeven line`) to determine which one works more efficiently.
* Result: You will find balanced strategies in which the grid parameters (number of orders, martingale) and the Stop Loss level are selected in such a way as to maximize profits without going beyond the acceptable risk level for you.
How To Use The Indicator (Step-By-Step Guide)
Working with the Autoback Grid Lab is a sequential process consisting of four main steps: from initial setup to analysis of the finished results. Follow this guide to get the most out of the tool.
Step 1: Initial Setup
1. Add the indicator to the chart of your chosen asset and timeframe.
2. Open the script settings. The first thing you should pay attention to is the ⚙️ Optimization Settings ⚙️ group.
3. Set the `Bars Count'. This parameter determines how much historical data will be used for testing.
* Important: The more bars you specify, the more statistically reliable the backtest results will be. We recommend using the maximum available value (25,000) to test strategies at different market phases.
* Consider: The indicator performs all calculations on the last historical bar. After applying the TradingView settings, it will take some time to load all the specified bars. The results table will appear only after the data is fully loaded. Don't worry if it doesn't appear instantly. And if an error occurs, simply switch the number of combinations to 990 and back to 1000 until the table appears.
Step 2: Optimization Configuration
At this stage, you define the "universe" of parameters that our algorithm will explore.
1. Set the search ranges (🛠 Optimization Parameters 🛠 group).
For each grid parameter that you want to optimize (for example, SO Count or `Take Profit'), you must specify three values:
* Min: The minimum value of the range.
* Max: The maximum value of the range.
* Step: The step with which the values from Min to Max will be traversed.
*Example:* If you set Min=5, Max=10, and Step=1 for SO Count, the script will test strategies with 5, 6, 7, 8, 9, and 10 safety orders.
* Tip for users: To get the first results quickly, start with a larger step (for example, TP from 0.5% to 2.5% in 0.5 increments instead of 0.1). After you identify the most promising areas, you can perform a deeper analysis by expanding the ranges around these values.
2. Set Up Money Management (Group `💰 Money Management Settings 💰`).
Fill in these fields with the values that best match your actual trading conditions. This is critically important for obtaining reliable results.
* Capital: Your initial deposit.
* Leverage: Leverage.
* Commission (%): Your trading commission as a percentage.
* Slippage (%): Expected slippage.
* Liquidation Level (%): The level of the supporting margin (MMR in %). For example, for Binance Futures, this value is usually between 0.4% and 2.5%, depending on the asset and position size. Specify this value for your exchange.
3. Select the Sorting Criterion and the Direction (Group `⚙️ Optimization Settings ⚙️').
* `Sort by': Specify the main criteria by which the best strategies will be selected and sorted. I strongly recommend using finalScore to find the most balanced and sustainable strategies.
* `Direction': Choose which trades to test: Long, Short or Both.
Step 3: Start Testing and Work with "Parts"
The total number of unique combinations generated based on your ranges can reach tens of millions. TradingView has technical limitations on the number of calculations that the script can perform at a time. To get around this, I implemented a "Parts" system.
1. What are `Part` and `Combinations in Part'?
* `Combinations in Part': This is the number of backtests that the script performs in one run (1000 by default).
* `Part`: This is the number of the "portion" of combinations that you want to test.
2. How does it work in practice?
* After you have everything set up, leave Part:1 and wait for the results table to appear. You will see the TOP N best strategies from the first thousand tested.
* Analyze them. Then, to check the next thousand combinations, just change the Part to 2 in the settings and click OK. The script will run a test for the next batch.
* Repeat this process by increasing the Part number (`3`, 4, 5...), until you reach the last available part.
* Where can I see the total number of parts? In the information row below the results table, you will find Total parts. This will help you figure out how many more tests are left to run.
Step 4: Analyze the Results in the Table
The results table is your main decision—making tool. It displays the best strategies found, sorted by the criteria you have chosen.
1. Study the performance metrics:
* Rating: Position in the rating.
* Profit %: Net profit as a percentage of the initial capital.
* Drawdown%: The maximum drawdown of the deposit for the entire test period.
* Max Length: The maximum duration of one transaction in days, hours and minutes.
* Trades: The total number of completed trades.
2. Examine the winning parameters:
* To the right of the performance metrics are columns showing the exact settings that led to this result ('SO Count`, SO Step, TP (%), etc.).
3. How to choose the best strategy?
* Don't chase after the maximum profit! The strategy with the highest profit often has the highest drawdown, which makes it extremely risky.
* Seek a balance. The ideal strategy is a compromise between high profitability, low drawdown (Drawdown) and the maximum length of trades acceptable to you (Max Length).
* finalScore was created to find this balance. Trust him — he often highlights not the most profitable, but the most stable and reliable options.
Detailed Description Of The Settings
This section serves as a complete reference for each parameter available in the script settings. The parameters are grouped in the same way as in the indicator interface for your convenience.
Group: ⚙️ Optimization Settings ⚙️
The main parameters governing the testing process are collected here.
* `Enable Optimizer': The main switch. Activates or deactivates all backtesting functionality.
* `Direction': Determines which way trades will be opened during the simulation.
* Long: Shopping only.
* Short: Sales only.
* Both: Testing in both directions. Important: This mode only works in conjunction with an External Signal, as the script needs an external signal to determine the direction for each specific transaction.
* `Signal Mode`: Controls the conditions for starting a new trading cycle (opening a base order).
* No Signal: A new cycle starts immediately after the previous one is completed. This mode is used to test "pure" grid mechanics without reference to market conditions.
* External Signal: A new cycle begins only when a signal is received from an external indicator connected via the Signal field.
* `Signal': A field for connecting an external signal source (works only in the `External Signal` mode). You can select any other indicator on the chart.
* For Long** trades, the signal is considered received if the value of the external indicator ** is greater than 0.
* For Short** trades, the signal is considered received if the value of the external indicator ** is less than 0.
* `Bars Count': Sets the depth of the history in the bars for the backtest. The maximum value (25000) provides the most reliable results.
* `Sort by`: A key criterion for selecting and ranking the best strategies in the final table.
* FinalScore: Recommended mode. A comprehensive assessment that takes into account 9 metrics to find the most balanced and sustainable strategies.
* Profit: Sort by net profit.
* Drawdown: Sort by minimum drawdown.
* Max Length: Sort by the minimum length of the longest transaction.
* `Combinations Count': Indicates how many of the best strategies (from 1 to 50) will be displayed in the results table.
* `Close last trade`: If this option is enabled, any active trade will be forcibly closed at the closing price of the last historical bar. For grid strategies, it is recommended to always enable this option in order to get the correct calculation of the final profit and eliminate grid strategies that have been stuck for a long time.
Group: 💰 Money Management Settings 💰
The parameters in this group determine the financial conditions of the simulation. Specify values that are as close as possible to your actual values in order to get reliable results.
* `Capital': The initial deposit amount for the simulation.
* `Leverage`: The leverage used to calculate the margin.
* `Slippage` (%): Simulates the difference between the expected and actual order execution price. The specified percentage will be applied to each transaction.
* `Commission` (%): The trading commission of your exchange as a percentage. It is charged at the execution of each order (both at opening and closing).
* `Liquidation Level' (%): Maintenance Margin Ratio. This is a critical parameter for a realistic test. Liquidation in the simulator occurs if the Equity of the account (Capital + Unrealized P&L) falls below the level of the supporting margin.
Group: 🛠 Optimization Parameters 🛠
This is the "heart" of the optimizer, where you set ranges for iterating through the grid parameters.
* `Part`: The portion number of the combinations to be tested. Start with 1, and then increment (`2`, 3, ...) sequentially to check all generated strategies.
* `Combinations in Part': The number of backtests performed at a time (in one "Part"). Increasing the value may speed up the process, but it may cause the script to error due to platform limitations. If an error occurs, it is recommended to switch to the step below and back.
Three fields are available for each of the following parameters (`SO Count`, SO Step, SO Multiplier, etc.):
* `Min`: Minimum value for testing.
* `Max': The maximum value for testing.
* `Step`: The step with which the values in the range from Min to Max will be iterated over.
There is also a checkbox for each parameter. If it is enabled, the parameter will be optimized in the specified range. If disabled, only one value specified in the Min field will be used for all tests.
* 'Stop Loss': In addition to the standard settings Min, Max, Step, it has an additional parameter:
* `Type`: Defines how the stop loss price is calculated.
* From entry point: The SL level is calculated once from the entry price (base order price).
* From breakeven line: The SL level is dynamically recalculated from the average position price after each new safety order is executed.
Group: ⚡️Filters⚡️
Filters allow you to filter out those results from the final table that do not meet your minimum requirements.
For each filter (`Max Profit`, Min Drawdown, `Min Trade Length`), you can:
1. Turn it on or off using the checkbox.
2. Select the comparison condition: Greater (More) or Less (Less).
3. Set a threshold value.
*Example:* If you set Less and 20 for the Min Drawdown filter, only those strategies with a maximum drawdown of less than 20% will be included in the final table.
Group: 🎨 Visual Settings 🎨
Here you can customize the appearance of the results table.
* `Position': Selects the position of the table on the screen (for example, Bottom Left — bottom left).
* `Font Size': The size of the text in the table.
* `Header Background / Data Background`: Background colors for the header and data cells.
* `Header Font Color / Data Font Color`: Text colors for the header and data cells.
Important Notes and Limitations
So that you can use the Autoback Grid Lab as efficiently and consciously as possible, please familiarize yourself with the following key features of its work.
1. It is a Tool for Analysis, not for Signals
It is extremely important to understand that this script does not generate trading signals in real time. Its sole purpose is to conduct in—depth research (**backtesting**) on historical data.
* The results you see in the table are a report on how a particular strategy would have worked in the past.
* The script does not provide alerts and does not draw entry/exit points on the chart for the current market situation.
* Your task is to take the best sets of parameters found during optimization and use them in your real trading, for example, when setting up a trading bot or in a manual trading system.
2. Features Of Calculations (This is not a "Repainting")
You will notice that the results table appears and is updated only once — when all historical bars on the chart are loaded. It does not change in real time with each tick of the price.
This is correct and intentional behavior.:
* To test thousands, and sometimes millions of combinations, the script needs to perform a huge amount of calculations. In the Pine Script™ environment, it is technically possible to do this only once, at the very last bar in history.
* The script does not show false historical signals, which then disappear or change. It provides a static report on the results of the simulation, which remains unchanged for a specific historical period.
3. Past Results do not Guarantee Future Results.
This is the golden rule of trading, and it fully applies to the results of backtesting. Successful strategy performance in the past is not a guarantee that it will be as profitable in the future. Market conditions, volatility and trends are constantly changing.
My tool, especially when sorting by finalScore, is aimed at finding statistically stable and reliable strategies to increase the likelihood of their success in the future. However, it is a tool for managing probabilities, not a crystal ball for predicting the future. Always use proper risk management.
4. Dependence on the Quality and Depth of the Story
The reliability of the results directly depends on the quantity and quality of the historical data on which the test was conducted.
* Always strive to use the maximum number of bars available (`Bars Count: 25,000`) so that your strategy is tested on different market cycles (rise, fall, flat).
* The results obtained on data for one month may differ dramatically from the results obtained on data for two years. The longer the testing period, the higher the confidence in the parameters found.
Conclusion
The Autoback Grid Lab is your personal research laboratory, designed to replace intuitive guesses and endless manual selection of settings with a systematic, data—driven approach. Experiment with different assets, timeframes, and settings ranges to find the unique combinations that best suit your trading style.
Signal Hunter Pro - GKDXLSignal Hunter Pro - GKDXL combines four powerful technical indicators with trend strength filtering and volume confirmation to generate reliable BUY/SELL signals. This indicator is perfect for traders who want a systematic approach to market analysis without the noise of conflicting signals.
🔧 Core Features
📈 Multi-Indicator Signal System
Moving Averages: EMA 20, EMA 50, and SMA 200 for trend analysis
Bollinger Bands: Dynamic support/resistance with price momentum detection
RSI: Enhanced RSI logic with smoothing and multi-zone analysis
MACD: Traditional MACD with signal line crossovers and zero-line analysis
🎛️ Advanced Filtering System
ADX Trend Strength Filter: Only signals when trend strength exceeds threshold
Volume Confirmation: Ensures signals occur with adequate volume participation
Multi-Timeframe Logic: Works on any timeframe from 1m to 1D and beyond
🚨 Intelligent Signal Generation
Requires 3 out of 4 indicators to align for signal confirmation
Separate bullish and bearish signal conditions
Real-time signal strength scoring (1/4 to 4/4)
Built-in alert system for automated notifications
⚙️ Customizable Parameters
📊 Technical Settings
Moving Averages: Adjustable EMA and SMA periods
Bollinger Bands: Configurable length and multiplier
RSI: Customizable length, smoothing, and overbought/oversold levels
MACD: Flexible fast, slow, and signal line settings
🎯 Risk Management
Risk Percentage: Set your risk per trade (0.1% to 10%)
Reward Ratio: Configure risk-to-reward ratios (1:1 to 1:5)
ADX Threshold: Control minimum trend strength requirements
🖥️ Display Options
Indicator Visibility: Toggle individual indicators on/off
Information Table: Optional detailed status table (off by default)
Volume Analysis: Real-time volume vs. average comparison
🎨 Visual Elements
📈 Chart Indicators
EMA Lines: Blue (20) and Orange (50) exponential moving averages
SMA 200: Gray long-term trend line
Bollinger Bands: Upper/lower bands with semi-transparent fill
Clean Interface: Minimal visual clutter for clear analysis
📋 Information Table (Optional)
Real-time indicator status with ✓/✗/— symbols
Current signal strength and direction
ADX trend strength measurement
Volume confirmation status
No-signal reasons when conditions aren't met
🔔 Alert System
📢 Three Alert Types
BUY Signal: Triggered when 3+ indicators align bullishly
SELL Signal: Triggered when 3+ indicators align bearishly
General Alert: Any signal detection for broader monitoring
📱 Alert Messages
Clear, actionable alert text
Includes indicator name for easy identification
Compatible with webhook integrations
🎯 How It Works
📊 Signal Logic
Indicator Assessment: Each of the 4 indicators is evaluated as Bullish/Bearish/Neutral
Consensus Building: Counts aligned indicators (minimum 3 required)
Filter Application: Applies trend strength and volume filters
Signal Generation: Generates BUY/SELL when all conditions are met
🔍 Indicator States
Moving Averages: Price position, EMA alignment, and crossovers
Bollinger Bands: Price relative to bands and momentum shifts
RSI: Multi-zone analysis with momentum and crossover detection
MACD: Signal line crossovers and zero-line positioning
🎉 Why Choose Signal Hunter Pro?
✅ Multi-Indicator Confirmation reduces false signals
✅ Trend Strength Filtering improves win rate
✅ Volume Confirmation ensures market participation
✅ Customizable Parameters adapt to any trading style
✅ Clean Visual Design doesn't clutter your charts
✅ Professional Alert System for automated trading
✅ No Repainting - reliable historical signals
✅ Works on All Timeframes from scalping to investing
OB - MentorXOB - MentorX
Advanced OrderBlock Detection with Smart Alerts
🎯 Key Features:
- Smart OrderBlock Detection: Identifies bullish/bearish OrderBlocks using fractal breaks
- Multi-Timeframe Alerts: Get instant notifications on 1m, 3m, 5m, 15m, 30m, 1h, 4h
- Strength Filter: Only alerts on significant OrderBlocks (ATR-based strength)
- Visual Confirmation: Alerts sync perfectly with drawn OrderBlock lines
- Customizable Settings: Adjust line styles, colors, and alert preferences
🔔 Alert System:
How It Works:
- OrderBlock detected → Lines drawn → Alert triggered
- No false signals - only alerts when OrderBlock is visible on chart
- Strength filter prevents noise alerts on weak OrderBlocks
Alert Examples:
🔴 Bearish OrderBlock Created
Timeframe: 15m
High: 1.2345
Low: 1.2300
Strength: 2.45% ATR
🟢 Bullish OrderBlock Created
Timeframe: 1h
High: 1.2400
Low: 1.2350
Strength: 3.20% ATR
⚙️ Setup:
1. Enable "Enable Alerts" in settings
2. Select desired timeframes (1m, 3m, 5m, 15m, 30m, 1h, 4h)
3. Adjust "Minimum OB Strength" (0.1-5.0% ATR)
4. Create TradingView alert with "Any alert() function call"
🎨 Customization:
- Line styles: Solid, Dashed, Dotted
- Colors: Customize bearish/bullish line colors
- Fractal filters: 3-bar or 5-bar fractals
- FVG filtering: Optional Fair Value Gap confirmation
📊 Perfect for:
- Scalping
- Swing trading
- Multi-timeframe analysis
- Professional trading strategies
Perfect for scalping, swing trading, and multi-timeframe analysis!
Daily Start Vertical Lines (≤1H)This indicator automatically plots vertical lines at the start of each new trading day, based on the selected chart’s timezone. Unlike the default daily session boundaries (which often start at 17:00 New York time), this tool ensures that lines are drawn precisely at 00:00 midnight of the chart’s timezone.
🔹 Features:
Plots a vertical line at every new day start (midnight).
Fully time-zone aware → lines adjust automatically when you change the chart’s timezone.
Customizable line style, width, and color.
Option to limit plotting to specific timeframes (e.g., show only on ≤ 1H charts).
Lightweight & optimized (does not clutter higher-timeframe charts).
🔹 Use Cases:
Quickly identify daily boundaries for intraday analysis.
Helps scalpers and day traders align trades with new day opens.
Useful for strategies that depend on daily session resets.
This tool is especially helpful for traders who want clarity when working across different time zones.
Multi-Timeframe Options Strategy with Dynamic Scoring System## Multi-Timeframe Options Strategy with Dynamic Scoring System
### Overview
This indicator combines 12 technical analysis tools using a proprietary 30-point scoring system to generate options trading signals (CALL/PUT). It's designed for traders seeking confluence-based entries with multiple confirmation layers.
### How the Scoring System Works
The indicator evaluates market conditions across three categories:
**Trend Analysis (9 points maximum):**
- EMA Alignment (9, 21, 50, 200): Checks if moving averages are properly stacked (3 points)
- ADX Trend Strength: Confirms trend momentum above 25 threshold (3 points)
- Higher Timeframe Confirmation: Validates signals against larger timeframe trend (3 points)
**Momentum Indicators (7 points maximum):**
- RSI Position & Direction: Optimal zones 40-65 for buys, 35-60 for sells (2 points)
- MACD Signal Line Cross: Momentum confirmation (2 points)
- Stochastic Oscillator: Overbought/oversold conditions (2 points)
- Bollinger Band Position: Price relative to middle band (1 point)
**Market Quality Filters (4 points maximum):**
- Volume Confirmation: 1.5x average volume requirement (2 points)
- VWAP Position: Trend alignment check (1 point)
- ATR Volatility: Ensures adequate price movement (1 point)
### Key Features
**1. Fair Value Gaps (FVG)**
- Identifies price inefficiencies between candles
- Bullish FVG: Current low > high (potential support)
- Bearish FVG: Current high < low (potential resistance)
- Visual representation with colored boxes on chart
**2. Three Operating Modes**
- Normal Mode: Minimum 10 points - balanced signal frequency
- High Mode: Minimum 15 points - fewer but stronger signals
- Ultra Mode: Minimum 20 points - only highest quality setups
**3. Protection Mechanisms**
- Bollinger Band squeeze detection avoids ranging markets
- Prevents conflicting signals (no simultaneous CALL/PUT)
- 5-bar minimum cooldown between signals
- Filters extreme RSI readings (>75 or <25)
**4. Risk Management**
- Three profit targets: 0.5%, 1%, 1.5%
- Stop loss: 0.5% or ATR-based
- Visual target lines with entry/exit levels
### How Components Work Together
The indicator creates a comprehensive market analysis by combining:
- **EMAs** provide the trend structure framework
- **Oscillators** (RSI, Stochastic) identify optimal entry timing
- **ADX** confirms trend strength to filter weak signals
- **Volume** validates institutional participation
- **Higher timeframe** acts as a directional filter
Each component contributes points to either bullish or bearish scoring. Signals only generate when one direction significantly outweighs the other and meets minimum thresholds.
### Usage Instructions
1. **Select Mode**: Choose Normal/High/Ultra based on your trading style
2. **Monitor Dashboard**: Check real-time scoring and market conditions
3. **Wait for Signals**: Main BUY/SELL labels appear when criteria met
4. **Follow Targets**: Use automated TP and SL levels for risk management
5. **Candle Labels**: Optional CALL/PUT labels show building momentum
### Dashboard Information
The dashboard displays:
- Current trend direction and HTF confirmation
- ADX strength and direction
- RSI status with divergence detection
- MACD momentum state
- Volume multiplier
- Market condition (trending/ranging)
- Live scoring for both directions
### Important Notes
- This is a technical analysis tool, not financial advice
- Past performance does not guarantee future results
- Always use proper risk management
- Test thoroughly on demo before live trading
### Originality
This indicator's unique value comes from:
1. The 30-point weighted scoring system that prioritizes different factors
2. Integration of Fair Value Gaps with traditional indicators
3. Multi-mode operation allowing traders to adjust signal frequency
4. Higher timeframe validation system
5. Comprehensive filtering to reduce false signals
The combination creates a systematic approach to options trading that goes beyond simple indicator mashups by providing clear, scored reasoning for each signal.
---
### Updates and Support
For questions or suggestions, please comment below. The indicator will be updated based on community feedback while maintaining compliance with all platform rules.
Premium Discount Range ProPremium Discount Range Pro
Short Description / Summary:
An advanced, all-in-one toolkit for traders who utilize Smart Money Concepts (SMC) and institutional price action analysis. The "Premium Discount Range Pro" automatically identifies the current higher timeframe (HTF) dealing range, visualizes the Premium, Discount, and Equilibrium zones, and provides a multi-timeframe dashboard to see where the current price stands across the market.
This indicator is built to streamline your analysis, helping you to quickly identify high-probability areas for entries by adhering to the core institutional principle: look for buys in a discount and sells in a premium.
Key Features:
Automatic HTF Range Detection: The indicator automatically detects the most recent significant swing high and swing low on your chosen Higher Timeframe (e.g., 4H, Daily) to define the current dealing range.
Premium & Discount Zone Visualization: Clear, color-coded boxes are drawn to represent the Premium (sell zone), Discount (buy zone), and the crucial Equilibrium (50%) level. These boxes extend into the future so you can anticipate future price action.
Customizable Fibonacci Levels: Plot key Fibonacci retracement levels within the defined range. You can customize which levels you want to see (e.g., 0.62, 0.79, etc.) to pinpoint specific points of interest.
Multi-Timeframe Confluence Table: A powerful, on-screen dashboard that shows you the status of the current price relative to the P&D zones on up to 5 different timeframes simultaneously. Instantly see if the price is in a Premium or Discount zone on the 15m, 1H, 4H, and Daily charts at a single glance.
Built-in Alerts: Never miss an opportunity. Set up alerts to be notified the moment the price enters the Premium or Discount zone on your chosen HTF, allowing you to prepare for potential trade setups.
Fully Customizable: Take full control over the indicator's appearance. Adjust pivot lookback periods, colors of the zones and Fibs, and select which timeframes appear in your dashboard to match your personal trading plan.
Disclaimer
This indicator is provided for educational and informational purposes only and should not be considered as financial or investment advice. Trading and investing in financial markets, including but not limited to stocks, forex, and cryptocurrencies, involves a substantial risk of loss and is not suitable for every investor.
Beta Zones [MMT]Beta Zones
Overview
The Beta Zones indicator is a multi-timeframe analysis tool designed to identify and visualize price ranges (zones) across different timeframes on a TradingView chart. It draws boxes to represent high and low price levels for each enabled timeframe, helping traders spot key support and resistance zones, track price movements, and assess market signals relative to these zones. The indicator is highly customizable, allowing users to toggle timeframes, adjust colors, and control historical visibility.
Features
Multi-Timeframe Support : Tracks up to five user-defined timeframes (default: 15m, 1H, 4H, 1D, 1W) to display price zones.
Dynamic Price Boxes : Draws boxes on the chart to represent the high and low prices for each timeframe, updating dynamically as new bars form.
Signal Indicators : Provides directional signals (▲, ▼, →) based on the previous close relative to the current box's top and bottom.
Customizable Display : Includes options to show or hide historical boxes, adjust box colors, and configure a summary table.
Summary Table : Displays a table with timeframe status, price range, and signal information for quick reference.
Settings
Timeframes
Enable/Disable : Toggle each timeframe (e.g., 15m, 1H, 4H, 1D, 1W) to display or hide its respective zones.
Timeframe Selection : Choose custom timeframes for each of the five slots.
Color Customization : Set unique fill and border colors for each timeframe's boxes (default colors: green, blue, orange, purple, red).
Display
Max Historical Boxes : Limit the number of historical boxes per timeframe (default: 1, max: 50).
Show History : Toggle visibility of historical boxes (default: false, showing only the latest box).
Min Box Height : Ensures boxes have a minimum height in ticks (default: 1.0, currently hardcoded).
Table
Show Table : Enable or disable the summary table (default: true).
Background Color : Customize the table's background color.
Header Color : Set the color for the table's header row.
Text Color : Adjust the text color for table content.
Table Columns
Timeframe : Displays the selected timeframe (e.g., 15m, 1H).
Color : Shows the color associated with the timeframe's boxes.
Status : Indicates if the timeframe is "Active" (valid and lower than the chart's timeframe), "Invalid" (enabled but not lower), or "Disabled".
Range : Shows the price range (high - low) of the current box.
Signal : Displays ▲ (price above box), ▼ (price below box), or → (price within box) based on the previous close.
How to Use
Add to Chart : Apply the indicator to your TradingView chart.
Configure Timeframes : Enable desired timeframes and adjust their settings (e.g., 15m, 1H) to match your trading strategy.
Analyze Zones : Use the boxes to identify key price levels for support, resistance, or breakout opportunities.
Monitor Signals : Check the table's "Signal" column to gauge price direction relative to each timeframe's zone.
Customize Appearance : Adjust colors and historical box visibility to suit your preferences.
Ideal For
Swing Traders : Identify key price zones across multiple timeframes for entry/exit points.
Day Traders : Monitor short-term price movements relative to higher timeframe zones.
Technical Analysts : Combine with other indicators to confirm support/resistance levels.
Macro Pulse Dashboard [SwissAlgo]Macro Pulse Dashboard
What is it?
The Macro Pulse Dashboard is a multi-asset performance dashboard designed to give traders and investors a quick snapshot of global market conditions. The indicator tracks price and momentum across crypto, equities, sectors, commodities, bonds, and macro indicators—considering multiple timeframes—in one color-coded table with a trend indication for each asset.
Purpose
Give you a fast, single-glance read of global markets so you can gauge whether conditions are broadly risk-on or risk-off and where strength/weakness clusters across markets.
Who it’s for
Traders and investors who want a clear, beginner-friendly macro overview to frame ideas and risk, without digging through multiple charts.
Why this may help you
Gives context fast : before focusing on one chart, you see the broader environment. This can help avoid trades that fight the macro tide.
Reduces noise : instead of jumping between watchlists and windows, you get a single, consistent view each day.
Improves decision quality : aligning ideas with the table’s short-term and medium-term bias can assist with timing and position sizing.
Builds routine : spend 30 seconds at the open scanning for agreement or conflict across crypto, equities, sectors, commodities, bonds, and macro gauges. If signals are mixed, consider waiting or sizing down; if they align, proceed with your plan.
Beginner-friendly : clear green/red percentages and a simple Trend icon make it easy to interpret without advanced indicators. The trend is determined using a simplified rule in this version.
What’s included
Crypto (BTC/ETH, dominance, total/alt caps), equity indices (US futures, Europe 50, FTSE, HSI, Nikkei, Nifty), US sectors (XLK, SOXX, ARKK, XLY, XLV), commodities (Gold, Silver, WTI, Nat Gas), bonds/credit ETFs (SHY, IEF, TLT, LQD, HYG, AGG, EMB), and macro gauges (US10Y, DXY, EURUSD, VIX).
Columns
Price/Value, % change over 1D, 1W, 2W, 1M, YTD, plus a simple trend glyph (▲ up, ▼ down, ◆ mixed).
Trend logic
The Trend icon is a simple overview (not a signal): ▲ if both short-term (1W) and 1M changes are positive, ▼ if both are negative, ◆ otherwise.
How numbers are computed
All changes use the last completed daily close.
1D = change since the prior daily close.
1W/2W/1M: crypto uses 7/14/30 calendar days; other assets use 5/10/21 trading sessions.
YTD compares to the first daily close of the year.
Prices show a $ prefix where applicable and are compacted (M/B/T).
Repainting
The table uses daily data with lookahead_off and updates only after the daily bar completes. It does not repaint intrabar.
Settings
Anchor (top-left) and Table Size (Small/Normal/Large).
Notes
Informational/educational tool only. Not trading advice. No buy/sell signals or alerts are generated.
Symbols depend on TradingView data availability; if a symbol isn’t accessible on your plan, that row will show “—”.
ICT OTE (Optimal Trade Entry) IndicatorWhat This Indicator Does:
This is an ultra-clean ICT (Inner Circle Trader) indicator that shows only ONE high-probability signal at a time when multiple confluences perfectly align. It eliminates chart clutter and focuses on the absolute best trading opportunities.
How It Takes Positions:
🔍 Signal Requirements (ALL Must Align):
Market Structure Break - Significant swing high/low break with volume confirmation
Fair Value Gap (FVG) - Large price imbalance/gap (minimum 0.5% size)
Order Block - Institutional supply/demand zone from recent rejection candle
OTE Sweet Spot - Price retraces to 70.5% Fibonacci level (optimal entry zone)
Volume Confirmation - 50% above 50-bar average volume
Rejection Candle - Proper candle formation showing rejection at the level
📊 Position Entry Logic:
BUY Signal Triggers When:
Price breaks above a significant swing high (bullish structure break)
Price retraces back down into a Fair Value Gap or Order Block
Retracement reaches exactly the 70.5% optimal level
Volume spike confirms institutional interest
Rejection candle forms (closes higher than it opened during retracement)
No other signal has been active in the last 50 bars (cooldown system)
SELL Signal Triggers When:
Price breaks below a significant swing low (bearish structure break)
Price retraces back up into a Fair Value Gap or Order Block
Retracement reaches exactly the 70.5% optimal level
Volume spike confirms institutional interest
Rejection candle forms (closes lower than it opened during retracement)
No other signal has been active in the last 50 bars (cooldown system)
⚡ Key Features:
Ultra-Strict Filtering: Only 2-4 signals per month on average (quality over quantity)
One Signal Rule: Only one active signal at a time - no confusion
50-Bar Cooldown: Prevents signal spam and overtrading
Perfect Confluence: Requires 3+ ICT concepts to align simultaneously
Clean Chart: No boxes, lines, or visual clutter - just clear BUY/SELL labels
🎯 Trading Strategy:
Wait for Signal: Large BUY or SELL label appears on chart
Entry: Enter immediately when signal appears (all confluences already confirmed)
Stop Loss: Place beyond the Fair Value Gap or Order Block (typically 1-2% risk)
Take Profit: Target previous swing high/low or major liquidity levels
Risk Management: Only trade when signal appears - no guessing or early entries
💡 Why It Works:
This indicator combines ICT's most powerful concepts (market structure, FVGs, order blocks, optimal retracements) into one confluence-based system. It only signals when institutional money is likely moving, giving you the highest probability entries with minimal noise.
Perfect for: Swing traders, day traders, and anyone wanting clean, high-probability ICT signals without chart clutter.
Killzones High/Low [FD] - ENGKillzones High/Low - ENG
Advanced Pine Script v5 indicator designed for ICT (Inner Circle Trader) strategies that identifies trading killzones, key support/resistance levels and midnight prices with granular controls for every element.
SETTINGS
General controls that affect all indicator elements:
Session Drawings Limit (1): Determines how many historical sessions to keep on chart for each element type. Higher values show more history but may slow performance
Timeframe Limit (30): Drawings disappear on timeframes equal or higher to avoid visual overload
Time Zone: Select reference timezone for sessions. America/New_York automatically adjusts for daylight saving, GMT options are fixed
Label Size: Controls global size of all labels (from Tiny to Huge)
Drawings Cutoff Time: Stops extension of all pivots at specified time (useful for end of trading day)
KILLZONES
Manages critical trading sessions with colored boxes and pivot lines:
General Controls
Show Boxes/Text: Enables visualization and texts in session boxes
Transparency: Controls opacity of boxes and text (0=opaque, 100=transparent)
Available Sessions
Five configurable sessions with individual controls for enabling, custom text, times and colors:
Asia (18:00-00:00): Blue by default
London (02:30-05:30): Red by default
N.Y. AM (07:00-11:30): Green by default
Lunch (11:30-13:00): Golden yellow, enabled by default
N.Y. PM (13:00-16:00): Purple by default
PDH / PDL
Manages Previous Day High and Previous Day Low levels:
Show PDH/PDL: Enables previous day's maximum/minimum
Extension: "Until Mitigation" (stops when broken) or "Most Recent Candle" (continues always)
Colors/Thickness: Visual customization of lines (dark purple by default, 1px thickness)
Labels: Shows "PDH"/"PDL" texts with customizable color (white by default)
PWH / PWL
Manages Previous Week High and Previous Week Low levels:
Show PWH/PWL: Enables previous week's maximum/minimum
Extension: Independent control of line extension
Colors/Thickness: Orange by default for both, 2px thickness
Labels: Configurable "PWH"/"PWL" texts
PMH / PML
Manages Previous Month High and Previous Month Low levels:
Show PMH/PML: Enables previous month's maximum/minimum using security()
Extension: Independent control like other systems
Colors/Thickness: Blue by default for both, 1px thickness
Labels: Customizable "PMH"/"PML" texts
MIDNIGHT PRICE LEVEL
Advanced system for multiple midnight prices:
Base Controls
Show Midnight Price: Enables line at pre-00:00 closing price (ICT strategy)
Midnight -2/-3 Days: Extends system to 2 and 3 days prior
Extension/Mitigation: "Until Mitigation" or "Most Recent Candle" with "Once" or "Multiple" mode
Customization
Separate Colors: D-1, D-2, D-3 with progressive transparency (gold by default)
Style/Thickness: Customizable lines (Solid, Dotted, Dashed)
Labels: Configurable texts (🌙1, 🌙2, 🌙3) with customizable background/text colors
Alerts: Alerts when mitigated during active killzones
KILLZONE LEVEL
Controls pivot lines and killzone labels:
Line Controls
Show Lines: Enables horizontal lines on killzone highs/lows
Break Alerts: Alerts when pivots are exceeded
Midpoints: Dashed lines at range center with stop option after mitigation
Label Offset: Moves labels ahead by 5 candles (0-20 configurable), rejoining when mitigated
Label Controls
Text Customization: Configurable labels for each session (Asia_H/L, London_H/L, etc.)
Background/Colors: Transparent or visible labels with customizable colors
Broken Labels: Additional text (❌ by default) and special colors when pivots mitigated
Extension: "Until Mitigation" or "Beyond Mitigation" with session filter ("Most Recent" or "All")
LABEL STYLES
Four dedicated sections to customize label graphic shapes:
Killzone Line Label Styles: Separate controls for killzone High/Low
PDH/PDL Label Styles: Customizable shapes for Previous Day levels
PWH/PWL Label Styles: Customizable shapes for Previous Week levels
PMH/PML Label Styles: Customizable shapes for Previous Month levels
Each section offers 15+ shape options (Arrows, Center, Circle, Square, Diamond, Triangles, Crosses, Flags, etc.)
MIDNIGHT LINES
System for vertical lines at 00:00:
Show Lines/Labels: Vertical lines with upward arrow labels
Customization: Color (gray by default), style, thickness of vertical lines
Labels: Configurable text ("00:00" by default) with customizable text color (black by default)
Label Offset: Percentage control (-10000% to +10000%) for vertical positioning
Extension: Configurable directions (None, Above, Below, Both)
Limit: Maximum number of lines maintained (4 by default, max 50)
The indicator offers granular control over every visual and functional aspect, making it possible to adapt it to any ICT trading strategy or personal setup.
Custom Sessions with Mitigation LogicThis script is for people to mark their choice of time ranges where the high and lows get extended until mitigated. There is logic involved to make the charting process and the clean up a whole lot easier.
This includes:
- 5 Custom sessions
- Custom colours
- Custom labels
- Custom time zone (for easier use)
- Auto extended lines with mitigation logic
Mitigation logic:
The highs and lows will be extended until mitigated where they will then be turned to a dotted line until the end of the day which mitigates it.
If the sessions high/low gets mitigated on the same day, it will still change to a dotted line and will stop at the end of the day.
Multi-Timeframe HalfTrendbest performing inicator with buy sell signals,good for treding in nifty50, banknifty, gold ,silver
Multi-Timeframe HalfTrendMulti-Timeframe HalfTrend is much more better foe view. After ploting 2 mtf halfTrend, you can see hourly mtf halftrend in the daily mtf halfTrend .which can help you lot off to find best tred
MFI × RSI × VWAP Multi-Timeframe Suite# MFI × RSI × VWAP Multi-Timeframe Suite - Usage Guide & Precautions
## 📊 Indicator Overview
This indicator integrates **RSI (Relative Strength Index)**, **MFI (Money Flow Index)**, and **VWAP (Volume Weighted Average Price)** for comprehensive multi-timeframe analysis. It provides high-precision trading signals through confluence analysis.
## 🎯 Primary Objectives
- **Comprehensive trend analysis across short, medium, and long-term timeframes**
- **Enhanced accuracy through multi-indicator confluence**
- **Optimized entry and exit timing**
---
## 📈 Basic Interpretation
### 1. Main Plot Lines
- **Blue Line (RSI)**: Price momentum
- **Purple Line (MFI)**: Money flow momentum
- **Orange Line (VWAP Relative)**: Relative position to VWAP (0-100 scale)
### 2. Background Color Meaning
- **Green**: All indicators aligned bullishly (buying dominance)
- **Red**: All indicators aligned bearishly (selling dominance)
- **Color Intensity**: Strength of confluence
### 3. Signal Arrows
- **🔼 Green Up Arrow**: Long signal
- **🔽 Red Down Arrow**: Short signal
- **🟠 Small Circles**: VWAP crossover signals
---
## 🎛️ Configuration Settings
### Basic Parameters
```
RSI Length: 14 (standard)
MFI Length: 14 (standard)
RSI Overbought: 70
RSI Oversold: 30
MFI Overbought: 80
MFI Oversold: 20
```
### VWAP Settings
```
VWAP Anchor: Session (use "Week" or "Month" for daily charts)
Std Dev Multiplier: 2.0 (Bollinger Band-style application)
```
### Multi-Timeframe Configuration
```
TF1: 15min (short-term)
TF2: 1hour (medium-term)
TF3: 4hour (long-term)
TF4: Daily (trend)
```
---
## 📋 Dashboard Interpretation
### Trend Strength Scores
- **+70 to +100**: 💪 Very strong uptrend
- **+30 to +69**: 🟢 Uptrend
- **-29 to +29**: ➖ Sideways/No clear direction
- **-30 to -69**: 🔴 Downtrend
- **-70 to -100**: ⚠️ Very strong downtrend
### Consensus (Overall Assessment)
Average score across all timeframes. **Absolute value ≥50** indicates strong trend.
---
## 🎯 Practical Trading Methods
### 🔵 Long Entry Conditions
1. **RSI crosses above MFI** OR **synchronized oversold exit**
2. **Price above VWAP**
3. **Multi-timeframe consensus is positive (+)**
4. **Green background (confluence present)**
### 🔴 Short Entry Conditions
1. **RSI crosses below MFI** OR **synchronized overbought exit**
2. **Price below VWAP**
3. **Multi-timeframe consensus is negative (-)**
4. **Red background (confluence present)**
### ⚡ Strongest Signals
- **All timeframes align in trend direction**
- **Consensus score ±70 or higher**
- **🚀 STRONG display**
---
## ⏰ Timeframe-Specific Applications
### Scalping (1min-5min charts)
- Focus on RSI/MFI crossovers
- Target VWAP bounces
- Require 15min+ timeframe trend filter
### Day Trading (15min-1hour charts)
- Emphasize overbought/oversold exit signals
- Follow 1hour to daily trend direction
- Confirm with confluence background color
### Swing Trading (4hour-daily charts)
- Prioritize daily+ consensus
- Use weekly VWAP for big picture
- Wait for multi-timeframe alignment
---
## 🚨 Alert Utilization
### Basic Alerts
- **Long/Short Signal**: Basic entry signals
- **Strong Consensus**: Powerful signals with multi-timeframe confluence
- **VWAP Cross**: Important support/resistance breakouts
### Alert Configuration Example
```
Long Signal → Begin monitoring as candidate
Strong Consensus + Long → Consider aggressive entry
VWAP Bullish Cross → Potential trend reversal
```
---
## ⚠️ Important Precautions & Limitations
### Avoiding False Signals
1. **Wait for multiple conditions to align simultaneously**
2. **Never trade against higher timeframe trends**
3. **Avoid major economic news releases**
4. **Exercise caution during extremely low volatility**
### Market Environment Adjustments
- **Trending Markets**: Emphasize crossover signals
- **Range-bound Markets**: Focus on overbought/oversold levels
- **High Volatility**: Strengthen filters
- **Low Volatility**: Adjust sensitivity
### Risk Management Rules
1. **Never risk more than 2% per trade**
2. **Always set stop-loss before entry**
3. **Use proper position sizing**
4. **Maintain trading journal**
---
## 🎓 Learning & Improvement Guidelines
### Backtesting Recommendations
- **Test on 6+ months of historical data**
- **Verify performance across different market conditions**
- **Adapt settings to your trading style**
### Continuous Optimization
- **Track win rate and risk-reward ratios**
- **Analyze performance by timeframe**
- **Measure impact of parameter adjustments**
---
## 🚫 Critical Don'ts
### Never Do These:
❌ **Trade during major news events** (FOMC, NFP, CPI)
❌ **Ignore higher timeframe bias**
❌ **Chase signals after they've already moved significantly**
❌ **Override risk management rules**
❌ **Trade when emotionally compromised**
### Red Flags - Stop Trading When:
⚠️ **Consensus shows conflicting signals across timeframes**
⚠️ **VWAP shows choppy, directionless movement**
⚠️ **Multiple false signals occur consecutively**
⚠️ **Market volatility exceeds 300% of normal levels**
---
## 📊 Performance Monitoring
### Daily Checklist
```
□ Check overall market sentiment
□ Verify economic calendar for news events
□ Review multi-timeframe alignment
□ Confirm proper risk management setup
□ Monitor position sizing appropriateness
```
### Weekly Review
```
□ Analyze win rate by timeframe
□ Review entry/exit execution quality
□ Assess adherence to trading rules
□ Identify pattern improvements
□ Adjust parameters if necessary
```
### Monthly Evaluation
```
□ Calculate overall profitability
□ Review maximum drawdown periods
□ Assess emotional discipline
□ Update trading plan based on results
□ Consider strategy refinements
```
---
## 🎖️ Advanced Tips for Professionals
### Multi-Monitor Setup
```
Primary Screen: Main chart with indicator
Secondary Screen: Multi-timeframe view
Third Screen: Economic calendar + news
Mobile Device: Alert notifications
```
### Professional Entry Techniques
1. **Wait for 2+ confluence factors**
2. **Confirm with volume analysis**
3. **Use limit orders near VWAP levels**
4. **Scale into positions on strong signals**
### Exit Strategy Optimization
1. **Take partial profits at key levels**
2. **Trail stops on trending moves**
3. **Exit immediately on trend reversal signals**
4. **Honor predetermined risk-reward ratios**
---
## ⚡ Quick Reference Card
### Best Practices Summary
✅ **Always check higher timeframe first**
✅ **Wait for confluence of multiple indicators**
✅ **Use proper position sizing**
✅ **Set stops before entering**
✅ **Follow your trading plan strictly**
### Signal Reliability Ranking
1. **🚀 Strong Consensus** (Highest reliability)
2. **Multi-timeframe alignment** (High reliability)
3. **VWAP + RSI/MFI confluence** (Medium-high reliability)
4. **Single timeframe signals** (Medium reliability)
5. **Isolated crossovers** (Lowest reliability)
---
## 🔧 Troubleshooting Common Issues
### If Signals Are Too Frequent:
- Increase RSI/MFI periods
- Tighten overbought/oversold levels
- Add more confluence requirements
- Use higher timeframe bias
### If Signals Are Too Rare:
- Decrease RSI/MFI periods
- Widen overbought/oversold levels
- Reduce confluence requirements
- Lower signal smoothing value
### If Accuracy Is Poor:
- Review market conditions compatibility
- Strengthen higher timeframe filters
- Improve risk management
- Consider different timeframe combinations
**Remember**: This indicator is a comprehensive analysis tool. It's **not perfect in isolation** and must be used with proper **risk management** and **market understanding**!
VWAP Range Indicator [Fixed]analys the range of week month quaterly vwap ,which show clear forcast trend