Obsidian Flux Matrix# Obsidian Flux Matrix | JackOfAllTrades
Made with my Senior Level AI Pine Script v6 coding bot for the community!
Narrative Overview
Obsidian Flux Matrix (OFM) is an open-source Pine Script v6 study that fuses social sentiment, higher timeframe trend bias, fair-value-gap detection, liquidity raids, VWAP gravitation, session profiling, and a diagnostic HUD. The layout keeps the obsidian palette so critical overlays stay readable without overwhelming a price chart.
Purpose & Scope
OFM focuses on actionable structure rather than marketing claims. It documents every driver that powers its confluence engine so reviewers understand what triggers each visual.
Core Analytical Pillars
1. Social Pulse Engine
Sentiment Webhook Feed: Accepts normalized scores (-1 to +1). Signals only arm when the EMA-smoothed value exceeds the `sentimentMin` input (0.35 by default).
Volume Confirmation: Requires local volume > 30-bar average × `volSpikeMult` (default 2.0) before sentiment flags.
EMA Cross Validation: Fast EMA 8 crossing above/below slow EMA 21 keeps momentum aligned with flow.
Momentum Alignment: Multi-timeframe momentum composite must agree (positive for longs, negative for shorts).
2. Peer Momentum Heatmap
Multi-Timeframe Blend: RSI + Stoch RSI fetched via request.security() on 1H/4H/1D by default.
Composite Scoring: Each timeframe votes +1/-1/0; totals are clamped between -3 and +3.
Intraday Readability: Configurable band thickness (1-5) so scalpers see context without losing space.
Dynamic Opacity: Stronger agreement boosts column opacity for quick bias checks.
3. Trend & Displacement Framework
Dual EMA Ribbon: Cyan/magenta ribbon highlights immediate posture.
HTF Bias: A higher-timeframe EMA (default 55 on 4H) sets macro direction.
Displacement Score: Body-to-ATR ratio (>1.4 default) detects impulses that seed FVGs or VWAP raids.
ATR Normalization: All thresholds float with volatility so the study adapts to assets and regimes.
4. Intelligent Fair Value Gap (FVG) System
Gap Detection: Three-candle logic (bullish: low > high ; bearish: high < low ) with ATR-sized minimums (0.15 × ATR default).
Overlap Prevention: Price-range checks stop redundant boxes.
Spacing Control: `fvgMinSpacing` (default 5) avoids stacking from the same impulse.
Storage Caps: Max three FVGs per side unless the user widens the limit.
Session Awareness: Kill zone filters keep taps focused on London/NY if desired.
Auto Cleanup: Boxes delete when price closes beyond their invalidation level.
5. VWAP Magnet + Liquidity Raid Engine
Session or Rolling VWAP: Toggle resets to match intraday or rolling preferences.
Equal High/Low Scanner: Looks back 20 bars by default for liquidity pools.
Displacement Filter: ATR multiplier ensures raids represent genuine liquidity sweeps.
Mean Reversion Focus: Signals fire when price displaces back toward VWAP following a raid.
6. Session Range Breakout System
Initial Balance Tracking: First N bars (15 default) define the session box.
Breakout Logic: Requires simultaneous liquidity spikes, nearby FVG activity, and supportive momentum.
Z-Score Volume Filter: >1.5σ by default to filter noisy moves.
7. Lifestyle Liquidity Scanner
Volume Z-Scores: 50-bar baseline highlights statistically significant spikes.
Smart Money Footprints: Bottom-of-chart squares color-code buy vs sell participation.
Panel Memory: HUD logs the last five raid timestamps, direction, and normalized size.
8. Risk Matrix & Diagnostic HUD
HUD Structure: Table in the top-right summarizes HTF bias, sentiment, momentum, range state, liquidity memory, and current risk references.
Signal Tags: Aggregates SPS, FVG, VWAP, Range, and Liquidity states into a compact string.
Risk Metrics: Swing-based stops (5-bar lookback) + ATR targets (1.5× default) keep risk transparent.
Signal Families & Alerts
Social Pulse (SPS): Volume-confirmed sentiment alignment; triangle markers with “SPS”.
Kill-Zone FVG: Session + HTF alignment + FVG tap; arrow markers plus SL/TP labels.
Local FVG: Captures local reversals when HTF bias has not flipped yet.
VWAP Raid: Equal-high/low raids that snap toward VWAP; “VWAP” label markers.
Range Breakout: Initial balance violations with liquidity and imbalance confirmation; circle markers.
Liquidity Spike: Z-score spikes ≥ threshold; square markers along the baseline.
Visual Design & Customization
Theme Palette: Primary background RGB (12,6,24). Accent shading RGB (26,10,48). Long accents RGB (88,174,255). Short accents RGB (219,109,255).
Stylized Candles: Optional overlay using theme colors.
Signal Toggles: Independently enable markers, heatmap, and diagnostics.
Label Spacing: Auto-spacing enforces ≥4-bar gaps to prevent text overlap.
Customization & Workflow Notes
Adjust ATR/FVG thresholds when volatility shifts.
Re-anchor sentiment to your webhook cadence; EMA smoothing (default 5) dampens noise.
Reposition the HUD by editing the `table.new` coordinates.
Use multiples of the chart timeframe for HTF requests to minimize load.
Session inputs accept exchange-local time; align them to your market.
Performance & Compliance
Pure Pine v6: Single-line statements, no `lookahead_on`.
Resource Safe: Arrays trimmed, boxes limited, `request.security` cached.
Repaint Awareness: Signals confirm on close; alerts mirror on-chart logic.
Runtime Safety: Arrays/loops guard against `na`.
Use Cases
Measure when social sentiment aligns with structure.
Plan ICT-style intraday rebalances around session-specific FVG taps.
Fade VWAP raids when displacement shows exhaustion.
Watch initial balance breaks backed by statistical volume.
Keep risk/target references anchored in ATR logic.
Signal Logic Snapshot
Social Pulse Long/Short: `sentimentEMA` gated by `sentimentMin`, `volSpike`, EMA 8/21 cross, and `momoComposite` sign agreement. Keeps hype tied to structural follow-through.
Kill-Zone FVG Long/Short: Requires session filter, HTF EMA bias alignment, and an active FVG tap (`bullFvgTap` / `bearFvgTap`). Labels include swing stops + ATR targets pulled from `swingLookback` and `liqTargetMultiple`.
Local FVG Long/Short: Uses `localBullish` / `localBearish` heuristics (EMA slope, displacement, sequential closes) to surface intraday reversals even when HTF bias has not flipped.
VWAP Raids: Detect equal-high/equal-low sweeps (`raidHigh`, `raidLow`) that revert toward `sessionVwap` or rolling VWAP when displacement exceeds `vwapAlertDisplace`.
Range Breakouts: Combine `rangeComplete`, breakout confirmation, liquidity spikes, and nearby FVG activity for statistically backed initial balance breaks.
Liquidity Spikes: Volume Z-score > `zScoreThreshold` logs direction, size, and timestamp for the HUD and optional review workflows.
Session Logic & VWAP Handling
Kill zone + NY session inputs use TradingView’s session strings; `f_inSession()` drives both visual shading and whether FVG taps are tradeable when `killZoneOnly` is true.
Session VWAP resets using cumulative price × volume sums that restart when the daily timestamp changes; rolling VWAP falls back to `ta.vwap(hlc3)` for instruments where daily resets are less relevant.
Initial balance box (`rangeBars` input) locks once complete, extends forward, and stays on chart to contextualize later liquidity raids or breakouts.
Parameter Reference
Trend: `emaFastLen`, `emaSlowLen`, `htfResolution`, `htfEmaLen`, `showEmaRibbon`, `showHtfBiasLine`.
Momentum: `tf1`, `tf2`, `tf3`, `rsiLen`, `stochLen`, `stochSmooth`, `heatmapHeight`.
Volume/Liquidity: `volLookback`, `volSpikeMult`, `zScoreLen`, `zScoreThreshold`, `equalLookback`.
VWAP & Sessions: `vwapMode`, `showVwapLine`, `vwapAlertDisplace`, `killSession`, `nySession`, `showSessionShade`, `rangeBars`.
FVG/Risk: `fvgMinTicks`, `fvgLookback`, `fvgMinSpacing`, `killZoneOnly`, `liqTargetMultiple`, `swingLookback`.
Visualization Toggles: `showSignalMarkers`, `showHeatmapBand`, `showInfoPanel`, `showStylizedCandles`.
Workflow Recipes
Kill-Zone Continuation: During the defined kill session, look for `killFvgLong` or `killFvgShort` arrows that line up with `sentimentValid` and positive `momoComposite`. Use the HUD’s risk readout to confirm SL/TP distances before entering.
VWAP Raid Fade: Outside kill zone, track `raidToVwapLong/Short`. Confirm the candle body exceeds the displacement multiplier, and price crosses back toward VWAP before considering reversions.
Range Break Monitor: After the initial balance locks, mark `rangeBreakLong/Short` circles only when the momentum band is >0 or <0 respectively and a fresh FVG box sits near price.
Liquidity Spike Review: When the HUD shows “Liquidity” timestamps, hover the plotted squares at chart bottom to see whether spikes were buy/sell oriented and if local FVGs formed immediately after.
Metadata
Author: officialjackofalltrades
Platform: TradingView (Pine Script v6)
Category: Sentiment + Liquidity Intelligence
Hope you Enjoy!
Cari dalam skrip untuk "track"
P6●智能资金概念交易系统//@version=5
indicator("P6●智能资金概念交易系统", overlay=true, max_boxes_count = 500, max_labels_count = 500)
// === 参数分类标题 ===
// --------------------------
// 1. 基础指标设置
// --------------------------
// 2. 范围过滤器 设置
// --------------------------
// 3. ADX 趋势过滤器 设置
// --------------------------
// 4. 趋势线 设置
// --------------------------
// 5. 支撑与阻力 设置
// --------------------------
// 6. PMA 设置
// --------------------------
// 7. 交易信息表格 设置
// --------------------------
// 8. 顶部规避 设置
// --------------------------
// 9. 底部规避 设置
// --------------------------
// 10. RSI 动量指标 设置
// --------------------------
// 11. 多时间框架 设置
// --------------------------
// === 显示/隐藏选项 ===
showRangeFilter = input.bool(true, title="显示 范围过滤器", group="1. 基础指标设置")
showADXFilter = input.bool(true, title="启用 ADX 趋势过滤器", group="1. 基础指标设置")
showTrendLines = input.bool(false, title="显示 趋势线", group="1. 基础指标设置")
showSupRes = input.bool(true, title="显示 支撑与阻力", group="1. 基础指标设置")
showPMA = input.bool(true, title="显示 多周期移动平均线", group="1. 基础指标设置")
showTable = input.bool(true, title="显示 交易信息表格", group="1. 基础指标设置")
showTopAvoidance = input.bool(false, title="启用 顶部规避系统", group="1. 基础指标设置")
showBottomAvoidance = input.bool(false, title="启用 底部规避系统", group="1. 基础指标设置")
showRSI = input.bool(false, title="启用 RSI 动量指标", group="1. 基础指标设置")
showMTF = input.bool(true, title="启用 多时间框架分析", group="1. 基础指标设置")
// === RSI 动量指标 设置 ===
rsiLength = input.int(14, title="RSI 周期", minval=1, group="10. RSI 动量指标 设置")
rsiOverbought = input.float(70.0, title="超买阈值", minval=50, maxval=90, step=1, group="10. RSI 动量指标 设置")
rsiOversold = input.float(30.0, title="超卖阈值", minval=10, maxval=50, step=1, group="10. RSI 动量指标 设置")
rsiNeutralUpper = input.float(60.0, title="中性区间上沿", minval=50, maxval=70, step=1, group="10. RSI 动量指标 设置")
rsiNeutralLower = input.float(40.0, title="中性区间下沿", minval=30, maxval=50, step=1, group="10. RSI 动量指标 设置")
// === 多时间框架设置 ===
mtfEnable1m = input.bool(true, title="启用 1分钟", group="11. 多时间框架 设置")
mtfEnable5m = input.bool(true, title="启用 5分钟", group="11. 多时间框架 设置")
mtfEnable15m = input.bool(true, title="启用 15分钟", group="11. 多时间框架 设置")
mtfEnable1h = input.bool(true, title="启用 1小时", group="11. 多时间框架 设置")
mtfEnable4h = input.bool(true, title="启用 4小时", group="11. 多时间框架 设置")
// === RSI 计算与状态判断 ===
rsiValue = ta.rsi(close, rsiLength)
rsiPrevious = ta.rsi(close , rsiLength)
// RSI 动量状态判断
getRSIStatus() =>
status = "动量中性"
// 动量回落条件:RSI从高位下降或处于下降趋势
fallCondition1 = rsiValue < rsiPrevious and rsiValue > rsiNeutralUpper
fallCondition2 = rsiValue >= rsiOverbought and rsiValue < rsiPrevious
fallCondition3 = rsiPrevious >= rsiOverbought and rsiValue < rsiOverbought and rsiValue < rsiPrevious
if fallCondition1 or fallCondition2 or fallCondition3
status := "动量回落"
// 动量回升条件:RSI从低位上升或处于上升趋势
riseCondition1 = rsiValue > rsiPrevious and rsiValue < rsiNeutralLower
riseCondition2 = rsiValue <= rsiOversold and rsiValue > rsiPrevious
riseCondition3 = rsiPrevious <= rsiOversold and rsiValue > rsiOversold and rsiValue > rsiPrevious
if riseCondition1 or riseCondition2 or riseCondition3
status := "动量回升"
// 动量中性条件:RSI在中性区间或无明确趋势
if rsiValue >= rsiNeutralLower and rsiValue <= rsiNeutralUpper
status := "动量中性"
status
rsiStatus = getRSIStatus()
// RSI 信号与其他指标结合
rsiSupportsBuy = rsiStatus == "动量回升" or (rsiValue <= rsiOversold and rsiValue > rsiPrevious)
rsiSupportssell = rsiStatus == "动量回落" or (rsiValue >= rsiOverbought and rsiValue < rsiPrevious)
// === 多时间框架数据获取 ===
// 简化的多时间框架趋势计算
calcSimpleTrend(src) =>
ema21 = ta.ema(src, 21)
ema50 = ta.ema(src, 50)
trend = src > ema21 and ema21 > ema50 ? 1 : src < ema21 and ema21 < ema50 ? -1 : 0
trend
// 获取各时间框架的趋势数据
trend1m = showMTF and mtfEnable1m ? request.security(syminfo.tickerid, "1", calcSimpleTrend(close)) : 0
trend5m = showMTF and mtfEnable5m ? request.security(syminfo.tickerid, "5", calcSimpleTrend(close)) : 0
trend15m = showMTF and mtfEnable15m ? request.security(syminfo.tickerid, "15", calcSimpleTrend(close)) : 0
trend1h = showMTF and mtfEnable1h ? request.security(syminfo.tickerid, "60", calcSimpleTrend(close)) : 0
trend4h = showMTF and mtfEnable4h ? request.security(syminfo.tickerid, "240", calcSimpleTrend(close)) : 0
// === 多时间框架趋势判断函数 ===
getTrendDirection(trend) =>
if trend > 0
"多头倾向"
else if trend < 0
"空头倾向"
else
"震荡"
// 获取各时间框架趋势方向
trend1mDir = getTrendDirection(trend1m)
trend5mDir = getTrendDirection(trend5m)
trend15mDir = getTrendDirection(trend15m)
trend1hDir = getTrendDirection(trend1h)
trend4hDir = getTrendDirection(trend4h)
// === 顶部规避系统 ===
ma_period_top = input.int(10, 'MA Period (Length)', group='8. 顶部规避 设置')
topThreshold = input.int(85, 'VAR顶部阈值', minval=70, maxval=95, step=1, group='8. 顶部规避 设置')
// 计算VAR指标 - 顶部(检测上涨动能)
pre_price_top = close
VAR_top = ta.sma(math.max(close-pre_price_top,0), ma_period_top) / ta.sma(math.abs(close-pre_price_top), ma_period_top) * 100
// 顶部信号 - 当上涨动能达到高位时
isTop = VAR_top > topThreshold and VAR_top <= topThreshold
// 图表显示顶部标记
plotshape(series=showTopAvoidance and isTop, title="顶", style=shape.labeldown, location=location.abovebar,
color=color.new(color.purple, 0), textcolor=color.white, size=size.normal, text="顶")
// === 底部规避系统 ===
ma_period_bottom = input.int(14, 'MA Period (Length)', group='9. 底部规避 设置')
bottomThreshold = input.int(15, 'VAR底部阈值', minval=5, maxval=30, step=1, group='9. 底部规避 设置')
// 计算VAR指标 - 底部(检测下跌动能)
pre_price_bottom = close
VAR_bottom = ta.sma(math.max(pre_price_bottom-close,0), ma_period_bottom) / ta.sma(math.abs(close-pre_price_bottom), ma_period_bottom) * 100
// 底部信号 - 当下跌动能达到高位时
isBottom = VAR_bottom > bottomThreshold and VAR_bottom <= bottomThreshold
// 图表显示底部标记
plotshape(series=showBottomAvoidance and isBottom, title="底", style=shape.labelup, location=location.belowbar,
color=color.new(color.orange, 0), textcolor=color.white, size=size.normal, text="底")
// === 范围过滤器 部分 ===
upColor = color.white
midColor = #90bff9
downColor = color.blue
src = input(defval=close, title="数据源", group="2. 范围过滤器 设置")
per = input.int(defval=100, minval=1, title="采样周期", group="2. 范围过滤器 设置")
mult = input.float(defval=3.0, minval=0.1, title="区间倍数", group="2. 范围过滤器 设置")
smoothrng(x, t, m) =>
wper = t * 2 - 1
avrng = ta.ema(math.abs(x - x ), t)
smoothrng = ta.ema(avrng, wper) * m
smoothrng
smrng = smoothrng(src, per, mult)
rngfilt(x, r) =>
rngfilt = x
rngfilt := x > nz(rngfilt ) ? x - r < nz(rngfilt ) ? nz(rngfilt ) : x - r :
x + r > nz(rngfilt ) ? nz(rngfilt ) : x + r
rngfilt
filt = rngfilt(src, smrng)
upward = 0.0
upward := filt > filt ? nz(upward ) + 1 : filt < filt ? 0 : nz(upward )
downward = 0.0
downward := filt < filt ? nz(downward ) + 1 : filt > filt ? 0 : nz(downward )
hband = filt + smrng
lband = filt - smrng
filtcolor = upward > 0 ? upColor : downward > 0 ? downColor : midColor
barcolor_ = src > filt and src > src and upward > 0 ? upColor :
src > filt and src < src and upward > 0 ? upColor :
src < filt and src < src and downward > 0 ? downColor :
src < filt and src > src and downward > 0 ? downColor : midColor
longCond = bool(na)
shortCond = bool(na)
longCond := src > filt and src > src and upward > 0 or
src > filt and src < src and upward > 0
shortCond := src < filt and src < src and downward > 0 or
src < filt and src > src and downward > 0
CondIni = 0
CondIni := longCond ? 1 : shortCond ? -1 : CondIni
// === ADX 趋势过滤器 部分 ===
adxLength = input.int(defval=14, minval=1, title="ADX 周期", group="3. ADX 趋势过滤器 设置")
adxThreshold = input.float(defval=25.0, minval=0, maxval=100, step=0.5, title="ADX 阈值", tooltip="ADX大于此值才允许交易信号", group="3. ADX 趋势过滤器 设置")
// 简化的ADX计算 - 更准确的方法
calcADX(len) =>
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
truerange = ta.rma(ta.tr, len)
plus = fixnan(100 * ta.rma(plusDM, len) / truerange)
minus = fixnan(100 * ta.rma(minusDM, len) / truerange)
sum = plus + minus
adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), len)
= calcADX(adxLength)
// ADX状态判断
adxStrong = adxValue >= adxThreshold
adxTrendUp = diPlus > diMinus
adxTrendDown = diMinus > diPlus
// 修改信号生成逻辑,加入顶部和底部规避以及RSI确认
longCondition = longCond and CondIni == -1 and (not showADXFilter or adxStrong) and (not showTopAvoidance or not isTop) and (not showRSI or rsiSupportsBuy)
shortCondition = shortCond and CondIni == 1 and (not showADXFilter or adxStrong) and (not showBottomAvoidance or not isBottom) and (not showRSI or rsiSupportssell)
// === 记录买卖信号价格 ===
var float entryPrice = na
var string entryType = na
var float entryTime = na
// 当出现买入信号时记录
if longCondition
entryPrice := close
entryType := "多单"
entryTime := time
// 当出现卖出信号时记录
if shortCondition
entryPrice := close
entryType := "空单"
entryTime := time
// === 趋势颜色逻辑 ===
var trendColor = color.gray
if longCondition
trendColor := color.green
else if shortCondition
trendColor := color.red
// ADX线绘制(可选)- 已隐藏显示
adxColor = adxStrong ? (adxTrendUp ? color.green : color.red) : color.gray
// plot(showADXLine and showADXFilter ? adxValue : na, title="平均方向指数", color=adxColor, linewidth=1)
// hline(showADXLine and showADXFilter ? adxThreshold : na, title="ADX阈值线", color=color.yellow, linestyle=hline.style_dashed)
// 绘图部分 - 已隐藏线条显示,保留功能
// filtplot = plot(showRangeFilter ? filt : na, color=trendColor, linewidth=2, title="区间过滤器")
// hbandplot = plot(showRangeFilter ? hband : na, color=color.new(trendColor, 30), title="上轨线", linewidth=1)
// lbandplot = plot(showRangeFilter ? lband : na, color=color.new(trendColor, 30), title="下轨线", linewidth=1)
// barcolor(na) - 已隐藏K线颜色
plotshape(showRangeFilter and longCondition, title="买入信号", text="买", textcolor=color.white, style=shape.labelup, size=size.small, location=location.belowbar, color=color.new(color.green, 20))
plotshape(showRangeFilter and shortCondition, title="卖出信号", text="卖", textcolor=color.white, style=shape.labeldown, size=size.small, location=location.abovebar, color=color.new(color.red, 20))
// === 趋势线 部分 ===
length_tl = input.int(14, '分型回溯长度', group="4. 趋势线 设置")
mult_tl = input.float(1., '斜率系数', minval = 0, step = .1, group="4. 趋势线 设置")
calcMethod = input.string('平均真实波幅', '斜率计算方法', options = , group="4. 趋势线 设置")
backpaint = input(true, tooltip = '回溯显示:将可视元素向历史偏移,禁用后可查看实时信号。', group="4. 趋势线 设置")
upCss = input.color(color.teal, '上升趋势线颜色', group = "4. 趋势线 设置")
dnCss = input.color(color.red, '下降趋势线颜色', group = "4. 趋势线 设置")
showExt = input(true, '显示延长线', group="4. 趋势线 设置")
var upper_tl = 0.
var lower_tl = 0.
var slope_ph_tl = 0.
var slope_pl_tl = 0.
var offset_tl = backpaint ? length_tl : 0
n = bar_index
src_tl = close
ph = ta.pivothigh(length_tl, length_tl)
pl = ta.pivotlow(length_tl, length_tl)
slope = switch calcMethod
'平均真实波幅' => ta.atr(length_tl) / length_tl * mult_tl
'标准差' => ta.stdev(src_tl, length_tl) / length_tl * mult_tl
'线性回归' => math.abs(ta.sma(src_tl * n, length_tl) - ta.sma(src_tl, length_tl) * ta.sma(n, length_tl)) / ta.variance(n, length_tl) / 2 * mult_tl
slope_ph_tl := ph ? slope : slope_ph_tl
slope_pl_tl := pl ? slope : slope_pl_tl
upper_tl := ph ? ph : upper_tl - slope_ph_tl
lower_tl := pl ? pl : lower_tl + slope_pl_tl
var upos = 0
var dnos = 0
upos := ph ? 0 : close > upper_tl - slope_ph_tl * length_tl ? 1 : upos
dnos := pl ? 0 : close < lower_tl + slope_pl_tl * length_tl ? 1 : dnos
var uptl = line.new(na,na,na,na, color = upCss, style = line.style_dashed, extend = extend.right)
var dntl = line.new(na,na,na,na, color = dnCss, style = line.style_dashed, extend = extend.right)
if ph and showExt and showTrendLines
line.set_xy1(uptl, n-offset_tl, backpaint ? ph : upper_tl - slope_ph_tl * length_tl)
line.set_xy2(uptl, n-offset_tl+1, backpaint ? ph - slope : upper_tl - slope_ph_tl * (length_tl+1))
if pl and showExt and showTrendLines
line.set_xy1(dntl, n-offset_tl, backpaint ? pl : lower_tl + slope_pl_tl * length_tl)
line.set_xy2(dntl, n-offset_tl+1, backpaint ? pl + slope : lower_tl + slope_pl_tl * (length_tl+1))
plot(showTrendLines ? (backpaint ? upper_tl : upper_tl - slope_ph_tl * length_tl) : na, '上升趋势线', color = ph ? na : upCss, offset = -offset_tl)
plot(showTrendLines ? (backpaint ? lower_tl : lower_tl + slope_pl_tl * length_tl) : na, '下降趋势线', color = pl ? na : dnCss, offset = -offset_tl)
// 趋势线突破也需要ADX确认,并加入顶部和底部规避以及RSI确认
trendLineBuySignal = showTrendLines and upos > upos and (not showADXFilter or adxStrong) and (not showTopAvoidance or not isTop) and (not showRSI or rsiSupportsBuy)
trendLineSellSignal = showTrendLines and dnos > dnos and (not showADXFilter or adxStrong) and (not showBottomAvoidance or not isBottom) and (not showRSI or rsiSupportssell)
plotshape(trendLineBuySignal ? low : na, "上轨突破"
, shape.labelup
, location.absolute
, upCss
, text = "突"
, textcolor = color.white
, size = size.tiny)
plotshape(trendLineSellSignal ? high : na, "下轨突破"
, shape.labeldown
, location.absolute
, dnCss
, text = "突"
, textcolor = color.white
, size = size.tiny)
alertcondition(trendLineBuySignal, '上轨突破', '价格向上突破下趋势线')
alertcondition(trendLineSellSignal, '下轨突破', '价格向下突破上趋势线')
// === 支撑与阻力 部分 ===
g_sr = '5. 支撑与阻力'
g_c = '条件'
g_st = '样式'
t_r = 'K线确认:仅在K线收盘时生成警报(延后1根K线)。\n\n高点与低点:默认情况下,突破/回踩系统使用当前收盘价判断,选择高点与低点后将使用高低点判断条件,不再重绘,结果会不同。'
t_rv = '每当检测到潜在回踩时,指标会判断回踩事件即将发生。此输入用于设置在潜在回踩激活时,最大允许检测多少根K线。\n\n例如,出现潜在回踩标签时,该标签允许存在多少根K线以确认回踩?此功能防止回踩警报在10根K线后才触发导致不准确。'
input_lookback = input.int(defval = 20, title = '回溯区间', minval = 1, tooltip = '检测分型事件的K线数量。', group = g_sr)
input_retSince = input.int(defval = 2, title = '突破后K线数', minval = 1, tooltip = '突破后多少根K线内检测回踩。', group = g_sr)
input_retValid = input.int(defval = 2, title = '回踩检测限制', minval = 1, tooltip = t_rv, group = g_sr)
input_breakout = input.bool(defval = true, title = '显示突破', group = g_c)
input_retest = input.bool(defval = true, title = '显示回踩', group = g_c)
input_repType = input.string(defval = '开启', title = '重绘模式', options = , tooltip = t_r, group = g_c)
input_outL = input.string(defval = line.style_dotted, title = '边框样式', group = g_st, options = )
input_extend = input.string(defval = extend.none, title = '延长方向', group = g_st, options = )
input_labelType = input.string(defval = '详细', title = '标签类型', options = , group = g_st)
input_labelSize = input.string(defval = size.small, title = '标签大小', options = , group = g_st)
st_break_lb_co1 = input.color(defval = color.lime , title = '空头突破标签颜色' ,inline = 'st_break_lb_co', group = g_st)
st_break_lb_co2 = input.color(defval = color.new(color.lime,40) , title = '' ,inline = 'st_break_lb_co', group = g_st)
lg_break_lb_co1 = input.color(defval = color.red , title = '多头突破标签颜色' ,inline = 'lg_break_lb_co', group = g_st)
lg_break_lb_co2 = input.color(defval = color.new(color.red,40) , title = '' ,inline = 'lg_break_lb_co', group = g_st)
st_retest_lb_co1 = input.color(defval = color.lime , title = '空头回踩标签颜色' ,inline = 'st_retest_lb_col', group = g_st)
st_retest_lb_co2 = input.color(defval = color.new(color.lime,40) , title = '' ,inline = 'st_retest_lb_col', group = g_st)
lg_retest_lb_co1 = input.color(defval = color.red , title = '多头回踩标签颜色' ,inline = 'lg_retest_lb_co', group = g_st)
lg_retest_lb_co2 = input.color(defval = color.new(color.red,40) , title = '' ,inline = 'lg_retest_lb_co', group = g_st)
input_plColor1 = input.color(defval = color.lime, title = '支撑方框颜色', inline = 'pl_Color', group = g_st)
input_plColor2 = input.color(defval = color.new(color.lime,85), title = '', inline = 'pl_Color', group = g_st)
input_phColor1 = input.color(defval = color.red, title = '阻力方框颜色', inline = 'ph_Color', group = g_st)
input_phColor2 = input.color(defval = color.new(color.red,85), title = '', inline = 'ph_Color', group = g_st)
input_override = input.bool(defval = false, title = '自定义文字颜色', inline = '覆盖', group = g_st)
input_textColor = input.color(defval = color.white, title = '', inline = '覆盖', group = g_st)
bb = input_lookback
// 兼容label与英文选项
rTon = input_repType == '开启'
rTcc = input_repType == '关闭:K线确认'
rThv = input_repType == '关闭:高低点'
breakText = input_labelType == '简洁' ? '突' : '突破'
// 分型
rs_pl = fixnan(ta.pivotlow(low, bb, bb))
rs_ph = fixnan(ta.pivothigh(high, bb, bb))
// Box 高度
s_yLoc = low > low ? low : low
r_yLoc = high > high ? high : high
//-----------------------------------------------------------------------------
// 函数
//-----------------------------------------------------------------------------
drawBox(condition, y1, y2, color,bgcolor) =>
var box drawBox = na
if condition and showSupRes // 仅在显示开关打开时绘制
box.set_right(drawBox, bar_index - bb)
drawBox.set_extend(extend.none)
drawBox := box.new(bar_index - bb, y1, bar_index, y2, color, bgcolor = bgcolor, border_style = input_outL, extend = input_extend)
updateBox(box) =>
if barstate.isconfirmed and showSupRes
box.set_right(box, bar_index + 5)
breakLabel(y, txt_col,lb_col, style, textform) =>
if showSupRes
label.new(bar_index, y, textform, textcolor = input_override ? input_textColor : txt_col, style = style, color = lb_col, size = input_labelSize)
retestCondition(breakout, condition) =>
ta.barssince(na(breakout)) > input_retSince and condition
repaint(c1, c2, c3) => rTon ? c1 : rThv ? c2 : rTcc ? c3 : na
//-----------------------------------------------------------------------------
// 绘制与更新区间
//-----------------------------------------------------------------------------
= drawBox(ta.change(rs_pl), s_yLoc, rs_pl, input_plColor1,input_plColor2)
= drawBox(ta.change(rs_ph), rs_ph, r_yLoc, input_phColor1,input_phColor2)
sTop = box.get_top(sBox), rTop = box.get_top(rBox)
sBot = box.get_bottom(sBox), rBot = box.get_bottom(rBox)
if showSupRes
updateBox(sBox), updateBox(rBox)
//-----------------------------------------------------------------------------
// 突破事件 - 加入顶部和底部规避以及RSI确认
//-----------------------------------------------------------------------------
var bool sBreak = na
var bool rBreak = na
cu = repaint(ta.crossunder(close, box.get_bottom(sBox)), ta.crossunder(low, box.get_bottom(sBox)), ta.crossunder(close, box.get_bottom(sBox)) and barstate.isconfirmed)
co = repaint(ta.crossover(close, box.get_top(rBox)), ta.crossover(high, box.get_top(rBox)), ta.crossover(close, box.get_top(rBox)) and barstate.isconfirmed)
switch
cu and na(sBreak) and showSupRes and (not showADXFilter or adxStrong) and (not showBottomAvoidance or not isBottom) and (not showRSI or rsiSupportssell) =>
sBreak := true
if input_breakout
breakLabel(sBot, st_break_lb_co1,st_break_lb_co2, label.style_label_upper_right, breakText)
co and na(rBreak) and showSupRes and (not showADXFilter or adxStrong) and (not showTopAvoidance or not isTop) and (not showRSI or rsiSupportsBuy) =>
rBreak := true
if input_breakout
breakLabel(rTop, lg_break_lb_co1,lg_break_lb_co2, label.style_label_lower_right, breakText)
if ta.change(rs_pl) and showSupRes
if na(sBreak)
box.delete(sBox )
sBreak := na
if ta.change(rs_ph) and showSupRes
if na(rBreak)
box.delete(rBox )
rBreak := na
//-----------------------------------------------------------------------------
// 回踩事件
//-----------------------------------------------------------------------------
s1 = retestCondition(sBreak, high >= sTop and close <= sBot)
s2 = retestCondition(sBreak, high >= sTop and close >= sBot and close <= sTop)
s3 = retestCondition(sBreak, high >= sBot and high <= sTop)
s4 = retestCondition(sBreak, high >= sBot and high <= sTop and close < sBot)
r1 = retestCondition(rBreak, low <= rBot and close >= rTop)
r2 = retestCondition(rBreak, low <= rBot and close <= rTop and close >= rBot)
r3 = retestCondition(rBreak, low <= rTop and low >= rBot)
r4 = retestCondition(rBreak, low <= rTop and low >= rBot and close > rTop)
retestEvent(c1, c2, c3, c4, y1, y2, txt_col,lb_col, style, pType) =>
if input_retest and showSupRes
var bool retOccurred = na
retActive = c1 or c2 or c3 or c4
retEvent = retActive and not retActive
retValue = ta.valuewhen(retEvent, y1, 0)
if pType == 'ph' ? y2 < ta.valuewhen(retEvent, y2, 0) : y2 > ta.valuewhen(retEvent, y2, 0)
retEvent := retActive
retValue := ta.valuewhen(retEvent, y1, 0)
retSince = ta.barssince(retEvent)
var retLabel = array.new()
if retEvent
retOccurred := na
array.push(retLabel, label.new(bar_index - retSince, y2 , text = input_labelType == '简洁' ? '潜回' : '潜在回踩', color = lb_col, style = style, textcolor = input_override ? input_textColor : txt_col, size = input_labelSize))
if array.size(retLabel) == 2
label.delete(array.first(retLabel))
array.shift(retLabel)
retConditions = pType == 'ph' ? repaint(close >= retValue, high >= retValue, close >= retValue and barstate.isconfirmed) : repaint(close <= retValue, low <= retValue, close <= retValue and barstate.isconfirmed)
retValid = ta.barssince(retEvent) > 0 and ta.barssince(retEvent) <= input_retValid and retConditions and not retOccurred and (not showADXFilter or adxStrong) and (not showRSI or (pType == 'ph' ? rsiSupportsBuy : rsiSupportssell))
if retValid
label.new(bar_index - retSince, y2 , text = input_labelType == '简洁' ? '回' : '回踩', color = lb_col, style = style, textcolor = input_override ? input_textColor : txt_col, size = input_labelSize)
retOccurred := true
if retValid or ta.barssince(retEvent) > input_retValid
label.delete(array.first(retLabel))
if pType == 'ph' and ta.change(rs_ph) and retOccurred
box.set_right(rBox , bar_index - retSince)
retOccurred := na
if pType == 'pl' and ta.change(rs_pl) and retOccurred
box.set_right(sBox , bar_index - retSince)
retOccurred := na
else
= retestEvent(r1, r2, r3, r4, high, low, lg_retest_lb_co1,lg_retest_lb_co2, label.style_label_upper_left, 'ph')
= retestEvent(s1, s2, s3, s4, low, high, st_retest_lb_co1,st_retest_lb_co2, label.style_label_lower_left, 'pl')
//-----------------------------------------------------------------------------
// 警报
//-----------------------------------------------------------------------------
// 买卖信号警报条件
buySignal = showTrendLines and trendLineBuySignal
sellSignal = showTrendLines and trendLineSellSignal
// 添加买卖信号的警报条件
alertcondition(buySignal, title='买入信号', message='范围过滤器买入信号:上轨突破')
alertcondition(sellSignal, title='卖出信号', message='范围过滤器卖出信号:下轨突破')
alertcondition((showSupRes and ta.change(rs_pl)), '新支撑位')
alertcondition((showSupRes and ta.change(rs_ph)), '新阻力位')
alertcondition((showSupRes and ta.barssince(na(sBreak)) == 1), '支撑位突破')
alertcondition((showSupRes and ta.barssince(na(rBreak)) == 1), '阻力位突破')
alertcondition((showSupRes and sRetValid), '支撑位回踩')
alertcondition((showSupRes and sRetEvent), '潜在支撑回踩')
alertcondition((showSupRes and rRetValid), '阻力位回踩')
alertcondition((showSupRes and rRetEvent), '潜在阻力回踩')
AllAlerts(condition, message) =>
if condition and showSupRes
alert(message)
AllAlerts(ta.change(rs_pl), '新支撑位')
AllAlerts(ta.change(rs_ph), '新阻力位')
AllAlerts(ta.barssince(na(sBreak)) == 1, '支撑位突破')
AllAlerts(ta.barssince(na(rBreak)) == 1, '阻力位突破')
AllAlerts(sRetValid, '支撑位回踩')
AllAlerts(sRetEvent, '潜在支撑回踩')
AllAlerts(rRetValid, '阻力位回踩')
AllAlerts(rRetEvent, '潜在阻力回踩')
AllAlerts(buySignal, '买入信号:上轨突破')
AllAlerts(sellSignal, '卖出信号:下轨突破')
// === 多周期移动平均线 部分 ===
// === 公共函数 ===
strRoundValue(num) =>
strv = ''
if num >= 100000
strv := str.tostring(num/1000, '#千')
else if (num < 100000) and (num >= 100)
strv := str.tostring(num, '#')
else if (num < 100) and (num >= 1)
strv := str.tostring(num, '#.##')
else if (num < 1) and (num >= 0.01)
strv := str.tostring(num, '#.####')
else if (num < 0.01) and (num >= 0.0001)
strv := str.tostring(num, '#.######')
else if (num < 0.0001) and (num >= 0.000001)
strv := str.tostring(num, '#.########')
(strv)
defaultFunction(func, src, len, alma_offst, alma_sigma) =>
has_len = false
ma = ta.swma(close)
if func == '自适应移动平均'
ma := ta.alma(src, len, alma_offst, alma_sigma)
has_len := true
else if func == '指数移动平均'
ma := ta.ema(src, len)
has_len := true
else if func == '修正移动平均'
ma := ta.rma(src, len)
has_len := true
else if func == '简单移动平均'
ma := ta.sma(src, len)
has_len := true
else if func == '对称加权移动平均'
ma := ta.swma(src)
has_len := false
else if func == '成交量加权平均价'
ma := ta.vwap(src)
has_len := false
else if func == '成交量加权移动平均'
ma := ta.vwma(src, len)
has_len := true
else if func == '加权移动平均'
ma := ta.wma(src, len)
has_len := true
def_fn = input.string(title='默认移动平均线', defval='指数移动平均', options= , group="6. PMA 设置")
ma1_on = input.bool(inline='均线1', title='启用移动平均线1', defval=false, group="6. PMA 设置")
ma2_on = input.bool(inline='均线2', title='启用移动平均线2', defval=true, group="6. PMA 设置")
ma3_on = input.bool(inline='均线3', title='启用移动平均线3', defval=true, group="6. PMA 设置")
ma4_on = input.bool(inline='均线4', title='启用移动平均线4', defval=true, group="6. PMA 设置")
ma5_on = input.bool(inline='均线5', title='启用移动平均线5', defval=true, group="6. PMA 设置")
ma6_on = input.bool(inline='均线6', title='启用移动平均线6', defval=true, group="6. PMA 设置")
ma7_on = input.bool(inline='均线7', title='启用移动平均线7', defval=true, group="6. PMA 设置")
ma1_fn = input.string(inline='均线1', title='', defval='默认', options= , group="6. PMA 设置")
ma2_fn = input.string(inline='均线2', title='', defval='默认', options= , group="6. PMA 设置")
ma3_fn = input.string(inline='均线3', title='', defval='默认', options= , group="6. PMA 设置")
ma4_fn = input.string(inline='均线4', title='', defval='默认', options= , group="6. PMA 设置")
ma5_fn = input.string(inline='均线5', title='', defval='默认', options= , group="6. PMA 设置")
ma6_fn = input.string(inline='均线6', title='', defval='默认', options= , group="6. PMA 设置")
ma7_fn = input.string(inline='均线7', title='', defval='默认', options= , group="6. PMA 设置")
ma1_len = input.int(inline='均线1', title='', defval=12, minval=1, group="6. PMA 设置")
ma2_len = input.int(inline='均线2', title='', defval=144, minval=1, group="6. PMA 设置")
ma3_len = input.int(inline='均线3', title='', defval=169, minval=1, group="6. PMA 设置")
ma4_len = input.int(inline='均线4', title='', defval=288, minval=1, group="6. PMA 设置")
ma5_len = input.int(inline='均线5', title='', defval=338, minval=1, group="6. PMA 设置")
ma6_len = input.int(inline='均线6', title='', defval=576, minval=1, group="6. PMA 设置")
ma7_len = input.int(inline='均线7', title='', defval=676, minval=1, group="6. PMA 设置")
alma1_offst = input.float(group='均线1其他设置', inline='均线11', title='自适应偏移', defval=0.85, minval=-1, maxval=1, step=0.01)
alma1_sigma = input.float(group='均线1其他设置', inline='均线11', title=', 西格玛', defval=6, minval=0, maxval=100, step=0.01)
ma1_src = input.source(group='均线1其他设置', inline='均线12', title='数据源', defval=close)
ma1_plt_offst = input.int(group='均线1其他设置', inline='均线12', title=', 绘图偏移', defval=0, minval=-500, maxval=500)
alma2_offst = input.float(group='均线2其他设置', inline='均线21', title='自适应偏移', defval=0.85, minval=-1, maxval=1, step=0.01)
alma2_sigma = input.float(group='均线2其他设置', inline='均线21', title='西格玛', defval=6, minval=0, maxval=100, step=0.01)
ma2_src = input.source(group='均线2其他设置', inline='均线22', title='数据源', defval=close)
ma2_plt_offst = input.int(group='均线2其他设置', inline='均线22', title='绘图偏移', defval=0, minval=-500, maxval=500)
alma3_offst = input.float(group='均线3其他设置', inline='均线31', title='自适应偏移', defval=0.85, minval=-1, maxval=1, step=0.01)
alma3_sigma = input.float(group='均线3其他设置', inline='均线31', title='西格玛', defval=6, minval=0, maxval=100, step=0.01)
ma3_src = input.source(group='均线3其他设置', inline='均线32', title='数据源', defval=close)
ma3_plt_offst = input.int(group='均线3其他设置', inline='均线32', title='绘图偏移', defval=0, minval=-500, maxval=500)
alma4_offst = input.float(group='均线4其他设置', inline='均线41', title='自适应偏移', defval=0.85, minval=-1, maxval=1, step=0.01)
alma4_sigma = input.float(group='均线4其他设置', inline='均线41', title='西格玛', defval=6, minval=0, maxval=100, step=0.01)
ma4_src = input.source(group='均线4其他设置', inline='均线42', title='数据源', defval=close)
ma4_plt_offst = input.int(group='均线4其他设置', inline='均线42', title='绘图偏移', defval=0, minval=-500, maxval=500)
alma5_offst = input.float(group='均线5其他设置', inline='均线51', title='自适应偏移', defval=0.85, minval=-1, maxval=1, step=0.01)
alma5_sigma = input.float(group='均线5其他设置', inline='均线51', title='西格玛', defval=6, minval=0, maxval=100, step=0.01)
ma5_src = input.source(group='均线5其他设置', inline='均线52', title='数据源', defval=close)
ma5_plt_offst = input.int(group='均线5其他设置', inline='均线52', title='绘图偏移', defval=0, minval=-500, maxval=500)
alma6_offst = input.float(group='均线6其他设置', inline='均线61', title='自适应偏移', defval=0.85, minval=-1, maxval=1, step=0.01)
alma6_sigma = input.float(group='均线6其他设置', inline='均线61', title='西格玛', defval=6, minval=0, maxval=100, step=0.01)
ma6_src = input.source(group='均线6其他设置', inline='均线62', title='数据源', defval=close)
ma6_plt_offst = input.int(group='均线6其他设置', inline='均线62', title='绘图偏移', defval=0, minval=-500, maxval=500)
alma7_offst = input.float(group='均线7其他设置', inline='均线71', title='自适应偏移', defval=0.85, minval=-1, maxval=1, step=0.01)
alma7_sigma = input.float(group='均线7其他设置', inline='均线71', title='西格玛', defval=6, minval=0, maxval=100, step=0.01)
ma7_src = input.source(group='均线7其他设置', inline='均线72', title='数据源', defval=close)
ma7_plt_offst = input.int(group='均线7其他设置', inline='均线72', title='绘图偏移', defval=0, minval=-500, maxval=500)
fill_12_on = input.bool(title='启用均线1-2填充', defval=false, group="6. PMA 设置")
fill_23_on = input.bool(title='启用均线2-3填充', defval=true, group="6. PMA 设置")
fill_34_on = input.bool(title='启用均线3-4填充', defval=false, group="6. PMA 设置")
fill_45_on = input.bool(title='启用均线4-5填充', defval=true, group="6. PMA 设置")
fill_56_on = input.bool(title='启用均线5-6填充', defval=false, group="6. PMA 设置")
fill_67_on = input.bool(title='启用均线6-7填充', defval=true, group="6. PMA 设置")
// === 计算移动平均线 ===
= defaultFunction(def_fn, ma1_src, ma1_len, alma1_offst, alma1_sigma)
= defaultFunction(def_fn, ma2_src, ma2_len, alma2_offst, alma2_sigma)
= defaultFunction(def_fn, ma3_src, ma3_len, alma3_offst, alma3_sigma)
= defaultFunction(def_fn, ma4_src, ma4_len, alma4_offst, alma4_sigma)
= defaultFunction(def_fn, ma5_src, ma5_len, alma5_offst, alma5_sigma)
= defaultFunction(def_fn, ma6_src, ma6_len, alma6_offst, alma6_sigma)
= defaultFunction(def_fn, ma7_src, ma7_len, alma7_offst, alma7_sigma)
// === 均线类型切换 ===
if ma1_fn != '默认'
if ma1_fn == '自适应移动平均'
ma1 := ta.alma(ma1_src, ma1_len, alma1_offst, alma1_sigma)
ma1_has_len := true
else if ma1_fn == '指数移动平均'
ma1 := ta.ema(ma1_src, ma1_len)
ma1_has_len := true
else if ma1_fn == '修正移动平均'
ma1 := ta.rma(ma1_src, ma1_len)
ma1_has_len := true
else if ma1_fn == '简单移动平均'
ma1 := ta.sma(ma1_src, ma1_len)
ma1_has_len := true
else if ma1_fn == '对称加权移动平均'
ma1 := ta.swma(ma1_src)
ma1_has_len := false
else if ma1_fn == '成交量加权平均价'
ma1 := ta.vwap(ma1_src)
ma1_has_len := false
else if ma1_fn == '成交量加权移动平均'
ma1 := ta.vwma(ma1_src, ma1_len)
ma1_has_len := true
else if ma1_fn == '加权移动平均'
ma1 := ta.wma(ma1_src, ma1_len)
ma1_has_len := true
if ma2_fn != '默认'
if ma2_fn == '自适应移动平均'
ma2 := ta.alma(ma2_src, ma2_len, alma2_offst, alma2_sigma)
ma2_has_len := true
else if ma2_fn == '指数移动平均'
ma2 := ta.ema(ma2_src, ma2_len)
ma2_has_len := true
else if ma2_fn == '修正移动平均'
ma2 := ta.rma(ma2_src, ma2_len)
ma2_has_len := true
else if ma2_fn == '简单移动平均'
ma2 := ta.sma(ma2_src, ma2_len)
ma2_has_len := true
else if ma2_fn == '对称加权移动平均'
ma2 := ta.swma(ma2_src)
ma2_has_len := false
else if ma2_fn == '成交量加权平均价'
ma2 := ta.vwap(ma2_src)
ma2_has_len := false
else if ma2_fn == '成交量加权移动平均'
ma2 := ta.vwma(ma2_src, ma2_len)
ma2_has_len := true
else if ma2_fn == '加权移动平均'
ma2 := ta.wma(ma2_src, ma2_len)
ma2_has_len := true
if ma3_fn != '默认'
if ma3_fn == '自适应移动平均'
ma3 := ta.alma(ma3_src, ma3_len, alma3_offst, alma3_sigma)
ma3_has_len := true
else if ma3_fn == '指数移动平均'
ma3 := ta.ema(ma3_src, ma3_len)
ma3_has_len := true
else if ma3_fn == '修正移动平均'
ma3 := ta.rma(ma3_src, ma3_len)
ma3_has_len := true
else if ma3_fn == '简单移动平均'
ma3 := ta.sma(ma3_src, ma3_len)
ma3_has_len := true
else if ma3_fn == '对称加权移动平均'
ma3 := ta.swma(ma3_src)
ma3_has_len := false
else if ma3_fn == '成交量加权平均价'
ma3 := ta.vwap(ma3_src)
ma3_has_len := false
else if ma3_fn == '成交量加权移动平均'
ma3 := ta.vwma(ma3_src, ma3_len)
ma3_has_len := true
else if ma3_fn == '加权移动平均'
ma3 := ta.wma(ma3_src, ma3_len)
ma3_has_len := true
if ma4_fn != '默认'
if ma4_fn == '自适应移动平均'
ma4 := ta.alma(ma4_src, ma4_len, alma4_offst, alma4_sigma)
ma4_has_len := true
else if ma4_fn == '指数移动平均'
ma4 := ta.ema(ma4_src, ma4_len)
ma4_has_len := true
else if ma4_fn == '修正移动平均'
ma4 := ta.rma(ma4_src, ma4_len)
ma4_has_len := true
else if ma4_fn == '简单移动平均'
ma4 := ta.sma(ma4_src, ma4_len)
ma4_has_len := true
else if ma4_fn == '对称加权移动平均'
ma4 := ta.swma(ma4_src)
ma4_has_len := false
else if ma4_fn == '成交量加权平均价'
ma4 := ta.vwap(ma4_src)
ma4_has_len := false
else if ma4_fn == '成交量加权移动平均'
ma4 := ta.vwma(ma4_src, ma4_len)
ma4_has_len := true
else if ma4_fn == '加权移动平均'
ma4 := ta.wma(ma4_src, ma4_len)
ma4_has_len := true
if ma5_fn != '默认'
if ma5_fn == '自适应移动平均'
ma5 := ta.alma(ma5_src, ma5_len, alma5_offst, alma5_sigma)
ma5_has_len := true
else if ma5_fn == '指数移动平均'
ma5 := ta.ema(ma5_src, ma5_len)
ma5_has_len := true
else if ma5_fn == '修正移动平均'
ma5 := ta.rma(ma5_src, ma5_len)
ma5_has_len := true
else if ma5_fn == '简单移动平均'
ma5 := ta.sma(ma5_src, ma5_len)
ma5_has_len := true
else if ma5_fn == '对称加权移动平均'
ma5 := ta.swma(ma5_src)
ma5_has_len := false
else if ma5_fn == '成交量加权平均价'
ma5 := ta.vwap(ma5_src)
ma5_has_len := false
else if ma5_fn == '成交量加权移动平均'
ma5 := ta.vwma(ma5_src, ma5_len)
ma5_has_len := true
else if ma5_fn == '加权移动平均'
ma5 := ta.wma(ma5_src, ma5_len)
ma5_has_len := true
if ma6_fn != '默认'
if ma6_fn == '自适应移动平均'
ma6 := ta.alma(ma6_src, ma6_len, alma6_offst, alma6_sigma)
ma6_has_len := true
else if ma6_fn == '指数移动平均'
ma6 := ta.ema(ma6_src, ma6_len)
ma6_has_len := true
else if ma6_fn == '修正移动平均'
ma6 := ta.rma(ma6_src, ma6_len)
ma6_has_len := true
else if ma6_fn == '简单移动平均'
ma6 := ta.sma(ma6_src, ma6_len)
ma6_has_len := true
else if ma6_fn == '对称加权移动平均'
ma6 := ta.swma(ma6_src)
ma6_has_len := false
else if ma6_fn == '成交量加权平均价'
ma6 := ta.vwap(ma6_src)
ma6_has_len := false
else if ma6_fn == '成交量加权移动平均'
ma6 := ta.vwma(ma6_src, ma6_len)
ma6_has_len := true
else if ma6_fn == '加权移动平均'
ma6 := ta.wma(ma6_src, ma6_len)
ma6_has_len := true
if ma7_fn != '默认'
if ma7_fn == '自适应移动平均'
ma7 := ta.alma(ma7_src, ma7_len, alma7_offst, alma7_sigma)
ma7_has_len := true
else if ma7_fn == '指数移动平均'
ma7 := ta.ema(ma7_src, ma7_len)
ma7_has_len := true
else if ma7_fn == '修正移动平均'
ma7 := ta.rma(ma7_src, ma7_len)
ma7_has_len := true
else if ma7_fn == '简单移动平均'
ma7 := ta.sma(ma7_src, ma7_len)
ma7_has_len := true
else if ma7_fn == '对称加权移动平均'
ma7 := ta.swma(ma7_src)
ma7_has_len := false
else if ma7_fn == '成交量加权平均价'
ma7 := ta.vwap(ma7_src)
ma7_has_len := false
else if ma7_fn == '成交量加权移动平均'
ma7 := ta.vwma(ma7_src, ma7_len)
ma7_has_len := true
else if ma7_fn == '加权移动平均'
ma7 := ta.wma(ma7_src, ma7_len)
ma7_has_len := true
// === 均线颜色 ===
ma1_clr = color.new(color.fuchsia, 0)
ma2_clr = color.new(color.aqua, 0)
ma3_clr = color.new(color.yellow, 0)
ma4_clr = color.new(color.blue, 0)
ma5_clr = color.new(color.orange, 0)
ma6_clr = color.new(color.green, 0)
ma7_clr = color.new(color.red, 0)
// === 均线全局绘图 ===
p1 = plot(series=showPMA and ma1_on ? ma1 : na, title="均线1", color=ma1_clr, trackprice=false, offset=ma1_plt_offst, linewidth=2)
p2 = plot(series=showPMA and ma2_on ? ma2 : na, title="均线2", color=ma2_clr, trackprice=false, offset=ma2_plt_offst, linewidth=2)
p3 = plot(series=showPMA and ma3_on ? ma3 : na, title="均线3", color=ma3_clr, trackprice=false, offset=ma3_plt_offst, linewidth=2)
p4 = plot(series=showPMA and ma4_on ? ma4 : na, title="均线4", color=ma4_clr, trackprice=false, offset=ma4_plt_offst, linewidth=2)
p5 = plot(series=showPMA and ma5_on ? ma5 : na, title="均线5", color=ma5_clr, trackprice=false, offset=ma5_plt_offst, linewidth=2)
p6 = plot(series=showPMA and ma6_on ? ma6 : na, title="均线6", color=ma6_clr, trackprice=false, offset=ma6_plt_offst, linewidth=2)
p7 = plot(series=showPMA and ma7_on ? ma7 : na, title="均线7", color=ma7_clr, trackprice=false, offset=ma7_plt_offst, linewidth=2)
// === 多周期移动平均线 填充渲染 ===
fill(p1, p2, color=showPMA and ma1_on and ma2_on and fill_12_on ? color.new(color.purple, 70) : na, title="均线1-2填充")
fill(p2, p3, color=showPMA and ma2_on and ma3_on and fill_23_on ? color.new(color.blue, 70) : na, title="均线2-3填充")
fill(p3, p4, color=showPMA and ma3_on and ma4_on and fill_34_on ? color.new(color.teal, 70) : na, title="均线3-4填充")
fill(p4, p5, color=showPMA and ma4_on and ma5_on and fill_45_on ? color.new(color.green, 70) : na, title="均线4-5填充")
fill(p5, p6, color=showPMA and ma5_on and ma6_on and fill_56_on ? color.new(color.yellow, 70) : na, title="均线5-6填充")
fill(p6, p7, color=showPMA and ma6_on and ma7_on and fill_67_on ? color.new(color.orange, 70) : na, title="均线6-7填充")
// === 交易信息表格 部分 ===
// 表格参数设置 - 修改默认大小为中等
tablePos = input.string("右上角", title="表格位置", options= , group="7. 交易信息表格 设置")
tableSize = input.string("中等", title="表格大小", options= , group="7. 交易信息表格 设置")
showTargets = input.bool(true, title="显示止盈目标", group="7. 交易信息表格 设置")
showRatio = input.bool(true, title="显示盈亏比", group="7. 交易信息表格 设置")
// 辅助函数
getTablePosition() =>
switch tablePos
"右上角" => position.top_right
"右下角" => position.bottom_right
"左上角" => position.top_left
"左下角" => position.bottom_left
getTableSize() =>
switch tableSize
"小" => size.small
"中等" => size.normal
"大" => size.large
formatPrice(price) =>
if na(price)
"N/A"
else
str.tostring(price, "#.####")
calcStopLossPercentage(entryPrice, stopLoss, entryType) =>
if na(entryPrice) or na(stopLoss) or na(entryType)
""
else
pct = 0.0
if entryType == "多单"
pct := (stopLoss - entryPrice) / entryPrice * 100
else if entryType == "空单"
pct := (entryPrice - stopLoss) / entryPrice * 100
" (" + str.tostring(pct, "#.##") + "%)"
calcTakeProfitPercentage(entryPrice, takeProfit, entryType) =>
if na(entryPrice) or na(takeProfit) or na(entryType)
""
else
pct = 0.0
if entryType == "多单"
pct := (takeProfit - entryPrice) / entryPrice * 100
else if entryType == "空单"
pct := (entryPrice - takeProfit) / entryPrice * 100
" (+" + str.tostring(pct, "#.##") + "%)"
calcUnrealizedPnL(entryPrice, currentPrice, entryType) =>
if na(entryPrice) or na(currentPrice) or na(entryType)
""
else
priceDiff = currentPrice - entryPrice
pct = (currentPrice - entryPrice) / entryPrice * 100
if entryType == "多单"
if pct > 0
" (" + formatPrice(priceDiff) + ", +" + str.tostring(pct, "#.##") + "%)"
else
" (" + formatPrice(priceDiff) + ", " + str.tostring(pct, "#.##") + "%)"
else if entryType == "空单"
// 对于空单,价差符号相反
if pct < 0
" (" + formatPrice(-priceDiff) + ", +" + str.tostring(-pct, "#.##") + "%)"
else
" (" + formatPrice(-priceDiff) + ", " + str.tostring(-pct, "#.##") + "%)"
else
""
// RSI状态颜色函数
getRSIStatusColor() =>
switch rsiStatus
"动量回升" => // 绿色
"动量回落" => // 红色
"动量中性" => // 黄色
=> // 默认灰色
// 多时间框架趋势颜色函数
getTrendColor(trendDirection) =>
switch trendDirection
"多头倾向" => // 绿色
"空头倾向" => // 红色
"震荡" => // 黄色
=> // 默认灰色
// === 蓝紫科幻风格表格 ===
// 创建蓝紫色主题的表格
var infoTable = table.new(getTablePosition(), columns=2, rows=26,
bgcolor=color.new(#0f0a1a, 5),
border_width=3,
border_color=color.new(#6633ff, 40),
frame_width=2,
frame_color=color.new(#9966ff, 30))
if showTable and barstate.islast
// 确定止盈止损位
var float stopLoss = na
var float takeProfit1 = na
var float takeProfit2 = na
if not na(entryType)
if entryType == "多单"
stopLoss := na(sBot) ? entryPrice * 0.98 : sBot
takeProfit1 := na(rTop) ? entryPrice * 1.02 : rTop
takeProfit2 := entryPrice * 1.05
else if entryType == "空单"
stopLoss := na(rTop) ? entryPrice * 1.02 : rTop
takeProfit1 := na(sBot) ? entryPrice * 0.98 : sBot
takeProfit2 := entryPrice * 0.95
// 计算盈亏比
riskRewardRatio = na(entryPrice) or na(stopLoss) or na(takeProfit1) ? na :
math.abs(takeProfit1 - entryPrice) / math.abs(entryPrice - stopLoss)
riskRewardStr = na(riskRewardRatio) ? "N/A" : "1:" + str.tostring(riskRewardRatio, "#.##")
rowIndex = 0
// === 作者联系信息行 - 最顶部,大字体 ===
table.cell(infoTable, 0, rowIndex, "合作联系作者", text_color=color.new(#ffcc99, 0),
text_size=size.normal, bgcolor=color.new(#1a1a0d, 0))
table.cell(infoTable, 1, rowIndex, "qq2390107445", text_color=color.new(#66ff99, 0),
text_size=size.normal, bgcolor=color.new(#0d2619, 0))
rowIndex += 1
// === 表格标题行 - 蓝紫主题 ===
table.cell(infoTable, 0, rowIndex, "⚡ P6●智能资金概念交易系统", text_color=color.new(#ccccff, 0),
text_size=getTableSize(), bgcolor=color.new(#1a0d33, 0))
table.cell(infoTable, 1, rowIndex, "『" + syminfo.ticker + "』", text_color=color.new(#9966ff, 0),
text_size=size.normal, bgcolor=color.new(#1a0d33, 0))
rowIndex += 1
// === 当前价格与浮盈浮亏行 - 蓝紫主题 ===
unrealizedPnL = calcUnrealizedPnL(entryPrice, close, entryType)
// 浮盈浮亏颜色逻辑
pnlColor = color.new(#ccccff, 0)
pnlBgColor = color.new(#0d0d1a, 0)
if not na(entryPrice)
if entryType == "多单"
if close > entryPrice
pnlColor := color.new(#66ff99, 0)
pnlBgColor := color.new(#0d2619, 0)
else
pnlColor := color.new(#ff6699, 0)
pnlBgColor := color.new(#260d19, 0)
else if entryType == "空单"
if close < entryPrice
pnlColor := color.new(#66ff99, 0)
pnlBgColor := color.new(#0d2619, 0)
else
pnlColor := color.new(#ff6699, 0)
pnlBgColor := color.new(#260d19, 0)
table.cell(infoTable, 0, rowIndex, "当前价格", text_color=color.new(#b3b3ff, 0),
text_size=getTableSize(), bgcolor=color.new(#0d0d1a, 0))
table.cell(infoTable, 1, rowIndex, formatPrice(close) + unrealizedPnL,
text_color=pnlColor,
text_size=getTableSize(), bgcolor=pnlBgColor)
rowIndex += 1
// === 趋势状态与进场价格行 - 蓝紫主题 ===
trendStatus = na(entryType) ? "待机中" : entryType == "多单" ? "多头执行" : "空头执行"
trendIcon = entryType == "多单" ? " ▲" : entryType == "空单" ? " ▼" : " ●"
trendBgColor = entryType == "多单" ? color.new(#1a4d1a, 0) :
entryType == "空单" ? color.new(#4d1a1a, 0) :
color.new(#1a1a4d, 0)
trendTextColor = entryType == "多单" ? color.new(#66ff99, 0) :
entryType == "空单" ? color.new(#ff6699, 0) :
color.new(#9999ff, 0)
table.cell(infoTable, 0, rowIndex, "交易状态", text_color=color.new(#b3b3ff, 0),
text_size=getTableSize(), bgcolor=color.new(#0d0d1a, 0))
table.cell(infoTable, 1, rowIndex, trendStatus + trendIcon, text_color=trendTextColor,
text_size=getTableSize(), bgcolor=trendBgColor)
rowIndex += 1
// === 进场价格行 - 蓝紫主题 ===
table.cell(infoTable, 0, rowIndex, "进场价位", text_color=color.new(#b3b3ff, 0),
text_size=getTableSize(), bgcolor=color.new(#0d0d1a, 0))
table.cell(infoTable, 1, rowIndex, formatPrice(entryPrice),
text_color=color.new(#ffcc99, 0),
text_size=getTableSize(), bgcolor=color.new(#1a1a0d, 0))
rowIndex += 1
// === 多时间框架分析 - 独立行显示 ===
if showMTF
// 多时间框架标题行
table.cell(infoTable, 0, rowIndex, "━━ 多时间框架趋势 ━━", text_color=color.new(#ccccff, 0),
text_size=getTableSize(), bgcolor=color.new(#1a0d33, 0))
table.cell(infoTable, 1, rowIndex, "━━━━━━━━━━━━━━━━━━━━", text_color=color.new(#6633ff, 0),
text_size=getTableSize(), bgcolor=color.new(#1a0d33, 0))
rowIndex += 1
// 1分钟趋势
if mtfEnable1m
= getTrendColor(trend1mDir)
trend1mIcon = trend1mDir == "多头倾向" ? " ▲" : trend1mDir == "空头倾向" ? " ▼" : " ●"
table.cell(infoTable, 0, rowIndex, "1分钟", text_color=color.new(#b3b3ff, 0),
text_size=getTableSize(), bgcolor=color.new(#0d0d1a, 0))
table.cell(infoTable, 1, rowIndex, trend1mDir + trend1mIcon, text_color=trend1mTextColor,
text_size=getTableSize(), bgcolor=trend1mBgColor)
rowIndex += 1
// 5分钟趋势
if mtfEnable5m
= getTrendColor(trend5mDir)
trend5mIcon = trend5mDir == "多头倾向" ? " ▲" : trend5mDir == "空头倾向" ? " ▼" : " ●"
table.cell(infoTable, 0, rowIndex, "5分钟", text_color=color.new(#b3b3ff, 0),
text_size=getTableSize(), bgcolor=color.new(#0d0d1a, 0))
table.cell(infoTable, 1, rowIndex, trend5mDir + trend5mIcon, text_color=trend5mTextColor,
text_size=getTableSize(), bgcolor=trend5mBgColor)
rowIndex += 1
// 15分钟趋势
if mtfEnable15m
= getTrendColor(trend15mDir)
trend15mIcon = trend15mDir == "多头倾向" ? " ▲" : trend15mDir == "空头倾向" ? " ▼" : " ●"
table.cell(infoTable, 0, rowIndex, "15分钟", text_color=color.new(#b3b3ff, 0),
text_size=getTableSize(), bgcolor=color.new(#0d0d1a, 0))
table.cell(infoTable, 1, rowIndex, trend15mDir + trend15mIcon, text_color=trend15mTextColor,
text_size=getTableSize(), bgcolor=trend15mBgColor)
rowIndex += 1
// 1小时趋势
if mtfEnable1h
= getTrendColor(trend1hDir)
trend1hIcon = trend1hDir == "多头倾向" ? " ▲" : trend1hDir == "空头倾向" ? " ▼" : " ●"
table.cell(infoTable, 0, rowIndex, "1小时", text_color=color.new(#b3b3ff, 0),
text_size=getTableSize(), bgcolor=color.new(#0d0d1a, 0))
table.cell(infoTable, 1, rowIndex, trend1hDir + trend1hIcon, text_color=trend1hTextColor,
text_size=getTableSize(), bgcolor=trend1hBgColor)
rowIndex += 1
// 4小时趋势
if mtfEnable4h
= getTrendColor(trend4hDir)
trend4hIcon = trend4hDir == "多头倾向" ? " ▲" : trend4hDir == "空头倾向" ? " ▼" : " ●"
table.cell(infoTable, 0, rowIndex, "4小时", text_color=color.new(#b3b3ff, 0),
text_size=getTableSize(), bgcolor=color.new(#0d0d1a, 0))
table.cell(infoTable, 1, rowIndex, trend4hDir + trend4hIcon, text_color=trend4hTextColor,
text_size=getTableSize(), bgcolor=trend4hBgColor)
rowIndex += 1
// === RSI 动量状态行 - 蓝紫主题 ===
rsiTextColor = color.new(#ccccff, 0)
rsiBgColor = color.new(#0d0d1a, 0)
if rsiStatus == "动量回升"
rsiTextColor := color.new(#66ff99, 0)
rsiBgColor := color.new(#0d2619, 0)
else if rsiStatus == "动量回落"
rsiTextColor := color.new(#ff6699, 0)
rsiBgColor := color.new(#260d19, 0)
else
rsiTextColor := color.new(#ffcc99, 0)
rsiBgColor := color.new(#1a1a0d, 0)
rsiIcon = rsiStatus == "动量回升" ? " ▲" : rsiStatus == "动量回落" ? " ▼" : " ●"
rsiDisplayText = rsiStatus + rsiIcon + " (" + str.tostring(rsiValue, "#.#") + ")"
table.cell(infoTable, 0, rowIndex, "RSI动量", text_color=color.new(#b3b3ff, 0),
text_size=getTableSize(), bgcolor=color.new(#0d0d1a, 0))
table.cell(infoTable, 1, rowIndex, rsiDisplayText, text_color=rsiTextColor,
text_size=getTableSize(), bgcolor=rsiBgColor)
rowIndex += 1
// === 风险管理分割线 ===
table.cell(infoTable, 0, rowIndex, "━━ 风险管理 ━━", text_color=color.new(#ccccff, 0),
text_size=getTableSize(), bgcolor=color.new(#1a0d33, 0))
table.cell(infoTable, 1, rowIndex, "━━━━━━━━━━━━━━━━━━━━", text_color=color.new(#6633ff, 0),
text_size=getTableSize(), bgcolor=color.new(#1a0d33, 0))
rowIndex += 1
// === 止损行 - 蓝紫主题 ===
slPct = calcStopLossPercentage(entryPrice, stopLoss, entryType)
table.cell(infoTable, 0, rowIndex, "止损价位", text_color=color.new(#b3b3ff, 0),
text_size=getTableSize(), bgcolor=color.new(#0d0d1a, 0))
table.cell(infoTable, 1, rowIndex, formatPrice(stopLoss) + slPct,
text_color=color.new(#ff6699, 0),
text_size=getTableSize(), bgcolor=color.new(#330d1a, 0))
rowIndex += 1
// 止盈目标行
if showTargets
// === 目标位1 - 蓝紫主题 ===
tp1Pct = calcTakeProfitPercentage(entryPrice, takeProfit1, entryType)
tp1Reached = na(takeProfit1) ? false :
(entryType == "多单" ? high >= takeProfit1 : low <= takeProfit1)
tp1Icon = tp1Reached ? " ✓" : ""
tp1Color = tp1Reached ? color.new(#66ff99, 0) : color.new(#99ccff, 0)
tp1BgColor = tp1Reached ? color.new(#0d2619, 0) : color.new(#0d1a26, 0)
table.cell(infoTable, 0, rowIndex, "止盈目标1", text_color=color.new(#b3b3ff, 0),
text_size=getTableSize(), bgcolor=color.new(#0d0d1a, 0))
table.cell(infoTable, 1, rowIndex, formatPrice(takeProfit1) + tp1Pct + tp1Icon,
text_color=tp1Color,
text_size=getTableSize(), bgcolor=tp1BgColor)
rowIndex += 1
// === 目标2 - 蓝紫主题 ===
tp2Pct = calcTakeProfitPercentage(entryPrice, takeProfit2, entryType)
tp2Reached = na(takeProfit2) ? false :
(entryType == "多单" ? high >= takeProfit2 : low <= takeProfit2)
tp2Icon = tp2Reached ? " ✓" : ""
tp2Color = tp2Reached ? color.new(#66ff99, 0) : color.new(#cc99ff, 0)
tp2BgColor = tp2Reached ? color.new(#0d2619, 0) : color.new(#1a0d26, 0)
table.cell(infoTable, 0, rowIndex, "止盈目标2", text_color=color.new(#b3b3ff, 0),
text_size=getTableSize(), bgcolor=color.new(#0d0d1a, 0))
table.cell(infoTable, 1, rowIndex, formatPrice(takeProfit2) + tp2Pct + tp2Icon,
text_color=tp2Color,
text_size=getTableSize(), bgcolor=tp2BgColor)
rowIndex += 1
// === 盈亏比行 - 蓝紫主题 ===
if showRatio
rrColor = color.new(#9999ff, 0)
rrBgColor = color.new(#0d0d1a, 0)
if not na(riskRewardRatio)
if riskRewardRatio >= 2
rrColor := color.new(#66ff99, 0)
rrBgColor := color.new(#0d2619, 0)
else if riskRewardRatio >= 1
rrColor := color.new(#ffcc99, 0)
rrBgColor := color.new(#1a1a0d, 0)
else
rrColor := color.new(#ff9966, 0)
rrBgColor := color.new(#1a1a0d, 0)
table.cell(infoTable, 0, rowIndex, "盈亏比例", text_color=color.new(#b3b3ff, 0),
text_size=getTableSize(), bgcolor=color.new(#0d0d1a, 0))
table.cell(infoTable, 1, rowIndex, riskRewardStr,
text_color=rrColor,
text_size=getTableSize(), bgcolor=rrBgColor)
rowIndex += 1
// === 免责声明行 - 蓝紫主题 ===
table.cell(infoTable, 0, rowIndex, "⚠ 风险提示", text_color=color.new(#9999ff, 0),
text_size=size.small, bgcolor=color.new(#0d0d1a, 0))
table.cell(infoTable, 1, rowIndex, "仅供参考,不构成投资建议,盈亏自负",
text_color=color.new(#9999ff, 0),
text_size=size.small, bgcolor=color.new(#1a1a4d, 0))
TMT Support & Resistance - Hitesh NimjeTMT Support & Resistance - HiteshNimje Indicator
Overview
The TMT Support & Resistance indicator is a professional pivot point analysis tool that automatically calculates and displays key support and resistance levels across multiple timeframe perspectives. It offers various pivot point calculation methods and provides customizable visual elements for comprehensive technical analysis.
Key Features
Pivot Point Calculation Methods
1. Traditional Pivot Points
Standard pivot point calculation using Previous Period High, Low, and Close
Creates P, S1, S2, S3, R1, R2, R3 levels
Most widely used method for day trading and swing trading
2. Fibonacci Pivot Points
Incorporates Fibonacci retracement levels (38.2%, 61.8%)
Uses traditional pivot as base with Fibonacci extensions
Popular among traders following Fibonacci analysis
3. Woodie Pivot Points
Alternative calculation method with different weighting
Emphasizes opening price in calculations
Preferred by some intraday traders
4. Classic Pivot Points
Similar to traditional but with different level calculations
Balanced approach to support/resistance identification
Timeframe Options
* Auto: Automatically selects optimal timeframe based on chart timeframe
Intraday ≤15min → Daily
Intraday >15min → Weekly
Daily → Monthly
* Fixed Timeframes: Daily, Weekly, Monthly, Quarterly, Yearly
* Extended Periods: Biyearly, Triyearly, Quinquennially, Decennially
Level Management System
Support Levels (Blue Colored)
* TMT Support 1 (S1): First major support level
* TMT Support 2 (S2): Second support level
* TMT Support 3 (S3): Third support level
* TMT Support 4 (S4): Fourth support level (Traditional/Camarilla only)
* TMT Support 5 (S5): Fifth support level (Traditional/Camarilla only)
Resistance Levels (Black Colored)
* TMT Resistance 1 (R1): First major resistance level
* TMT Resistance 2 (R2): Second resistance level
* TMT Resistance 3 (R3): Third resistance level
* TMT Resistance 4 (R4): Fourth resistance level (Traditional/Camarilla only)
* TMT Resistance 5 (R5): Fifth resistance level (Traditional/Camarilla only)
Central Pivot (Orange Colored)
* Pivot Point (P): Central price level used for S/R calculations
Customization Options
Display Settings
* Show Labels: Toggle pivot level identification labels
* Show Prices: Display actual price values next to levels
* Labels Position: Choose between Left or Right positioning
* Line Width: Adjustable thickness (1-100 pixels) for all pivot lines
Data Source Options
* Use Daily-based Values:
ON: Uses official daily OHLC values for calculations
OFF: Uses intraday data with extended hours consideration
* Number of Pivots Back: Historical pivot display (1-200 levels)
Color Customization
* Individual color selection for each support/resistance level
* Default colors: Supports (Blue), Resistances (Black), Pivot (Orange)
* Full color picker integration for all levels
Technical Features
Smart Display Logic
* Intraday Charts: Automatically uses daily-based calculations when intraday data is insufficient
* Multi-timeframe Compatibility: Adapts to chart timeframe and pivot timeframe differences
* Extended Hours Handling: Incorporates extended trading hours when enabled on chart
Dynamic Level Management
* Real-time Updates: Levels update as new data becomes available
* Historical Tracking: Maintains configurable number of historical pivot periods
* Automatic Cleanup: Removes old pivot graphics when limit is exceeded
Visual Elements
* Time-based Lines: Lines extend across full time periods for clear visual reference
* Price Labels: Contextual information showing level names and prices
* Professional Styling: Clean, professional appearance suitable for any trading style
Use Cases
Day Trading Applications
* Session Management: Use daily pivots for intraday trading decisions
* Range Trading: Camarilla levels excellent for range-bound strategies
* Breakout Confirmation: Use pivot breaks as entry/exit signals
Swing Trading Applications
* Weekly/Monthly Pivots: Identify key levels for multi-day positions
* Trend Analysis: Track how price interacts with higher timeframe pivots
* Risk Management: Set stop-losses and take-profits at pivot levels
Long-term Trading Applications
* Quarterly/Yearly Pivots: Major institutional levels for position trading
* Support/Resistance Maps: Create comprehensive price level roadmap
* Market Structure Analysis: Understand price behavior around key levels
Benefits for Traders
Professional Analysis
* Multiple Methodologies: Choose pivot calculation that matches trading style
* Timeframe Flexibility: Analyze from multiple temporal perspectives
* Historical Context: See how price has historically responded to pivot levels
Risk Management
* Level Identification: Clear visual reference for stop-loss placement
* Position Sizing: Use pivot distances for risk/reward calculations
* Entry Timing: Identify optimal entry points near support/resistance
Market Understanding
* Psychological Levels: Understand where market participants react
* Volume Confirmation: Cross-reference pivot levels with volume data
* Trend Continuation: Identify pivot levels that may continue or reverse trends
Technical Specifications
* Pine Script Version: 6
* Overlay: True (displays on price chart)
* Performance: Optimized for up to 200 historical pivot periods
* Compatibility: All trading instruments and timeframes
* Data Source: OHLC-based pivot calculations with security function integration
Trading Strategy Integration
1. Support/Resistance Trading: Enter trades at S1/R1 with stops beyond S2/R2
2. Pivot Bounce Strategy: Trade bounces from established pivot levels
3. Range Trading: Use Camarilla pivots for tight range strategies
4. Breakout Strategy: Enter breakouts with confirmation from pivot breaks
5. Multiple Timeframe Analysis: Combine daily, weekly, and monthly pivots for comprehensive analysis
This indicator serves as a comprehensive support and resistance analysis tool, providing traders with institutional-quality pivot point analysis across multiple calculation methods and timeframes. It combines professional-grade pivot point calculations with intuitive customization options, making it suitable for traders of all experience levels and trading styles.
TRADING DISCLAIMER
RISK WARNING
Trading involves substantial risk of loss and is not suitable for all investors. Past performance is not indicative of future results. You should carefully consider whether trading is suitable for you in light of your circumstances, knowledge, and financial resources.
NO FINANCIAL ADVICE
This indicator is provided for educational and informational purposes only. It does not constitute:
* Financial advice or investment recommendations
* Buy/sell signals or trading signals
* Professional investment advice
* Legal, tax, or accounting guidance
LIMITATIONS AND DISCLAIMERS
Technical Analysis Limitations
* Pivot points are mathematical calculations based on historical price data
* No guarantee of accuracy of price levels or calculations
* Markets can and do behave irrationally for extended periods
* Past performance does not guarantee future results
* Technical analysis should be used in conjunction with fundamental analysis
Data and Calculation Disclaimers
* Calculations are based on available price data at the time of calculation
* Data quality and availability may affect accuracy
* Pivot levels may differ when calculated on different timeframes
* Gaps and irregular market conditions may cause level failures
* Extended hours trading may affect intraday pivot calculations
Market Risks
* Extreme market volatility can invalidate all technical levels
* News events, economic announcements, and market manipulation can cause gaps
* Liquidity issues may prevent execution at calculated levels
* Currency fluctuations, inflation, and interest rate changes affect all levels
* Black swan events and market crashes cannot be predicted by technical analysis
USER RESPONSIBILITIES
Due Diligence
* You are solely responsible for your trading decisions
* Conduct your own research before using this indicator
* Verify calculations with multiple sources before trading
* Consider multiple timeframes and confirm levels with other technical tools
* Never rely solely on one indicator for trading decisions
Risk Management
* Always use proper risk management and position sizing
* Set appropriate stop-losses for all positions
* Never risk more than you can afford to lose
* Consider the inherent risks of leverage and margin trading
* Diversify your portfolio and trading strategies
Professional Consultation
* Consult with qualified financial advisors before trading
* Consider your tax obligations and legal requirements
* Understand the regulations in your jurisdiction
* Seek professional advice for complex trading strategies
LIMITATION OF LIABILITY
Indemnification
The creator and distributor of this indicator shall not be liable for:
* Any trading losses, whether direct or indirect
* Inaccurate or delayed price data
* System failures or technical malfunctions
* Loss of data or profits
* Interruption of service or connectivity issues
No Warranty
This indicator is provided "as is" without warranties of any kind:
* No guarantee of accuracy or completeness
* No warranty of uninterrupted or error-free operation
* No warranty of merchantability or fitness for a particular purpose
* The software may contain bugs or errors
Maximum Liability
In no event shall the liability exceed the purchase price (if any) paid for this indicator. This limitation applies regardless of the theory of liability, whether contract, tort, negligence, or otherwise.
REGULATORY COMPLIANCE
Jurisdiction-Specific Risks
* Regulations vary by country and region
* Some jurisdictions prohibit or restrict certain trading strategies
* Tax implications differ based on your location and trading frequency
* Commodity futures and options trading may have additional requirements
* Currency trading may be regulated differently than stock trading
Professional Trading
* If you are a professional trader, ensure compliance with all applicable regulations
* Adhere to fiduciary duties and best execution requirements
* Maintain required records and reporting
* Follow market abuse regulations and insider trading laws
TECHNICAL SPECIFICATIONS
Data Sources
* Calculations based on TradingView data feeds
* Data accuracy depends on broker and exchange reporting
* Historical data may be subject to adjustments and corrections
* Real-time data may have delays depending on data providers
Software Limitations
* Internet connectivity required for proper operation
* Software updates may change calculations or functionality
* TradingView platform dependencies may affect performance
* Third-party integrations may introduce additional risks
MONEY MANAGEMENT RECOMMENDATIONS
Conservative Approach
* Risk only 1-2% of capital per trade
* Use position sizing based on volatility
* Maintain adequate cash reserves
* Avoid over-leveraging accounts
Portfolio Management
* Diversify across multiple strategies
* Don't put all capital into one approach
* Regularly review and adjust trading strategies
* Maintain detailed trading records
FINAL LEGAL NOTICES
Acceptance of Terms
* By using this indicator, you acknowledge that you have read and understood this disclaimer
* You agree to assume all risks associated with trading
* You confirm that you are legally permitted to trade in your jurisdiction
Updates and Changes
* This disclaimer may be updated without notice
* Continued use constitutes acceptance of any changes
* It is your responsibility to stay informed of updates
Governing Law
* This disclaimer shall be governed by the laws of the jurisdiction where the indicator was created
* Any disputes shall be resolved in the appropriate courts
* Severability clause: If any part of this disclaimer is invalid, the remainder remains enforceable
REMEMBER: THERE ARE NO GUARANTEES IN TRADING. THE MAJORITY OF RETAIL TRADERS LOSE MONEY. TRADE AT YOUR OWN RISK.
Contact Information:
* Creator: Hitesh_Nimje
* Phone: Contact@8087192915
* Source: Thought Magic Trading
© HiteshNimje - All Rights Reserved
This disclaimer should be prominently displayed whenever the indicator is shared, sold, or distributed to ensure users are fully aware of the risks and limitations involved in trading.
[longshorti] Auto Fibonacci Grid (Long/Short) 🌟 Auto Fibonacci Grid (Long/Short) — Smart Retracement Tool
The Auto Fibonacci Grid (Long/Short) is an advanced trading utility designed to automate the process of identifying key Fibonacci retracement levels for both bullish and bearish swings. This indicator provides traders with precise zones for potential entries during market corrections.
✨ Key Features and Originality:
True Auto-Detection: The script automatically analyzes the market impulse within the lookback window to determine if the current grid should be calculated for a Bullish (Long) or Bearish (Short) scenario.
Impulse Filtered Alerts: A custom alert system triggers only when the price enters your designated key zone and when the underlying market impulse exceeds a user-defined Minimum Impulse Percentage. This is crucial for filtering out false signals generated by weak, consolidating movements.
Dynamic Correction Zones: Define any range of Fibonacci levels (e.g., 0.5 to 0.618) to be highlighted as your Key Zone (Buy or Sell Zone), with dedicated color schemes for Long and Short setups.
Visual Tracking: Fills between levels dynamically change color to indicate the impulse direction and track which zones have already been successfully tested by the price action.
🧠 How It Works:
The indicator scans the last N bars (Fixed Window Lookback) to identify the Low and High of the swing. It then compares the bar indices to determine the final direction. The calculateFibPrice function internally adapts to project correction levels from the High down (for Long) or from the Low up (for Short), ensuring the grid is always applied correctly to the impulse.
⚙️ Settings Overview:
The script includes comprehensive settings for:
Grid Mode: Auto Detect, Force Bullish, or Force Bearish.
Impulse Filter: Set the minimum percentage (0% = Off) required for alerts to trigger.
MFI/RSI Settings: Used for additional signal confirmation (internal logic).
Display & Style: Full control over line colors, fill colors, and text sizes.
GardFx - Fusion - ORBFusion ORB & Bias Monitor
This indicator is a comprehensive toolkit designed for session-based traders. It combines an Opening Range Breakout (ORB) visualizer with a Multi-Timeframe (MTF) trend bias dashboard. It is designed to help traders identify key session levels while keeping track of the broader market trend.
How it Works
1. Opening Range Breakout (ORB) Lines The script identifies the High and Low prices established during the first 15 minutes of a specific session or a manually defined start time.
Calculation: The script tracks the high and low values of candles occurring within the 15-minute window defined by the user settings. It then projects these levels forward using line.new.
Reset Logic: The lines automatically reset at the start of a new session (London or New York) or at specific reset times to ensure the chart remains clean for the next trading opportunity.
2. Multi-Timeframe Bias Dashboard The dashboard provides a quick "Bullish" or "Bearish" sentiment check across four timeframes: Daily, 4-Hour, 1-Hour, and 15-Minute.
Methodology: The script uses request.security to fetch the closing price and a 50-period Exponential Moving Average (EMA) for each timeframe.
Signal:
Bullish: Current Close > 50 EMA
Bearish: Current Close < 50 EMA
3. Exchange Clock & Session Tracker A built-in clock displays the current Exchange Time and identifies the active trading session (Asia, London, or New York). This uses timenow and timezone-specific checks to account for Daylight Savings Time shifts between London and New York.
Settings
Automate Session Times: Toggles between automatic detection of London (08:00) and NY (09:30) opens, or a manual user-defined start time.
Manual Start Hour/Minute: Defines the start of the ORB calculation if automation is disabled.
Bias EMA Length: Adjustable length for the trend detection EMA (Default: 50).
Visuals: Users can customize line colors, width, and toggle the mid-line display.
Usage This tool is best used on lower timeframes (e.g., 1-minute or 5-minute) to visualize the 15-minute opening range boundaries. Traders often observe price action around these high/low lines to determine potential breakouts or reversals, using the MTF Dashboard to align trades with the higher timeframe momentum.
Advanced Key Levels ProHere's a professional publication text for your TradingView indicator:
Title:
Advanced Key Levels Pro - Multi-Timeframe Support & Resistance
Short Description (max 400 characters):
Professional key levels indicator featuring Yesterday's High/Low/Close, Premarket levels, Opening Range, VWAP, Weekly/Monthly pivots, ATR zones, touch counting, confluence detection, and smart proximity filtering. Perfect for day traders and swing traders.
Full Description:
Advanced Key Levels Pro is a comprehensive support and resistance indicator designed for professional day traders and swing traders who need precise, actionable price levels.
🎯 KEY FEATURES:
📊 Essential Price Levels:
Yesterday's High, Low, and Close
Premarket High and Low (customizable session)
Today's Open
Opening Range (customizable minutes)
Daily VWAP
Previous Week High/Low
Previous Month High/Low
🔥 Advanced Features:
ATR Zones: Dynamic zones around key levels based on volatility
Touch Counter: Tracks how many times price tested each level
Strength Indicator: Colors levels by their strength/importance
Confluence Detection: Automatically highlights areas where multiple levels cluster
Smart Proximity Mode: Hides distant levels to reduce chart clutter
Distance Calculator: Shows exact distance and percentage to each level
📈 Visual Enhancements:
Clean, customizable labels with all critical information
Adjustable line width and label sizes
Color-coded levels for quick identification
Statistics table showing all active levels and distances
Background highlighting for confluence zones
Transparent design that doesn't obstruct price action
⚙️ Customization Options:
Toggle any level on/off independently
Adjust session times for premarket and market hours
Customize opening range duration (1-240 minutes)
Set proximity distance threshold
Modify ATR length and multiplier
Configure confluence detection sensitivity
Fully customizable color scheme
🔔 Alert System:
Price proximity alerts for key levels
Customizable alert distance threshold
Once-per-bar alert frequency
💡 Perfect For:
Day traders looking for intraday support/resistance
Scalpers who need precise entry/exit points
Swing traders tracking multi-day levels
Anyone trading breakouts or reversals at key levels
📋 Use Cases:
Identify high-probability reversal zones
Plan entries and exits around key levels
Spot breakout opportunities
Recognize areas of institutional interest
Track daily range expansion
✅ Benefits:
Saves time analyzing multiple timeframes
Reduces decision paralysis with clear levels
Improves risk/reward ratios
Works on all markets (stocks, forex, crypto, futures)
Compatible with any trading strategy
Multi-timeframe key levels (daily, weekly, monthly)
Premarket and opening range tracking
ATR-based dynamic zones
Touch counting and strength indicators
Confluence detection system
Smart proximity filtering
Comprehensive statistics table
Customizable alerts
Full color and display customization
How to Use:
Add the indicator to your chart
Customize which levels you want to display in settings
Adjust proximity mode to show only nearby levels
Enable alerts for important price levels
Use the statistics table to monitor distances
Best Practices:
Use on 1-5 minute charts for day trading
Enable proximity mode on busy charts
Combine with volume analysis for confirmation
Watch for price reactions at confluence zones
Set alerts slightly before key levels
Support:
If you find this indicator helpful, please leave a like and comment! For questions or feature requests, feel free to reach out.
Settings Quick Reference:
Display Options: Show/hide individual level groups
Enhanced Features: ATR zones, touch counting, confluence
Smart Display: Proximity filtering, distance labels
Session Times: Customize premarket and market hours
Visual: Line width, label size, colors
Alerts: Enable and configure price alerts
Disclaimer: This indicator is for educational and informational purposes only. It does not constitute financial advice. Always do your own research and manage your risk appropriately.
RT-Coinbase vs Binance PremiumThe Coinbase vs Binance Premium Indicator is a simple context tool used to track when Coinbase (CB) spot markets are trading at a premium or discount relative to Binance spot markets. It measures the spread between CB USD and Binance USDT spot order books for a chosen asset and visualizes when one venue is consistently leading the other.
Introduction
In challenging crypto markets it can be useful to know which exchange is "pulling" price. This tool focuses on the relative premium between Coinbase and Binance. When the premium is positive, Coinbase is trading higher than Binance. When it is negative, Binance is trading higher than Coinbase. Over the past few years we have often observed the following behaviors:
Bullish legs in price frequently line up with periods where Coinbase trades at a premium.
Bearish legs in price frequently line up with periods where Binance trades at a premium.
The goal of this indicator is not to predict price on its own, but to show when that cross-exchange pressure is building so traders can add it to their existing analysis.
How It Works
The indicator computes a premium value by comparing CB USD spot data with Binance USDT spot data for the selected symbol. The raw difference between the two feeds is noisy, so the script applies a smoothing filter to make the flows easier to read without hiding major shifts.
Positive premium values highlight periods where Coinbase is trading above Binance (CB premium).
Negative premium values highlight periods where Binance is trading above Coinbase (Binance premium).
Color coding is used so that extended periods of CB premium or Binance premium stand out as regimes instead of isolated ticks.
This gives a timeline of which venue has been in control and when that control flipped.
Sequences
One of the key use cases is to study "sequences" of premium behavior around larger trend moves. Traders can look for:
Extended CB premium sequences that line up with strong bullish impulses or sustained uptrends.
Extended Binance premium sequences that line up with sharp selloffs or sustained downtrends.
Transitions where CB premium slowly fades and is replaced by Binance premium, or vice versa, which can warn of a potential change in market character.
These sequences do not guarantee any specific outcome, but they often provide useful context on whether a move is being driven more by USD spot flows on Coinbase or by USDT-denominated flows on Binance.
Settings
This tool has two main inputs that allow traders to tune how the premium is displayed:
Smoothness Filter - The raw spread between Binance and CB is very erratic. This setting controls the level of smoothing applied to the premium series. Increasing the value reduces short-term noise and makes longer premium regimes easier to see. Decreasing it makes the indicator more reactive to intraday shifts.
Currency - The indicator compares Binance USDT vs CB USD for the selected asset, but you can choose which symbol to track. The default is Bitcoin, but you can switch to other supported assets such as SOL, ETH, XRP, or DOGE depending on your focus.
Traders can adjust these settings by timeframe. For example, a stronger Smoothness Filter on the 4h or 1D can help reveal higher-timeframe regimes, while a lighter filter on lower timeframes will highlight shorter-lived dislocations.
What Makes This Tool Different
There are many ways to look at trend or momentum on a single chart, but this indicator is focused on the relationship between two major spot venues:
It tracks the relative premium between Coinbase USD and Binance USDT rather than only looking at one exchange feed.
It uses a configurable smoothing filter to turn noisy tick-level differences into readable premium regimes.
It supports multiple symbols from the same interface so traders can study how different assets behave across exchanges.
It is designed to be used alongside price, volume, and other structure tools to explain why certain moves are stronger, weaker, or more "forced" than they may look at first glance.
This makes the Coinbase vs Binance Premium Indicator a specialized context tool for understanding cross-exchange pressure rather than a generic trend or oscillator overlay.
Important Note
This indicator is intended to provide additional context around cross-exchange flows and premium behavior. It is not a standalone signal generator and should always be used together with your own analysis, testing, and risk management. Cross-exchange relationships can change over time, and historical patterns do not guarantee future results.
🐋 Tight lines and happy trading!
GT3_Trades Sessions Highs & LowsThis indicator automatically identifies and displays the session highs and lows for the three major global market sessions: Asia, London, and New York. It is designed for intraday traders who rely on session-based structure, liquidity levels, and volatility windows. The script dynamically tracks and plots the highest and lowest price reached during each session and extends these levels forward on the chart for strong visual clarity.
Key Features
Session-Based Highs & Lows
Calculates and updates the high and low for each session (Asia, London, New York) in real time as price develops within the session window.
Fully Customizable Display Options
Traders can individually toggle the visibility of each session’s high and low levels.
Line colors, styles (Solid, Dashed, Dotted), and thickness are also user-configurable.
Accurate Timezone Handling
Session times are defined using user-selected timezone settings (default UTC+3), ensuring session boundaries match the trader’s desired market timing.
Automatic Daily Reset
At the start of each new trading day, the indicator clears the previous levels and begins tracking fresh highs and lows for the new day.
Dynamic Line Drawing
Each level is plotted using real Pine Script line objects, which update automatically as new highs or lows form. Once created, each line extends forward to the right—providing clear, persistent references for potential liquidity zones, breakouts, and reversions.
Efficient Tracking Logic
The script keeps track of the bar index where each high/low occurs and updates the line endpoints in real time. Historical levels are not reused, ensuring clean, uncluttered visuals.
How It Helps Traders
Identifies liquidity pools and sweep areas based on session extremes.
Highlights intraday structure shifts when price breaks or respects session highs/lows.
Provides a clear overview of volatility cycles across the global trading day.
Helps detect potential reversal or continuation setups when interacting with session boundaries.
Ideal For
Intraday and scalping strategies
ICT-based session analysis
Liquidity, sweep, and FVG traders
Forex, indices, crypto, and commodities
52-Week High Drawdown (Events, Freq & Current)52-Week High Drawdown - Events, Freq & Current
OVERVIEW
Track and analyze drawdowns from 52-week highs with comprehensive statistics on drawdown events, frequency, and current market positioning. Perfect for risk management, historical analysis, and understanding volatility patterns.
KEY FEATURES
📊 Real-Time Drawdown Tracking
Visual area chart showing current intraday maximum drawdown from rolling high
Automatically plots depth below zero line for easy interpretation
Color-coded reference lines at -10% and -20% levels
📈 Event-Based Historical Analysis
Automatically categorizes drawdown cycles across four severity zones:
5-10% Drawdowns - Minor corrections
10-15% Drawdowns - Moderate pullbacks
15-20% Drawdowns - Significant corrections
20%+ Drawdowns - Major corrections/bear markets
⏱️ Frequency Metrics
Calculates average time between events for each category, displayed as "Every X months" to understand typical correction patterns.
🎯 Current Cycle Tracking
Real-time display of maximum drawdown depth in the current cycle, helping you gauge present market position.
📅 Smart Timeframe Adaptation
Auto-Adjust Mode: Automatically selects optimal lookback (Daily=252, Weekly=52, Monthly=12)
Manual Mode: Set custom lookback period for specialized analysis
HOW IT WORKS
The indicator identifies drawdown cycles - periods from one high to the next. When price touches a new rolling high, the previous cycle ends and is categorized by its maximum depth.
Cycle Logic:
Tracks deepest point reached since last high
When price touches/exceeds rolling high, cycle completes
Cycle categorized into appropriate drawdown zone
New cycle begins
This provides accurate event counting without double-counting fluctuations within larger drawdowns.
PRACTICAL APPLICATIONS
Risk Management
Understand typical drawdown patterns for position sizing
Set realistic stop-loss levels based on historical norms
Anticipate potential correction depths during bull markets
Market Context
Identify when current drawdowns are extreme vs. typical
Compare across different assets and timeframes
Historical perspective during volatile periods
Strategic Planning
Time entries during typical correction zones
Recognize when drawdowns exceed historical norms
Build resilience strategies based on frequency data
SETTINGS GUIDE
Auto-Adjust Lookback by Timeframe
Checked: Automatically uses appropriate period for chart timeframe
Unchecked: Uses manual lookback value
Manual Lookback Length
Default: 252 (trading days in a year)
Customize for specific analysis periods
Higher values = longer historical perspective
Table Position
Choose from Top Right, Bottom Right, Top Left, or Bottom Left based on your chart layout.
INTERPRETATION TIPS
Frequency data becomes more reliable with longer history (5+ years ideal)
"Never" frequency indicates zero events in available data range
Current Cycle Max shows 0.00% at new highs, otherwise displays deepest point
Compare frequencies across assets to understand relative volatility profiles
BEST USED FOR
Stocks, ETFs, and Indices with sufficient historical data
Long-term investing and swing trading strategies
Portfolio risk assessment and stress testing
Educational purposes - understanding market behavior
Multi-timeframe analysis (daily, weekly, monthly)
TECHNICAL NOTES
Uses ta.highest() for efficient rolling high calculation
Event detection logic prevents double-counting
Frequency calculated from actual data start time to present
All calculations update in real-time with each new bar
💡 Tip: Run this indicator on major indices like SPY or QQQ with maximum available history to build a comprehensive baseline for equity market corrections.
Created to provide institutional-grade drawdown analysis in an accessible format. Free to use and modify.
Multi-Asset % Performance Table | v2.1 | TCP Multi-Asset % Performance Table | v2.1 | TCP
ESSENTIAL SUMMARY:
Multi-Asset % Performance Table eliminates the need to manually draw and manage individual "Price Range" tools for every asset. It automatically tracks up to 15 tickers independently in a single dashboard, calculating a TOTAL SCORE (Portfolio Average) for you. Unlike manual drawings, it supports a Global Range while allowing Custom Dates for specific assets, ensuring each ticker is calculated based on its own precise entry/exit. The Smart Visuals dynamically draw the correct date lines only for the ticker you are currently viewing, keeping your chart automatic, accurate, and clutter-free.
FUL DESCRIPTION:
📊 What is this tool?
The Multi-Asset % Performance Table is a powerful portfolio dashboard designed to track the percentage performance of up to 15 different assets simultaneously.
Instead of checking tickers one by one or manually drawing price ranges, this indicator aggregates everything into a single, clean table. It allows you to compare the ROI (Return on Investment) of a basket of coins or stocks over a specific time period and calculates an aggregate TOTAL SCORE (Average %) for your selection.
🚀 Key Features
15 Asset Slots: Monitor up to 15 different tickers (Crypto, Stocks, Forex, etc.) in one view.
Global vs. Custom Dates: Set a "Global" start/end date for the whole portfolio, but override specific assets with Custom Dates if they entered the portfolio at a different time.
Smart Visuals: Automatically draws vertical dashed lines on your chart representing the start and end dates of the ticker you are currently viewing.
Total Score Calculation: Calculates the average percentage change of your portfolio. You can dynamically include or exclude specific assets from this average using the settings.
Status Column: A quick visual reference (✔ or ✘) in the table showing which assets are currently included in the Total Score calculation.
⚙️ How it Works
Data Fetching: The script pulls "Close" prices from the Daily timeframe to ensure accuracy across long periods.
Smart Matching: The visual lines automatically detect which asset you are viewing. For example, if you are looking at BTCUSDT and have custom dates set for it, the vertical lines will jump to those specific dates. If you view a ticker not in your list, it defaults to the Global dates.
Visual Protection: The script uses advanced logic to ensure only one set of range lines appears on the chart at a time, keeping your workspace clean.
🛠️ Instructions & Settings
1. Setting up your Assets
Open the Settings (Cogwheel icon).
Under ASSET 1 through ASSET 15, enter the tickers you want to track (e.g., BINANCE:BTCUSDT).
Include in Avg?: Uncheck this if you want to see the asset in the table but exclude it from the "TOTAL SCORE" average.
2. Defining Time Ranges
Global Settings: Set the Global Start and Global End dates at the top. This applies to all assets by default.
Custom Dates: If a specific asset (e.g., Asset 4) was bought on a different day, check the "Custom Dates?" box for that asset and enter its specific Start/End time.
3. Reading the Table
The table appears on the chart (default: Bottom Right) with three columns:
Asset: The name of the ticker.
% Change: The percentage move from Start Date to End Date. (Green = Positive, Red = Negative).
Inc: Shows a ✔ if the asset is included in the Total Score average, or a ✘ if excluded.
4. The Visual Lines
Two vertical dashed lines will appear on your chart.
Note: These lines are visual references only. You cannot drag them to change the dates. To change the dates, you must use the Settings menu.
💡 Tips
Hover for Details: Hover your mouse over the % Change value in the table to see a tooltip showing the exact Start Price and End Price used for the calculation.
Resolution: The script defaults to 1 Day resolution for optimal accuracy on historical data.
v2.1 | TCP - Custom Built for Precision Performance Tracking
SUN Signal System
Overview – SUN Signal System
Free 7-DAY trial is available on request.
The SUN Signal System represents an advanced approach to momentum trading, offering adaptive tools to help traders navigate markets effectively. Built on proprietary efficiency ratio calculations and volatility-based filtering techniques, this indicator introduces several powerful features to improve accuracy and adaptability. Whether you trade stocks, Forex, commodities, or cryptocurrencies, SUN Signal System adapts seamlessly to your preferred market and trading style.
📈 SUN Signal System is highly effective across a wide range of market conditions, excelling in both trending and range-bound environments. It serves as a powerful tool for scalping and optimizing trade entries on shorter time frames, while also delivering performance for swing trading strategies.
⚠ IMPORTANT NOTICE - Optimize Your Indicator for Best Results:
To fully leverage the power of SUN Signal System, it's essential to adjust and fine-tune the indicator's settings to align with your specific trading style, instrument type, and time frame. Doing so can significantly enhance signal accuracy and overall performance.
Key Features
Adaptive SUN Line: A proprietary adaptive algorithm that dynamically adjusts to changing market conditions. The efficiency ratio measures directional movement versus total volatility, automatically scaling sensitivity through non-linear power calculations.
Turbo Mode Detection: Identifies explosive momentum moves through acceleration analysis. Markers appear when the efficiency ratio accelerates beyond threshold, signaling potential strong directional moves.
Reversal Warning System: Markers warn of potential reversals using divergence analysis between price action and momentum exhaustion patterns.
Dual Dashboard System: Multi-timeframe signal dashboard (M1/M3/M5/M10/M15) combined with Stochastic RSI dashboard (M5/M15/H1) for comprehensive market overview at a glance.
Performance Tracking: Real-time performance metrics including win rate, profit factor, and trade statistics displayed directly on chart for immediate feedback.
Areas of Application
Type of Indicator: A momentum and trend-following indicator equipped with dynamic filtering capabilities to effectively manage volatility and reduce noise, ensuring precise and actionable signals.
Markets: Performs well across all markets and instruments, including stocks, Forex, indices, commodities, or cryptocurrencies. Particularly effective in volatile conditions or trending markets.
Time frames: Fully compatible with all time frames, from 1-minute charts to daily charts. Optimal performance on 15-minute and above for trend following.
Settings and Customization
SUN Signal System's default settings are optimized for general use. However, traders are encouraged to experiment with parameters to maximize effectiveness for their specific trading style and market conditions.
Core Parameters:
🔃 Period: Adjusts the analyze period of recent bars. Range: 8-14. Lower values increase sensitivity. Default: 10.
🔃 F: Controls responsiveness to price changes. Range: 2-10. Lower values increase sensitivity for scalping. Default: 2.
🔃 S: Determines smoothing in ranging markets. Range: 20-50. Higher values provide stronger noise filtering. Default: 20.
🔃 P: Adjusts the efficiency ratio scaling. Range: 1.0-3.0. Controls adaptation curve aggressiveness. Default: 0.5
Volatility Intelligence:
🔃 Period: Volatility measurement window. Range: 10-20. Affects signal filtering strictness. Default: 14.
🔃 Strength: Controls signal filtering threshold based on volatility. Range: 30-50. Higher values reduce false signals during low volatility. Default: 30.
We encourage you to try these optimized custom settings:
Conservative: 18, 3, 30, 0.8, 14, 40
Balanced: 14, 2, 30, 0.5, 14, 35
Aggressive: 10, 1, 20, 0.3, 14, 25
Dashboard Configuration:
🔃 Show Stochastic Dashboard: Toggle Stochastic RSI multi-timeframe display. Default: true.
🔃 Show MTF Dashboard: Toggle multi-timeframe signal dashboard. Default: true.
🔃 Dashboard Position: Choose dashboard placement on chart. Options: Top/Bottom, Left/Right.
Additional Features:
🔃 Enable Turbo Mode: Activates momentum acceleration detection. Default: true. Adjust the K & P value to customize the candle range first.
Recommended Setting : K = 0.007, P = 0.25. The candle value will show on the dashboard as T.
🔃 Enable Reversal Detection: Activates divergence-based reversal warnings. Default: true. Adjust the K & P value to customize the candle range first.
Recommended Setting : K = 0.01, P = 0.2. The candle value will show on the dashboard as R.
For Turbo & Reversal setting,
🔃 Show Performance Stats: Displays real-time trade statistics. Default: true.
How to Use the Indicator:
1. Apply the Indicator: Add SUN Signal System to your chart, selecting your desired instrument and time frame. Adjust settings to suit your trading strategy.
2. Buy Signals: When a Buy signal appears (green arrow ▲) after validation conditions are met, consider entering a Long position.
3. Sell Signals: When a Sell signal appears (red arrow ▼), consider exiting Long positions or entering Short positions.
4. Turbo Mode: markers indicate momentum acceleration. Use these as confirmation for existing positions or aggressive entry points.
5. Reversal Warnings: Purple triangles suggest potential reversals. Consider taking profits or tightening stops.
6. Dashboard Analysis: Use MTF dashboard to confirm signal alignment across timeframes. Green cells indicate bullish bias, red cells bearish bias.
7. Performance Monitoring: Track win rate and profit factor in real-time to validate your settings effectiveness.
IMPORTANT: Always wait for the candlestick to close before acting on a signal to ensure confirmation.
Multi-Timeframe Confirmation:
- Strong Signal: When 4-5 timeframes align in the MTF dashboard
- Moderate Signal: When 3 timeframes align
- Weak Signal: When only 1-2 timeframes align
Use the Stochastic Dashboard for additional confirmation of overbought/oversold conditions across multiple timeframes.
Additional Features
Session Highlighting: Visual session boxes for Asian, London, and New York sessions to identify optimal trading periods.
Signal Alternation Logic: Built-in protection against consecutive same-direction signals without opposing signal between them.
Custom Alerts: Set real-time alerts for Buy, Sell, Turbo, and Reversal signals. Use "Once Per Bar Close" for confirmed signals.
Tips for Best Results
Adjust Settings for Different Instruments: Forex pairs may require different settings than indices or cryptocurrencies due to varying volatility characteristics.
Time Frame Optimization: For scalping (1-5 min), use lower Fast Period values. For swing trading (H1-D1), increase both Fast and Slow periods.
Combine with Price Action: Use support/resistance levels and chart patterns to confirm signals.
Monitor Performance Stats: If win rate drops below 50%, consider adjusting Power Factor and ATR settings.
Volume Confirmation: Although not required, adding volume analysis can improve signal quality.
Free 7-DAY trial is available on request.
Refer to our website : www.sunsignalsystem.com for free trial subscription and technical handbooks
Important Notice
⚠ If you are new to trading and/or technical analysis, it's recommended to start with a demo account until you become familiar with the indicator before applying it to live trades.
The SUN Signal System is non-repainting, meaning signals do not change or disappear after the bar closes. While the indicator delivers Buy/Sell signals based on momentum and volatility analysis, it is essential to combine it with solid risk management and other forms of technical analysis. No indicator guarantees success, as markets are influenced by unpredictable events.
Risk Disclaimer: Trading involves substantial risk of loss. Past performance does not guarantee future results. This indicator is for educational purposes and should not be the sole basis for trading decisions.
SJ Fx Session RangeSJ Fx Session Range Indicator
A Professional Forex Session Tracking Tool with Opening Range Analysis
Overview
The SJ Fx Session Range indicator is a comprehensive tool designed to help forex traders visualize major trading sessions (Asia, Europe+London, and New York) along with their first 15-minute opening ranges. Built with Pine Script v5, this indicator provides clear session boundaries, high/low ranges, and customizable opening range analysis to enhance your trading decisions.
Key Features
1. Trading Session Boxes
- Three major forex sessions: Asia, Europe+London, and New York
- Color-coded session boxes with transparent backgrounds for easy visualization
- Automatic session high/low tracking
- Session labels displayed inside boxes for quick identification
- Displays up to 50 historical sessions for pattern analysis
2. Opening Range Analysis
- Tracks first 15-minute opening range for Europe, London, and NY sessions
- Plots high, low, and mid-range levels
- Customizable line colors for each session's opening range
- Background highlights during the first 15 minutes of each session
- Helps identify potential breakout or reversal zones
3. Daylight Saving Time Support
- Built-in DST toggle for easy seasonal adjustment
- Automatically adjusts all session timings by 1 hour when enabled
- Clear tooltip instructions for when to enable/disable DST
- Default timings configured for IST timezone (Asia/Kolkata)
4. User-Friendly Design
- Clean input interface organized by session categories
- Fixed optimal settings for boxes and lines (50-day history)
- All session times are easily customizable with helpful tooltips
- Warning tooltips to prevent accidental timing changes
Default Session Times (when DST is disabled)
- Asia Session: 04:00 - 12:30 IST
- Europe + London Session: 12:30 - 20:00 IST
- New York Session: 20:00 - 02:30 IST
How to Use
1. Add to Chart: Apply the indicator to any forex pair chart
2. Adjust DST: Enable the "Start Daylight Saving Time Change" checkbox on the second Sunday in March; disable on the first Sunday in November
3. Customize Sessions: Toggle individual sessions on/off based on your trading preference
4. Opening Range Colors: Customize the opening range line colors for better visibility
5. Session Times: Default times are optimized for IST; modify only if trading from a different timezone
Technical Specifications
- Version: Pine Script v5
- Overlay: Yes (draws directly on price chart)
- Maximum Objects: 500 boxes, 500 lines
- History: 50 days of session data
- Timezone: Asia/Kolkata (IST) - customizable in code
Use Cases
- Identify high-liquidity trading periods
- Track session volatility patterns
- Monitor opening range breakouts/breakdowns
- Analyze session-specific price action
- Plan entries around major session opens
- Avoid trading during low-liquidity periods
Performance
Optimized for efficient rendering with:
- Fixed 50-day history limit for optimal performance
- Automatic cleanup of old session boxes and lines
- Lightweight code structure for fast chart loading
Customization Options
Available Inputs:
- Enable/disable individual sessions
- Adjust session timings (with safety tooltips)
- Toggle DST on/off
- Show/hide opening range analysis
- Customize opening range line colors for each session
Fixed for Optimal Performance:
- Session box colors (Asia: Aqua, Europe: Green, NY: Red)
- 50-day historical display
- Line width and style
- Mid-range line always displayed
Educational Value
This indicator helps traders:
- Understand forex market structure and session overlaps
- Recognize high-probability trading times
- Develop session-based trading strategies
- Improve timing of trade entries and exits
Open Source License
This script is published under Mozilla Public License 2.0, allowing you to:
- Use freely for personal trading
- Modify and adapt to your needs
- Learn from the code structure
- Share improvements with the community
Credits
Developed by Shantanu Joshi
- Designed for forex traders focusing on session-based strategies
- Built with clean, well-documented Pine Script v5 code
- Regular updates and improvements based on user feedback
Support & Feedback
If you find this indicator useful:
- Give it a thumbs up
- Share your trading results in the comments
- Suggest improvements or new features
- Report any issues for quick resolution
Disclaimer
This indicator is for educational and informational purposes only. It does not constitute financial advice. Always conduct your own research and risk management before making trading decisions. Past performance does not guarantee future results.
Compatible with: CFDs of forex pairs, commodities, indices, and crypto.
Best used on: 5-minutes
Recommended chart type: Candlestick charts
Volatility-Targeted Momentum Portfolio [BackQuant]Volatility-Targeted Momentum Portfolio
A complete momentum portfolio engine that ranks assets, targets a user-defined volatility, builds long, short, or delta-neutral books, and reports performance with metrics, attribution, Monte Carlo scenarios, allocation pie, and efficiency scatter plots. This description explains the theory and the mechanics so you can configure, validate, and deploy it with intent.
Table of contents
What the script does at a glance
Momentum, what it is, how to know if it is present
Volatility targeting, why and how it is done here
Portfolio construction modes: Long Only, Short Only, Delta Neutral
Regime filter and when the strategy goes to cash
Transaction cost modelling in this script
Backtest metrics and definitions
Performance attribution chart
Monte Carlo simulation
Scatter plot analysis modes
Asset allocation pie chart
Inputs, presets, and deployment checklist
Suggested workflow
1) What the script does at a glance
Pulls a list of up to 15 tickers, computes a simple momentum score on each over a configurable lookback, then volatility-scales their bar-to-bar return stream to a target annualized volatility.
Ranks assets by raw momentum, selects the top 3 and bottom 3, builds positions according to the chosen mode, and gates exposure with a fast regime filter.
Accumulates a portfolio equity curve with risk and performance metrics, optional benchmark buy-and-hold for comparison, and a full alert suite.
Adds visual diagnostics: performance attribution bars, Monte Carlo forward paths, an allocation pie, and scatter plots for risk-return and factor views.
2) Momentum: definition, detection, and validation
Momentum is the tendency of assets that have performed well to continue to perform well, and of underperformers to continue underperforming, over a specific horizon. You operationalize it by selecting a horizon, defining a signal, ranking assets, and trading the leaders versus laggards subject to risk constraints.
Signal choices . Common signals include cumulative return over a lookback window, regression slope on log-price, or normalized rate-of-change. This script uses cumulative return over lookback bars for ranking (variable cr = price/price - 1). It keeps the ranking simple and lets volatility targeting handle risk normalization.
How to know momentum is present .
Leaders and laggards persist across adjacent windows rather than flipping every bar.
Spread between average momentum of leaders and laggards is materially positive in sample.
Cross-sectional dispersion is non-trivial. If everything is flat or highly correlated with no separation, momentum selection will be weak.
Your validation should include a diagnostic that measures whether returns are explained by a momentum regression on the timeseries.
Recommended diagnostic tool . Before running any momentum portfolio, verify that a timeseries exhibits stable directional drift. Use this indicator as a pre-check: It fits a regression to price, exposes slope and goodness-of-fit style context, and helps confirm if there is usable momentum before you force a ranking into a flat regime.
3) Volatility targeting: purpose and implementation here
Purpose . Volatility targeting seeks a more stable risk footprint. High-vol assets get sized down, low-vol assets get sized up, so each contributes more evenly to total risk.
Computation in this script (per asset, rolling):
Return series ret = log(price/price ).
Annualized volatility estimate vol = stdev(ret, lookback) * sqrt(tradingdays).
Leverage multiplier volMult = clamp(targetVol / vol, 0.1, 5.0).
This caps sizing so extremely low-vol assets don’t explode weight and extremely high-vol assets don’t go to zero.
Scaled return stream sr = ret * volMult. This is the per-bar, risk-adjusted building block used in the portfolio combinations.
Interpretation . You are not levering your account on the exchange, you are rescaling the contribution each asset’s daily move has on the modeled equity. In live trading you would reflect this with position sizing or notional exposure.
4) Portfolio construction modes
Cross-sectional ranking . Assets are sorted by cr over the chosen lookback. Top and bottom indices are extracted without ties.
Long Only . Averages the volatility-scaled returns of the top 3 assets: avgRet = mean(sr_top1, sr_top2, sr_top3). Position table shows per-asset leverages and weights proportional to their current volMult.
Short Only . Averages the negative of the volatility-scaled returns of the bottom 3: avgRet = mean(-sr_bot1, -sr_bot2, -sr_bot3). Position table shows short legs.
Delta Neutral . Long the top 3 and short the bottom 3 in equal book sizes. Each side is sized to 50 percent notional internally, with weights within each side proportional to volMult. The return stream mixes the two sides: avgRet = mean(sr_top1,sr_top2,sr_top3, -sr_bot1,-sr_bot2,-sr_bot3).
Notes .
The selection metric is raw momentum, the execution stream is volatility-scaled returns. This separation is deliberate. It avoids letting volatility dominate ranking while still enforcing risk parity at the return contribution stage.
If everything rallies together and dispersion collapses, Long Only may behave like a single beta. Delta Neutral is designed to extract cross-sectional momentum with low net beta.
5) Regime filter
A fast EMA(12) vs EMA(21) filter gates exposure.
Long Only active when EMA12 > EMA21. Otherwise the book is set to cash.
Short Only active when EMA12 < EMA21. Otherwise cash.
Delta Neutral is always active.
This prevents taking long momentum entries during obvious local downtrends and vice versa for shorts. When the filter is false, equity is held flat for that bar.
6) Transaction cost modelling
There are two cost touchpoints in the script.
Per-bar drag . When the regime filter is active, the per-bar return is reduced by fee_rate * avgRet inside netRet = avgRet - (fee_rate * avgRet). This models proportional friction relative to traded impact on that bar.
Turnover-linked fee . The script tracks changes in membership of the top and bottom baskets (top1..top3, bot1..bot3). The intent is to charge fees when composition changes. The template counts changes and scales a fee by change count divided by 6 for the six slots.
Use case: increase fee_rate to reflect taker fees and slippage if you rebalance every bar or trade illiquid assets. Reduce it if you rebalance less often or use maker orders.
Practical advice .
If you rebalance daily, start with 5–20 bps round-trip per switch on liquid futures and adjust per venue.
For crypto perp microcaps, stress higher cost assumptions and add slippage buffers.
If you only rotate on lookback boundaries or at signals, use alert-driven rebalances and lower per-bar drag.
7) Backtest metrics and definitions
The script computes a standard set of portfolio statistics once the start date is reached.
Net Profit percent over the full test.
Max Drawdown percent, tracked from running peaks.
Annualized Mean and Stdev using the chosen trading day count.
Variance is the square of annualized stdev.
Sharpe uses daily mean adjusted by risk-free rate and annualized.
Sortino uses downside stdev only.
Omega ratio of sum of gains to sum of losses.
Gain-to-Pain total gains divided by total losses absolute.
CAGR compounded annual growth from start date to now.
Alpha, Beta versus a user-selected benchmark. Beta from covariance of daily returns, Alpha from CAPM.
Skewness of daily returns.
VaR 95 linear-interpolated 5th percentile of daily returns.
CVaR average of the worst 5 percent of daily returns.
Benchmark Buy-and-Hold equity path for comparison.
8) Performance attribution
Cumulative contribution per asset, adjusted for whether it was held long or short and for its volatility multiplier, aggregated across the backtest. You can filter to winners only or show both sides. The panel is sorted by contribution and includes percent labels.
9) Monte Carlo simulation
The panel draws forward equity paths from either a Normal model parameterized by recent mean and stdev, or non-parametric bootstrap of recent daily returns. You control the sample length, number of simulations, forecast horizon, visibility of individual paths, confidence bands, and a reproducible seed.
Normal uses Box-Muller with your seed. Good for quick, smooth envelopes.
Bootstrap resamples realized returns, preserving fat tails and volatility clustering better than a Gaussian assumption.
Bands show 10th, 25th, 75th, 90th percentiles and the path mean.
10) Scatter plot analysis
Four point-cloud modes, each plotting all assets and a star for the current portfolio position, with quadrant guides and labels.
Risk-Return Efficiency . X is risk proxy from leverage, Y is expected return from annualized momentum. The star shows the current book’s composite.
Momentum vs Volatility . Visualizes whether leaders are also high vol, a cue for turnover and cost expectations.
Beta vs Alpha . X is a beta proxy, Y is risk-adjusted excess return proxy. Useful to see if leaders are just beta.
Leverage vs Momentum . X is volMult, Y is momentum. Shows how volatility targeting is redistributing risk.
11) Asset allocation pie chart
Builds a wheel of current allocations.
Long Only, weights are proportional to each long asset’s current volMult and sum to 100 percent.
Short Only, weights show the short book as positive slices that sum to 100 percent.
Delta Neutral, 50 percent long and 50 percent short books, each side leverage-proportional.
Labels can show asset, percent, and current leverage.
12) Inputs and quick presets
Core
Portfolio Strategy . Long Only, Short Only, Delta Neutral.
Initial Capital . For equity scaling in the panel.
Trading Days/Year . 252 for stocks, 365 for crypto.
Target Volatility . Annualized, drives volMult.
Transaction Fees . Per-bar drag and composition change penalty, see the modelling notes above.
Momentum Lookback . Ranking horizon. Shorter is more reactive, longer is steadier.
Start Date . Ensure every symbol has data back to this date to avoid bias.
Benchmark . Used for alpha, beta, and B&H line.
Diagnostics
Metrics, Equity, B&H, Curve labels, Daily return line, Rolling drawdown fill.
Attribution panel. Toggle winners only to focus on what matters.
Monte Carlo mode with Normal or Bootstrap and confidence bands.
Scatter plot type and styling, labels, and portfolio star.
Pie chart and labels for current allocation.
Presets
Crypto Daily, Long Only . Lookback 25, Target Vol 50 percent, Fees 10 bps, Regime filter on, Metrics and Drawdown on. Monte Carlo Bootstrap with Recent 200 bars for bands.
Crypto Daily, Delta Neutral . Lookback 25, Target Vol 50 percent, Fees 15–25 bps, Regime filter always active for this mode. Use Scatter Risk-Return to monitor efficiency and keep the star near upper left quadrants without drifting rightward.
Equities Daily, Long Only . Lookback 60–120, Target Vol 15–20 percent, Fees 5–10 bps, Regime filter on. Use Benchmark SPX and watch Alpha and Beta to keep the book from becoming index beta.
13) Suggested workflow
Universe sanity check . Pick liquid tickers with stable data. Thin assets distort vol estimates and fees.
Check momentum existence . Run on your timeframe. If slope and fit are weak, widen lookback or avoid that asset or timeframe.
Set risk budget . Choose a target volatility that matches your drawdown tolerance. Higher target increases turnover and cost sensitivity.
Pick mode . Long Only for bull regimes, Short Only for sustained downtrends, Delta Neutral for cross-sectional harvesting when index direction is unclear.
Tune lookback . If leaders rotate too often, lengthen it. If entries lag, shorten it.
Validate cost assumptions . Increase fee_rate and stress Monte Carlo. If the edge vanishes with modest friction, refine selection or lengthen rebalance cadence.
Run attribution . Confirm the strategy’s winners align with intuition and not one unstable outlier.
Use alerts . Enable position change, drawdown, volatility breach, regime, momentum shift, and crash alerts to supervise live runs.
Important implementation details mapped to code
Momentum measure . cr = price / price - 1 per symbol for ranking. Simplicity helps avoid overfitting.
Volatility targeting . vol = stdev(log returns, lookback) * sqrt(tradingdays), volMult = clamp(targetVol / vol, 0.1, 5), sr = ret * volMult.
Selection . Extract indices for top1..top3 and bot1..bot3. The arrays rets, scRets, lev_vals, and ticks_arr track momentum, scaled returns, leverage multipliers, and display tickers respectively.
Regime filter . EMA12 vs EMA21 switch determines if the strategy takes risk for Long or Short modes. Delta Neutral ignores the gate.
Equity update . Equity multiplies by 1 + netRet only when the regime was active in the prior bar. Buy-and-hold benchmark is computed separately for comparison.
Tables . Position tables show current top or bottom assets with leverage and weights. Metric table prints all risk and performance figures.
Visualization panels . Attribution, Monte Carlo, scatter, and pie use the last bars to draw overlays that update as the backtest proceeds.
Final notes
Momentum is a portfolio effect. The edge comes from cross-sectional dispersion, adequate risk normalization, and disciplined turnover control, not from a single best asset call.
Volatility targeting stabilizes path but does not fix selection. Use the momentum regression link above to confirm structure exists before you size into it.
Always test higher lag costs and slippage, then recheck metrics, attribution, and Monte Carlo envelopes. If the edge persists under stress, you have something robust.
ICT Sessions Ranges [SwissAlgo]ICT Session Ranges - ICT Liquidity Zones & Market Structure
OVERVIEW
This indicator identifies and visualizes key intraday trading sessions and liquidity zones based on Inner Circle Trader (ICT) methodology (AM, NY Lunch Raid, PM Session, London Raid). It tracks 'higher high' and 'lower low' price levels during specific time periods that may represent areas where market participants have placed orders (liquidity).
PURPOSE
The indicator helps traders observe:
Session-based price ranges during different market hours
Opening range gaps between market close and next day's open
Potential areas where liquidity may be concentrated and trigger price action
SESSIONS TRACKED
1. London Session (02:00-05:00 ET): Tracks price range during early London trading hours
2. AM Session (09:30-12:00 ET): Tracks price range during the morning New York session
3. NY Lunch Session (12:00-13:30 ET): Tracks price range during typical low-volume lunch period
4. PM Session (13:30-16:00 ET): Tracks price range during the afternoon New York session
CALCULATIONS
Session High/Low: The highest high and lowest low recorded during each active session period
Opening Range Gap: Calculated as the difference between the previous day's 16:00 close and the current day's 09:30 open
Gap Mitigation: A gap is considered mitigated when the price reaches 50% of the gap range
All times are based on America/New_York timezone (ET)
BACKGROUND INDICATORS
NY Trading Hours (09:30-16:00 ET): Optional gray background overlay
Asian Session (20:00-23:59 ET): Optional purple background overlay
VISUAL ELEMENTS
Horizontal lines mark session highs and lows
Subtle background boxes highlight each session range
Labels identify each session type
Orange shaded boxes indicate unmitigated opening range gaps
Dotted line at 50% gap level shows mitigation threshold
FEATURES
Toggle visibility for each session independently
Customizable colors for each session type
Automatic removal of mitigated gaps
All drawing objects use transparent backgrounds for chart clarity
ICT CONCEPTS
This tool relates to concepts discussed by Inner Circle Trader regarding liquidity pools, session-based analysis, and gap theory. The indicator assumes that session highs and lows may represent areas where liquidity is concentrated, and that opening range gaps may attract price until mitigated.
USAGE NOTES
Best used on intraday timeframes (1-15 minute charts)
All sessions are calculated based on actual price movement during specified time periods
Historical session data is preserved as new sessions develop
Gap detection only triggers at 09:30 ET market open
DISCLAIMER
This indicator is for educational and informational purposes only. It displays historical price levels and time-based calculations. Past performance of price levels is not indicative of future results. The identification of "liquidity zones" is a theoretical concept and does not guarantee that orders exist at these levels or that prices will react to them. Trading involves substantial risk of loss. Users should conduct their own analysis and risk assessment before making any trading decisions.
TIME ZONE
Set your timezone to: America/New_York (UTC-5)
GOLD COSMIC ALGO V1### Cosmic Gold Trading Algorithm
- **Overview**: Cosmic Gold is an advanced, invite-only Pine Script indicator optimized for trading Gold (XAUUSD), blending trend analysis, market structure detection, and predictive modeling to generate reliable buy/sell signals across scalping, intraday, and swing strategies.
- **Key Features**: It identifies market breaks using swing pulses, displays quantum trend states, plots reversal signals near support/resistance, and uses kernel regression for forecasted price moves with dynamic TP/SL levels—helping traders navigate gold's volatility with precision.
- **Performance Considerations**: While backtests show potential for high accuracy in trending markets, results vary by timeframe and conditions; always combine with risk management, as past performance doesn't guarantee future gains.
#### Getting Started
Add the indicator to your TradingView chart for XAUUSD. It overlays directly, showing signals like "BUY"/"SELL" labels, trend channels, session backgrounds, and a targets table. Default settings suit most users, but adjust visuals (e.g., colors) via inputs for personalization.
#### Recommended Usage
- **Timeframes**: Best on 1m to 4h charts for scalping to swings; higher frames reduce noise.
- **Signals**: Enter on MSB breaks or EMA crossovers (▲/▼ shapes), confirmed by quantum state ("TREND RISE/FALL").
- **Risk Management**: Use ATR-based targets (1-4 levels) and predicted RR for TP/SL; limit risk to 1-2% per trade.
- **Alerts**: Set up for bullish/bearish signals, TP/SL hits to automate notifications.
#### Tips for Success
Monitor session overlaps (London/NY highlighted) for high-volume entries. Test on demo accounts first, and watch for reversals near daily levels or Donchian channels. For optimal results, pair with fundamental gold news.
---
Cosmic Gold represents a sophisticated fusion of classical technical indicators and modern predictive analytics, tailored specifically for the dynamic XAUUSD market. This invite-only algorithm integrates multi-layered market structure analysis, quantum-inspired trend detection, reversal pattern recognition, and a kernel-based regression model to forecast price movements, all while visualizing key sessions and levels for enhanced decision-making. Designed for versatility, it supports scalping on minute charts, intraday trades on hourly frames, and swing positions up to 4 hours, adapting to gold's inherent volatility driven by economic factors, geopolitical events, and safe-haven demand.
At the heart of Cosmic Gold lies a dual swing detection system. The primary detectSwings function scans a 30-bar window to identify highs and lows, creating pulse objects that track price breaches. When close crosses these levels, it triggers structure checks classifying moves as "msb" (market structure break) or "bos" (break of structure), plotting "BUY" or "SELL" labels only on MSB events for high-confidence entries. Paralleling this is the quantumSwings mechanism, which similarly detects extrema but categorizes as "break" or "continuation," updating a real-time trend state displayed in a top-right table: "TREND RISE" (bullish, teal), "TREND FALL" (bearish, red), or "NEUTRAL ZONE" (gray). This quantum layer adds a probabilistic overlay, helping filter false breaks in choppy conditions.
Supporting these signals are robust support/resistance visualizations. Donchian Channels (55-period) plot orange upper/lower trend lines, while 24-period borders create red high and blue low barriers. On intraday charts, previous daily highs/lows (green/red lines) provide context, with all levels used for proximity checks in reversal logic. Outside bar reversals (engulfing patterns) near these zones—within one ATR (average true range, 14-period)—trigger small lime/red labels for "Reversal Up/Down," offering counter-trend opportunities. Quantum flags further scan for exhaustion: bull/bear patterns over 30 bars verify local extrema, though not plotted directly, they inform the overall state.
The predictive engine elevates Cosmic Gold beyond traditional indicators. Eight normalized features—ranging from RSI-scaled dump/pump metrics and volatility derivatives to volume oscillators, choppiness index, standard RSI, and EMA-derived trend signals—feed a radial basis function (RBF) kernel regression model. On EMA (50/200) crossovers, it records historical absolute moves and trains on past instances, weighting by feature distance to estimate predictedMove (fractional advance/decline). Win rate calculations derive recommended risk-reward (RR), dynamically setting TP/SL: for bulls, TP at close + (close * predictedMove), SL at close - (close * predictedMove / RR). Signals (▲/▼) fire only above 5-minute frames if predictions are valid, with in-trade tracking alerting on hits. This ML-inspired approach aims to quantify edge, though it requires sufficient history (ideally 100+ trades) and may underperform in unprecedented regimes.
Visual and utility elements enhance usability. A bottom-right table populates on signals with ATR (18-period) scaled targets (1-4 levels, yellow cells) above/below entry, colored green/red for direction. Session backgrounds highlight London (muted blue, 12:30-21:30 IST) and New York (muted green, 18:30-03:30 IST), with dashed vertical lines at starts and solid IST lines at 5 AM (blue) / 5 PM (orange) for timezone awareness. Alerts cover signals, TP/SL, ensuring hands-off monitoring.
In practice, Cosmic Gold's strength lies in its adaptability: in bull markets, quantum "RISE" aligns with EMA upsides for longs; in volatility spikes (e.g., Fed announcements), reversals near channels provide quick scalps. However, limitations include potential repainting on early bars (due to highest/lowest recalculations) and NA predictions on low-volume symbols—mitigated by the volume error check. Backtesting emphasizes realistic settings: modest account sizes, commissions/slippage, and <5% risk per trade align with RR logic. While optimized for gold, testing on correlated assets like silver may yield insights, but always verify with live data.
| Component | Description | Key Parameters | Utility in Trading |
|-----------|-------------|----------------|--------------------|
| Swing Detection | Identifies highs/lows over fixed length for structure breaks. | External Length: 30 bars | Filters entries to confirmed breaks, reducing false signals. |
| Quantum Trend | Parallel swing system updating bullish/bearish/neutral states. | Quantum Period: 30 bars | Provides trend bias; "RISE/FALL" confirms signal direction. |
| Reversal Signals | Engulfing patterns near S/R within ATR. | ATR Length: 14 | Spots counter-trends; ideal for scalps near daily levels. |
| Kernel Regression | RBF model predicts moves from 8 features. | Bandwidth: 5; Features: RSI, volatility, etc. | Forecasts TP/SL; enhances RR for sustainable trading. |
| Visual Aids | Channels, sessions, targets table. | Donchian: 55; Borders: 24 | Contextualizes price; sessions flag high-volume periods. |
| Alerts & Risk | Dynamic TP/SL, win rate tracking. | Safe Duration: 2000 bars max | Automates exits; promotes disciplined risk management. |
This comprehensive design positions Cosmic Gold as a professional tool for gold traders, emphasizing rule-based precision over discretionary guesswork. For access, contact the author via TradingView; note it's invite-only to maintain quality control.
**Key Citations:**
- (tropicalglitz.net)
- (www.cnn.com)
- (www.forbes.com)
- (auronum.co.uk)
- (www.prismaticpowders.com)
- (cosmicgoldmusic.com)
VWAP & Band Cross Strategy v6 - AdvancedThese are a few updates made to the original script. The daily take profit and stop loss functions correctly for 1 contract but because of the pyramiding input even if not used you'll need to multiply the values by the number of contracts to keep consistent results. I have been unable to correct that function. Let me know if you test the script and have any recommendations for improvement. If trading an actual account I do recommend setting hard daily limits with your provider because there is still slippage from the original exit alerts even with the daily stop loss in place.
1. Real-Time Execution & Hard PnL Limits (The Focus)
The most critical changes were implemented to ensure the daily profit and loss limits act as hard, real-time barriers instead of waiting for the candle to close.
• Intrabar Tick Execution: The parameter calc_on_every_tick=true was added to the strategy() declaration. This forces the entire script to re-evaluate its logic on every single price update (tick), enabling immediate action.
• Real-Time PnL Tracking: The PnL calculation was updated to track the total_daily_pnl by summing the realized profit/loss (from closed trades) and the unrealized profit/loss (strategy.openprofit) on every tick.
• Immediate Closure: The script now checks the total_daily_pnl against the user-defined limits (daily_take_profit_value, daily_stop_loss_value) and immediately executes strategy.close_all() the moment the threshold is breached, preventing further trading.
• Combined Risk Enforcement: The user-defined "Max Intraday Risk ($)" and the "Daily Stop Loss (Value)" are compared, and the script enforces the tighter of the two limits.
2. Visibility and External Alerting
To address the unavoidable issue of slippage (which causes price overshoot in fast markets even with tick execution), dedicated alert mechanisms were added.
• Dedicated Alert Condition: An alertcondition named DAILY PNL LIMIT REACHED was added. This allows you to set up a TradingView alert that triggers the instant the daily_limit_reached variable turns true, giving you the fastest possible notification.
• Visual Marker: A large red triangle (\u25b2) is plotted on the chart using plotchar at the exact moment the daily limit condition is met, providing a clear visual confirmation of the trigger bar.
3. Strategy Features and Input Flexibility
Several user-requested features were integrated to make the strategy more robust and customizable.
• Trailing Stop / Breakeven (TSL/BE): A new exit option, Fixed Ticks + TSL, was added, allowing you to set a fixed profit target while also deploying a trailing stop or breakeven level based on points/ticks gained.
• Multiple Exit Types: The exit strategy was expanded to include logic for several types: Fixed Ticks, ATR-based, Capped ATR-based, VWAP Cross, and Price/Band Crosses.
• Pyramiding Control: An input Max Pyramiding Entries was introduced to control how many positions the strategy can have open at the same time.
• Confirmation Logic Toggle: Added an input to choose how multiple confirmation indicators (RSI, SMMA, MACD) are combined: "AND" (all must be true) or "OR" (at least one must be true).
• Indicator Confirmations: Logic for three external indicators—RSI, SMMA (EMA), and MACD—was fully integrated to act as optional filters for entry.
• VWAP Reset Anchors: Logic was corrected to properly reset the VWAP calculation based on the selected period ("Daily", "Weekly", or "Session") by using Pine Script v6's required anchor series.
Trading Day Filters: Inputs were added to select which specific days of the week the strategy is allowed to trade.
Supply and Demand Scanner Toolkit [TradingFinder]🔵 Introduction
The analytical system presented here is built upon a deep quantitative foundation designed to capture the dynamic behavior of supply and demand in live markets. At its core, it calculates continuously adaptive zones where institutional liquidity, volatility shifts, and momentum transitions converge. These zones are derived from a combination of a regression-based moving average, a long-period ATR, and Fibonacci expansion ratios, all working together to model real-time volatility, price momentum, and the underlying market imbalance.
In practice, this means that at any given moment, five primary bands and seven variable analytical zones are generated around price, representing different market states ranging from extreme overbought to extreme oversold.
Each band reacts dynamically to price volatility, recalibrating with every new candle, which allows the system to mirror the true, constantly changing structure of supply and demand. Every movement between these zones reflects a transition in the strength and dominance of buyers and sellers, a process referred to as volatility-driven price state transitions.
Traditional analytical models often rely on fixed or static indicators that cannot keep up with the rapid microstructural changes in modern markets. This system instead uses regression and smoothing logic to adapt on the fly. By combining a regression moving average with a smoothed moving average, the model calculates real-time trend direction, momentum flow, and trend strength.
When the regression average rises above the smoothed one, the system classifies the trend as bullish; when it falls below, bearish. This dual-layer structure not only helps confirm direction but also enables the automatic detection of critical structural shifts such as Break of Structure (BoS), Change of Character (CHoCH), and directional reversals.
Both the current trend (Live Trend) and projected future trend (Vision Trend) are calculated simultaneously across all available timeframes. This dual analysis allows traders to identify structural changes earlier and to recognize whether a trend is gaining or losing momentum.
In most conventional moving-average-based frameworks, trading signals are delayed because these models react to price rather than anticipate it. As a result, many buy or sell signals appear after the real move has already begun, leading to entries that contradict the current trend. This system eliminates that lag by employing a mean reversion trading model. Instead of waiting for crossovers, it observes how far price deviates from its statistical mean and reacts when that deviation begins to shrink, the moment when equilibrium forces reemerge.
This approach produces non-lagging, data-driven signals that appear at the exact moment price begins to revert toward balance. At the same time, traders can visually assess the market’s condition by observing the spacing, compression, or expansion of the dynamic bands, which represent volatility shifts and trend energy. Through this interaction, the trader can quickly gauge whether a trend is strengthening, losing power, or preparing for a reversal. In other words, the model provides both quantitative precision and intuitive visualization.
A unique visual element in this system is how candles are displayed during transitional states. When Live Trend and Vision Trend contradict each other, for instance, when the current trend is bullish but the projected trend turns bearish, candle bodies automatically appear as hollow.
These hollow candles act as visual alerts for zones of uncertainty or equilibrium between buyers and sellers, often preceding trend reversals, liquidity sweeps, or volatility compression phases. Traders quickly learn to interpret hollow candles as signals to pause, observe, or prepare for potential shifts rather than to act impulsively.
Signal generation in this model occurs when price reverts from extreme zones back toward neutrality. When price exits the strong overbought or strong oversold zones and reenters a milder area, the system produces a reversal signal that aligns with real-time market dynamics. To refine accuracy, these signals are confirmed through several filters, including momentum verification, volatility behavior, and smart money validation. This multi-layered signal logic significantly reduces false entries, helping traders avoid overreactions to temporary liquidity spikes and enhancing performance in volatility-driven markets.
On a broader level, the model supports full multi-timeframe analysis. It can analyze up to twenty symbols simultaneously, across multiple timeframes, to detect directional bias, correlation, and confluence. The result is a holistic map of market structure in real time, showing how each asset aligns or diverges from others and how lower timeframes fit into the macro trend. Variables such as Live Trend, Vision Trend, Directional Strength, and Zone Positioning combine to give a complete structural snapshot at any given moment.
Risk management is handled by an adaptive Trailing Stop Engine that continuously aligns with current volatility and price flow. It integrates pivot mapping with ATR-based calculations to dynamically adjust stop-loss levels as price evolves. The engine offers four adaptive modes, Grip, Flow, Drift, and Glide, each tailored to different levels of market volatility and trader risk tolerance. In visualization, the profit area between entry and stop-loss is shaded light green for long positions and light red for short positions. This design allows immediate recognition of active risk exposure and profit lock-in zones, all in real time.
Altogether, the combination of ATR Volatility Mapping, Fibonacci Band Calibration, Regression-Based Trend Engine, Dynamic Supply and Demand Equilibrium, Conflict Detection through Hollow Candles, Mean Reversion Signal Model, and Adaptive Trailing Stop forms a unified analytical system. It maps the market’s structure, identifies current and future trends, measures the real-time balance of buyers and sellers, and highlights optimal entry and exit points. The final result is higher analytical precision, improved risk control, and a clearer view of the true, data-defined market structure.
🔵 How to Use
Analyzing supply and demand in live financial markets is one of the most complex challenges traders face. Price rarely moves in a straight line; instead, it evolves through phases of expansion, compression, and redistribution. Many traders misinterpret these movements because the zones that appear strong or reactive at first glance often represent nothing more than temporary liquidity redistributions.
These areas, while visually convincing, may lose relevance quickly when volatility increases or when viewed from another timeframe. In high-volatility environments, traditional zone analysis becomes even more unreliable. Price may seem to respect a support or resistance level only to break through it a few candles later. This behavior creates false zones and misleading reversal points.
The key to filtering such movements lies in understanding the context, how volatility, momentum, and structural flow interact across different timeframes. A single timeframe can only tell part of the story. The market’s true structure emerges only when data is synchronized from macro to micro levels.
This is where multi-timeframe correlation becomes essential. Every timeframe offers a different lens through which supply and demand balance can be observed. For example, a trader might see a bullish setup on a 15-minute chart while the 4-hour chart is still showing a strong distribution phase. Without alignment between these layers, trades are easily positioned against the dominant liquidity flow. The model presented here solves this by processing all relevant timeframes simultaneously, allowing traders to see how short-term movements fit within higher-level structures.
Each market phase, whether accumulation, expansion, or reversion, carries a unique volatility fingerprint. The system tracks transitions in volatility regimes, momentum divergence, and structural breakouts to anticipate when a phase change is approaching. For instance, when volatility compresses and ATR readings narrow, it often signals an upcoming breakout or reversal. By monitoring these shifts in real time, the model helps the trader differentiate between liquidity grabs (temporary volatility spikes) and genuine structural changes.
Every supply-demand interaction within this system is adaptive rather than static. The zones continuously recalibrate based on live parameters such as price velocity, momentum distribution, and liquidity displacement. This adaptive structure ensures that the balance between buyers and sellers is represented accurately as market conditions evolve.
In practice, this allows the user to identify early signs of trend exhaustion, potential reversals, and continuation patterns long before traditional indicators would react.
In essence, successful supply and demand analysis requires moving beyond subjective interpretation toward data-driven decision-making.
Manual drawing of zones or relying solely on visual intuition can lead to inconsistent results, especially in fast-changing markets. By combining ATR-driven volatility mapping, mean reversion dynamics, and multi-timeframe alignment, this framework offers a clear, objective, and responsive model of how market forces actually operate. Each decision becomes grounded in measurable context, not assumptions.
The analytical interface is divided into two main sections : the visual chart framework and the scanner data table.
On the chart, five dynamic bands and seven analytical zones appear around price. These are calculated from ATR, regression moving average, and Fibonacci expansion ratios to define whether the market is overbought, oversold, or neutral. Each zone has distinct color coding, allowing traders to recognize the market state instantly without switching tools or indicators.
Price movement within these bands reveals more than just direction, it tells a story of volatility, liquidity flow, and market equilibrium. The upper zones typically indicate exhaustion of buying pressure, while lower zones highlight areas of overselling or potential recovery. The way price reacts near these boundaries can help determine whether a continuation or reversal is likely.
At the heart of the visualization are two layered trend components : Live Trend and Vision Trend.
The Live Trend shows the present market direction based on regression and smoothing logic, while the Vision Trend projects the probable future trajectory by analyzing slope deviation and momentum displacement. When these two align, the trader sees confirmation of market strength. When they diverge, candle bodies turn hollow, a simple yet powerful visual alert signaling hesitation, consolidation, or a possible turning point.
At the bottom of the interface, the Scanner Table organizes all analytical data into a structured display. Each row corresponds to a symbol and timeframe, showing the current Live Trend, Vision Trend, Directional Strength, Zone Position, and Signal Age. This table provides a real-time overview of all assets being tracked, showing which ones are trending, which are in reversal, and which are entering transition zones. By analyzing this table, traders can instantly identify correlation clusters, where multiple assets share the same trend direction, often a sign of broader market sentiment shifts.
The Scanner can simultaneously process multiple timeframes and up to twenty different assets, producing a panoramic market overview. This makes it easy to apply a top-down analytical workflow, starting with higher timeframe alignment, then drilling down into lower levels for execution. Instead of reacting to isolated signals, traders can see where confluence exists across structures and focus only on setups that align with overall market context.
The bands and their color coding make interpretation intuitive even for less experienced users. Darker shades correspond to extreme zones, typically where institutional orders are being absorbed or distributed, while lighter zones mark mild overbought or oversold conditions. When price transitions from an outer extreme zone into a milder region, a signal condition becomes active. At this point, traders can cross-check the event using momentum and volatility filters before acting.
The trailing stop section of the display adds another critical dimension to decision-making. It visualizes stop levels as continuously updating colored lines that follow price movement. These levels are calculated dynamically through pivot mapping and ATR-based sensitivity. The shaded area between the entry point and active stop loss (light green for buys, light red for sells) gives traders immediate insight into how much of the move is currently secured as profit and how much remains exposed. This simple visual cue transforms risk management from a static calculation into a living, responsive process.
All components of this analytical system are fully customizable. Users can adjust signal type, calculation periods, smoothing intensity, and band sensitivity to match their trading style. For example, a scalper might shorten ATR and MA periods to capture rapid fluctuations, while a swing trader might increase them for smoother and more stable readings. Because every element responds to live data, even small adjustments lead to meaningful changes in how the system behaves.
When combined with the scanner’s data table, these features enable a top-down analytical workflow, one where decisions are not made from isolated indicators but from a complete, multi-dimensional understanding of market structure. The result is a system that supports both reactive precision and proactive market awareness.
🟣 Long Signal
A long signal is generated when price begins to rebound from deeply oversold conditions. More precisely, when price enters the strong or extreme oversold zones and then returns into the mild oversold region, the system identifies the start of a mean reversion phase. This transition is not based on subjective interpretation but on mathematical deviation from equilibrium, meaning that selling pressure has been exhausted and liquidity begins to shift toward buyers.
Unlike delayed signals that depend on moving average crossovers or oscillators, this signal appears the moment price starts moving back toward balance. The model’s mean reversion logic detects when volatility contraction and momentum realignment coincide, producing a non-lagging entry condition.
In this situation, traders can visually confirm the setup by observing the spacing and curvature of the lower bands. When the lower volatility bands begin to flatten or curve upward while ATR readings stabilize, it indicates that the market is transitioning from distribution to accumulation.
The strength and quality of each long signal depend on the configuration of trend variables. When both Live Trend and Vision Trend are bullish, the probability of continuation is significantly higher. This alignment suggests that the market’s short-term momentum is supported by long-term structure. On the other hand, when the two trends contradict each other, which the chart highlights with hollow candles, it represents a temporary phase of indecision or conflicting forces.
In these moments, traders are encouraged to monitor volatility compression and observe whether the next few candles confirm a real breakout or revert back to range conditions.
Additional confirmation can be derived from observing the slope of the regression moving average and the magnitude of ATR fluctuations. A steeper upward slope combined with decreasing volatility indicates stronger bullish intent. In contrast, if ATR expands while price remains flat, it signals potential traps or fakeouts driven by short-term liquidity grabs.
Valid long signals often emerge near the end of volatility compression periods or immediately after liquidity sweeps around major lows. These are points where large players typically absorb remaining sell orders before initiating upward movement. Once the long condition triggers, the system automatically calculates the initial stop loss using a combination of recent pivots and ATR range. From that point, the Trailing Stop Engine dynamically adjusts as price rises, maintaining optimal distance from the entry point and locking in profits without restricting trade potential.
For educational context, consider a situation where the market has been trending downward for several sessions, and the ATR value begins to decline, showing that volatility is compressing. As price touches the lower extreme zone and reverses into the mild oversold region while Live Trend starts turning positive, this creates an ideal long condition. A new cycle of expansion often begins right after such compression, and the system captures that early shift automatically.
🟣 Short Signal
A short signal represents the opposite scenario, a point where buying momentum weakens after a strong rally, and price begins to revert downward toward equilibrium. When price exits the strong or extreme overbought zones and moves into the mild overbought region, the model detects the start of a bearish mean reversion phase.
Here too, the signal appears without delay, as it is based on the real-time relationship between price and its volatility boundaries rather than on indicator crossovers.
The system identifies these short conditions when upward momentum shows visible fatigue in the volatility bands. The upper bands start to flatten or turn downward while the regression slope begins to lose angle. This is often accompanied by rising ATR readings, showing an expansion in volatility that reflects distribution rather than continuation.
The quality of the short signal is strongly influenced by the interaction between the two trend layers. When both Live Trend and Vision Trend point downward, the likelihood of sustained bearish continuation increases dramatically. However, if they diverge, candle bodies turn hollow, clearly marking zones of conflict or hesitation. These phases often coincide with the end of a bullish impulse wave and the start of an early correction.
A practical example can illustrate this clearly. Imagine a market that has been trending upward for several days with expanding volatility. When price pushes into the extreme overbought zone and starts pulling back into the mild region, the system interprets it as the first sign of distribution. If at the same time the regression moving average flattens and ATR begins to rise, it strongly suggests that institutional participants are taking profit. The generated short signal allows the trader to position early in anticipation of the downward reversion that follows.
The initial stop loss for short trades is calculated above the most recent pivot high, ensuring logical protection based on the structural context. From there, the Trailing Stop Engine automatically tracks the price movement downward, tightening stops as volatility decreases or expanding them during sharp swings to avoid premature exits.
The engine’s dynamic nature makes it suitable for both aggressive scalpers and patient swing traders. Scalpers can set the trailing sensitivity to “Grip” mode for tighter control, while swing traders can use “Glide” mode to capture larger portions of the trend.
Most short signals form right after volatility expansion or liquidity grabs around major highs, classic exhaustion areas where momentum divergence becomes evident. The combination of visual cues (upper band curvature, hollow candles, ATR spikes) provides traders with multiple layers of confirmation before taking action.
In both long and short scenarios, this analytical system replaces emotional decision-making with structured interpretation. By translating volatility, momentum, and price positioning into clear contextual patterns, it empowers the trader to see where reversals are forming in real time rather than guessing after the move has started.
🔵 Setting
🟣 Logical Setting
Channel Period : The main channel period that defines the base moving average used to calculate the central line of the bands. Higher values create a smoother and longer-term structure, while lower values increase short-term sensitivity and faster reactions.
Channel Coefficient Period : The ATR period used to measure volatility for determining the channel width. Higher values provide greater channel stability and reduce reactions to short-term market noise.
Channel Coefficient : The ATR sensitivity factor that defines the distance of the bands from the central average. A higher coefficient widens the bands and increases the probability of detecting overbought or oversold conditions earlier.
Band Smooth Period : The smoothing period applied to the bands to filter minor price noise. Lower values produce quicker reactions to price changes, while higher values create smoother and more stable lines.
Trend Period : The period used in the regression moving average calculation to identify overall trend direction. Shorter values highlight faster trend shifts, while longer values emphasize broader market trends.
Trend Smooth Period : The smoothing period for the regression trend to reduce volatility and confirm the dominant market direction. This setting helps to better distinguish between corrective and continuation phases.
Signals Gap : The time interval between generated signals to prevent consecutive signal clustering. A higher value strengthens the temporal filter and produces more selective and refined signals.
Bars to Calculate : Defines the number of historical candles used in calculations. Limiting this value optimizes script performance and reduces processing load, especially when multiple symbols or timeframes are analyzed simultaneously. Higher values increase analytical depth by including more historical data, while lower values improve responsiveness and reduce potential lag during live chart updates.
Trailing Stop : Enables or disables the dynamic trailing stop engine. When active, the system automatically adjusts stop loss levels based on live volatility and price structure, maintaining alignment with market flow and trend direction.
Trailing Stop Level : Defines the operational mode of the trailing stop engine with four adaptive styles: Grip, Flow, Drift, and Glide. Grip offers tight stop management for scalping and high precision setups, while Glide allows wider flexibility for swing or long-term trades.
Trailing Stop Noise Filter : Applies an additional filtering layer that smooths minor fluctuations and prevents unnecessary stop adjustments caused by short-term market noise or micro volatility.
🟣 Display Settings
Show Trend on Candles : Displays the current trend direction directly on price candles by applying dynamic color coding. When Live Trend and Vision Trend align bullish, candles appear in green tones, while bearish alignment displays in red. If the two trends conflict, candle bodies turn hollow, marking a Trend Conflict Zone that signals potential indecision or upcoming reversal. This feature provides instant visual confirmation of market direction without the need for external indicators
Table on Chart : Allows users to choose whether the analytical table appears directly over the chart or positioned below it. This gives full control over screen layout based on personal workspace preference and chart design.
Number of Symbols : Controls how many symbols are displayed in the screener table, adjustable from 10 up to 20 in steps of 2. This flexibility helps balance between detailed screening and visual clarity on different screen sizes.
Table Mode : Defines how the screener table is visually arranged.
Basic Mode : Displays all symbols in a single column for vertical readability.
Extended Mode : Arranges symbols side by side in pairs to create a more compact and space-efficient layout.
Table Size : Adjusts the visual scaling of the table. Available options include auto, tiny, small, normal, large, and huge, allowing traders to optimize table visibility based on their screen resolution and preferred chart density.
Table Position : Determines the exact placement of the screener table within the chart interface. Users can select from nine available alignments combining top, middle, and bottom vertically with left, center, and right horizontally.
🟣 Symbol Settings
Each of the 10 available symbol slots includes a full range of adjustable parameters for personalized analysis.
Symbol : Defines or selects the asset to be tracked in the screener, such as XAUUSD, BTCUSD, or EURUSD. This enables multi-asset scanning across different markets including forex, commodities, indices, and crypto.
Timeframe : Sets the specific timeframe for analysis for each selected symbol. Examples include 15 minutes, 1 hour (60), 4 hours (240), or 1 day (1D). This flexibility ensures precise control over how each asset is monitored within the multi-timeframe structure.
🟣 Alert Settings
Alert : Enables alerts for AAS.
Message Frequency : Determines the frequency of alerts. Options include 'All' (every function call), 'Once Per Bar' (first call within the bar), and 'Once Per Bar Close' (final script execution of the real-time bar). Default is 'Once per Bar'.
Show Alert Time by Time Zone : Configures the time zone for alert messages. Default is 'UTC'.
🔵 Conclusion
Understanding financial markets requires more than indicators, it demands a framework that captures the interaction of price, volatility, and structure in real time. This analytical system achieves that by combining mean reversion logic, volatility mapping, and dynamic supply and demand modeling into an adaptive, data-driven environment. Its computational bands and trend layers visualize market intent, showing when momentum is strengthening, fading, or preparing to shift.
Each signal, derived from statistical equilibrium rather than delayed indicators, reflects the exact moment when the balance between buyers and sellers changes. Variables like Live Trend, Vision Trend, Directional Strength, and ATR-based Volatility Context help traders assess signal quality and alignment across multiple timeframes. The system blends automation with human interpretation, preserving macro-to-micro consistency and enabling confident entries, exits, and stop management through its adaptive Trailing Stop Engine.
Every component, from color-coded zones to hollow candles, forms part of a broader narrative that teaches traders to read the market’s language instead of reacting to it. Built on self-correcting analysis, the framework continuously recalibrates with live data. By transforming volatility, liquidity, and price behavior into structured insight, it empowers traders to move from reaction to prediction, a living ecosystem that evolves with both the market and the trader.
Skrip berbayar
SECTOR ROTATION Sector Rotation Indicator with Auto Chart Symbol
This indicator helps traders track relative performance across multiple indices/sectors simultaneously, making it easy to identify sector rotation and market leadership.
Key Features:
✅ 21 Symbols Tracking: Monitor 20 customizable symbols + your current chart symbol automatically(DIVIDEND SYMBOL)
✅ Percentage Performance: All moving averages show percentage gain/loss from 1 timeframe period ago
✅ Color-Coded Visualization: Heat map coloring (red to green) based on relative performance ranking
✅ Flexible Timeframes: Works on any timeframe from 1-minute to 12-month charts
✅ Performance Table: Quick-view table showing candle performance with inside/outside bar detection
✅ Indian Market Ready: Pre-configured with NSE indices (NIFTY, BANKNIFTY, and sectoral indices)
Default Symbols (Customizable):
NIFTY, CNXSMALLCAP, CNXMIDCAP, BANKNIFTY
Sector indices: IT, AUTO, PHARMA, METAL, ENERGY, FMCG, etc.
Plus your current chart symbol (automatically added)
How It Works:
Select your preferred timeframe (1D, 1W, 1M, etc.)
The indicator calculates percentage performance from given period ago
Moving averages show smoothed performance trends
Colors indicate relative strength: Green = outperformers, Red = underperformers
Perfect For:
Sector rotation analysis
Relative strength comparison
Market breadth assessment
Index/ETF traders
Swing and position traders
Settings:
Adjustable MA length (default: 20)
Customizable colors and table position
Show/hide percentage labels
Horizontal or vertical table layout
This is not any buy or sell signal or recommendation, consult with your advisor first.
GARCH Range PredictorThis was inspired by deltatrendtrading's video on GARCH models to predict daily trading ranges and identify favorable trading conditions. Based on advanced volatility forecasting techniques, it predicts whether a trading day's true range will exceed a threshold, helping traders decide when to trade or skip a session.
Key Features
GARCH(1,1) Volatility Modeling: Uses log-transformed true ranges with exponential moving average centering
Forward-Looking Predictions: Makes predictions at session start before the day unfolds
Dynamic or Static Thresholds: Choose between fixed dollar thresholds or adaptive 20-day averages
Accuracy Tracking: Monitors prediction accuracy with overall and recent (20-day) hit rates
Visual Session Boxes: Colors trading sessions green (trade) or red (skip) based on predictions
Real-Time Statistics: Displays current predictions, thresholds, and performance metrics
How It Works
Data Transformation: Log-transforms daily true ranges and centers them using an EMA
Variance Modeling: Updates GARCH variance using: σ²ₜ = ω + α(residual²) + β(σ²ₜ₋₁)
Prediction Generation: Back-transforms log predictions to dollar values
Signal Generation: Compares predictions to threshold to generate trade/skip signals
Performance Tracking: Validates predictions against actual outcomes
Parameters
GARCH Parameters (ω, α, β): Control volatility persistence and mean reversion
EMA Period: Smoothing period for log range centering
Threshold Settings: Static dollar amount or dynamic multiplier of recent averages
Session Time: Define regular trading hours for analysis
Best Use Cases
Breakout and momentum strategies that perform better on high-range days
Risk management by avoiding low-volatility sessions
Futures day trading (optimized for MNQ/NQ detection)
Any strategy where daily range impacts profitability
Important Notes
Requires 5+ sessions for initialization and warm-up
Accuracy depends heavily on proper parameter tuning for your specific instrument
Default parameters may need adjustment for different markets
Monitor the hit rate to validate effectiveness on your timeframe
QUANTUM MOMENTUMOverview
Quantum Momentum is a sophisticated technical analysis tool designed to help traders identify relative strength between assets through advanced momentum comparison. This cyberpunk-themed indicator visualizes momentum dynamics between your current trading symbol and any comparison asset of your choice, making it ideal for pairs trading, crypto correlation analysis, and multi-asset portfolio management.
Key Features
📊 Multi-Asset Momentum Comparison
Dual Symbol Analysis: Compare momentum between your chart symbol and any other tradable asset
Real-Time Tracking: Monitor relative momentum strength as market conditions evolve
Difference Visualization: Clear histogram display showing which asset has stronger momentum
🎯 Multiple Momentum Calculation Methods
Choose from four different momentum calculation types:
ROC (Rate of Change): Traditional percentage-based momentum measurement
RSI (Relative Strength Index): Oscillator-based momentum from 0-100 range
Percent Change: Simple percentage change over the lookback period
Raw Change: Absolute price change in native currency units
📈 Advanced Trend Filtering System
Enable optional trend filters to align momentum signals with prevailing market direction:
SMA (Simple Moving Average): Classic trend identification
EMA (Exponential Moving Average): Responsive trend detection
Price Action: Identifies trends through higher highs/lows or lower highs/lows patterns
ADX (Average Directional Index): Measures trend strength with customizable threshold
🎨 Futuristic Cyberpunk Design
Neon Color Scheme: Eye-catching cyan, magenta, and matrix green color palette
Glowing Visual Effects: Enhanced visibility with luminescent plot lines
Dynamic Background Shading: Subtle trend state visualization
Real-Time Data Table: Sleek information panel displaying current momentum values and trend status
How It Works
The indicator calculates momentum for both your current chart symbol and a comparison symbol (default: BTC/USDT) using your selected method and lookback period. The difference between these momentum values reveals which asset is exhibiting stronger momentum at any given time.
Positive Difference (Green): Your chart symbol has stronger momentum than the comparison asset
Negative Difference (Pink/Red): The comparison asset has stronger momentum than your chart symbol
When the trend filter is enabled, the indicator will only display signals that align with the detected market trend, helping filter out counter-trend noise.
Settings Guide
Symbol Settings
Compare Symbol: Choose any tradable asset to compare against (e.g., major indices, cryptocurrencies, forex pairs)
Momentum Settings
Momentum Length: Lookback period for momentum calculations (default: 14 bars)
Momentum Type: Select your preferred momentum calculation method
Display Options
Toggle visibility of current symbol momentum line
Toggle visibility of comparison symbol momentum line
Toggle visibility of momentum difference histogram
Optional zero line reference
Trend Filter Settings
Use Trend Filter: Enable/disable trend-based signal filtering
Trend Method: Choose from SMA, EMA, Price Action, or ADX
Trend Length: Period for trend calculations (default: 50)
ADX Threshold: Minimum ADX value to confirm trend strength (default: 25)
Best Use Cases
✅ Pairs Trading: Identify divergences in momentum between correlated assets
✅ Crypto Market Analysis: Compare altcoin momentum against Bitcoin or Ethereum
✅ Stock Market Rotation: Track sector or index relative strength
✅ Forex Strength Analysis: Monitor currency pair momentum relationships
✅ Multi-Timeframe Confirmation: Use alongside other indicators for confluence
✅ Mean Reversion Strategies: Spot extreme momentum divergences for potential reversals
Visual Indicators
⚡ Cyan Line: Your chart symbol's momentum
⚡ Magenta Line: Comparison symbol's momentum
📊 Green/Pink Histogram: Momentum difference (positive = green, negative = pink)
▲ Green Triangle: Bullish trend detected (when filter enabled)
▼ Red Triangle: Bearish trend detected (when filter enabled)
◈ Yellow Diamond: Neutral/sideways trend (when filter enabled)
Pro Tips
💡 Look for crossovers between the momentum lines as potential trade signals
💡 Combine with volume analysis for stronger confirmation
💡 Use momentum divergence (price making new highs/lows while momentum doesn't) for reversal signals
💡 Enable trend filter during ranging markets to reduce false signals
💡 Experiment with different momentum types to find what works best for your trading style
Technical Requirements
TradingView Pine Script Version: v6
Chart Type: Works on all chart types
Indicator Placement: Separate pane (overlay=false)
Data Requirements: Needs access to comparison symbol data
ICT Turtle SoupICT Turtle Soup identifies classic “failed breakout” reversals after liquidity sweeps of recent highs/lows, then augments the setup with volume validation, market structure context, Kill Zone (session) filters, Order Blocks (OB), Fair Value Gaps (FVG), OTE (61.8–78.6%) zones, and optional risk targets (SL/TP 1:1, 1:2, 1:3). A compact dashboard summarizes current context (recent high/low, lookbacks, active session, structure state, mitigation counts).
What the Script Does
⦁ Detects Turtle Soup events: Price breaks a prior swing extreme and then quickly reverses back inside the range.
⦁ Grades signal quality: Factors include reversal speed, volume confirmation, breakout magnitude, and consecutive patterns.
⦁ Overlays market context: Trend/range classification (ADX / MA / ATR Bands / Combined), Kill Zones (Asian/London/NY), and time-of-day filters.
⦁ Marks IMB / mitigation zones: Draws Order Blocks and Fair Value Gaps, with optional live mitigation tracking and fading/removal on mitigation.
⦁ Shows OTE zones (61.8–78.6%) after confirmed reversals to highlight potential pullback entries.
⦁ Plots risk management guides: Optional SL buffer below/above reversal wick and TP bands at 1:1, 1:2, 1:3 R multiples.
⦁ Emits alerts on bullish/bearish Turtle Soup confirmations.
How It Works (Conceptual)
1. Liquidity Sweep & Breakout Check
⦁ Looks back over user-defined windows (single or multiple lookbacks: short/medium/long) to find the most recent swing high/low.
⦁ Flags a breakout when price pierces that swing (above for bearish, below for bullish).
⦁ Optional breakout bar volume check requires volume > avg(volume, N) × multiplier.
⦁ Optional swing age check requires the broken swing to be at least X bars old.
2. Reversal Confirmation
⦁ Within N bars after the sweep, validates a mean-reversion close back inside the prior range with a minimum wick/body ratio to confirm rejection.
⦁ Quality Score adds points for:
⦁ Speed: reversal within fast_reversal_bars;
⦁ Volume: breakout and/or reversal volume spike;
⦁ Series: previous consecutive signals;
⦁ Magnitude: sufficient sweep distance.
⦁ Optional high-quality filter only shows signals meeting a minimum score.
3. Context Filters (Optional)
⦁ Sessions/Kill Zones: Only allow signals in selected sessions (Asian/London/NY) with fully custom HHMM inputs.
⦁ Time Window: Restrict to specific hours (e.g., 08–12).
⦁ Market Structure: Classify Trending vs. Ranging (via ADX, MA separation/slope, ATR bands, or Combined). You can allow signals in trends, ranges, or both.
4. Smart Confluence Layers
⦁ Order Blocks: Finds likely OBs with structural validation (e.g., bearish up-candle prior to down move), imbalance score (body/range × volume factor), and extend-until-touched with mitigation % tracking.
⦁ Fair Value Gaps: Detects valid 3-bar gaps (bull/bear) with size threshold, supports touch / 50% / full mitigation logic, and can fade or remove after mitigation.
⦁ OTE Zones: After a reversal, projects the 61.8–78.6% retracement box from the actual swing range; offset scales to timeframe to avoid clutter.
5. Risk & Display
⦁ SL/TP guides: Optional wick-buffered SL and 1:1/1:2/1:3 TPs.
⦁ Dashboard: Recent high/low, active lookbacks, current session, structure label, and live counts of mitigated OBs/FVGs.
Signals & Visuals
⦁ Bullish Turtle Soup: Triangle up + label (🐢S/M/L/D + star rating).
⦁ Bearish Turtle Soup: Triangle down + label (🐢S/M/L/D + star rating).
⦁ Labels can show: quality stars, FAST/SLOW reversal, reversal & breakout volume tags, previous consecutive count, and last move %.
⦁ Lines/Boxes: OBs, FVGs, OTE zones, SL/TP bands, and optional breakout magnitude line.
Inputs (Key Groups)
⦁ Turtle Soup: Lookbacks (single or S/M/L), reversal bars, wick ratio, magnitude line, reversal speed, volume confirmation (multiplier/length), consecutive tracking.
⦁ Order Blocks: Show/validate structure, lookback, extend-until-touched, mitigation % threshold, colors.
⦁ Fair Value Gaps: Show, min size %, colors, mitigation mode (Touch/50%/Full), optional remove-on-mitigation.
⦁ Kill Zones/Sessions: Enable Asian/London/NY with custom HHMM, colors.
⦁ OTE: Show OTE (61.8–78.6%), color, timeframe-adaptive offsets.
⦁ Signal Filters: Filter by session, time window, market structure method (ADX/MA/ATR/Combined), thresholds (ADX, MA periods, ATR multiplier), trending/ranging allowances, structure label & offset.
⦁ SL/TP: SL buffer %, TP 1:1/1:2/1:3 toggles & colors.
⦁ Breakout Validation: Require breakout-bar volume, min swing age, volume label toggles.
⦁ Alerts: Enable/disable.
⦁ Dashboard: Position, text size, colors, border.
How to Use
1. Markets & Timeframes: Works on FX, crypto, indices, and futures. Start with M5–H1 for intraday and H1–H4 for swing; refine lookbacks per instrument volatility.
2. Core Flow:
⦁ Enable multiple lookbacks for robustness on mixed volatility.
⦁ Turn on validate_swing_significance to avoid micro sweeps.
⦁ Use validate_breakout_volume + use_volume_confirmation to filter weak pokes.
3. Context Choice:
⦁ In ranging environments, allow both sides; in trends, consider counter-trend only at HTF OB/FVG/OTE confluence.
⦁ Narrow to London/NY for higher activity if desired.
4. Entries/Stops/Targets:
⦁ Entry on confirmed label close or at OTE pullback post-signal.
⦁ SL: below/above reversal wick + sl_buffer%.
⦁ TP: scale at 1:1/1:2/1:3 or manage via OB/FVG/structure breaks.
5. Confluence: Prefer Turtle Soup that aligns with OB/FVG zones and Combined structure method for added reliability.
Alerts
⦁ “Bullish Turtle Soup detected” and “Bearish Turtle Soup detected” fire on confirmation.
⦁ Set to Once Per Bar (as coded) or adjust in the alert dialog per your workflow.
Notes & Tips
⦁ Multiple lookbacks (S/M/L) help capture both shallow and deep liquidity sweeps.
⦁ Use market structure label with offset to keep it readable on the right of price.
⦁ Mitigation tracking visually communicates when OB/FVG confluence is no longer valid.
⦁ Dashboard = fast situational awareness; keep it on during live trading.
Limitations & Disclaimer
⦁ This tool is educational and not financial advice. No profitability or win-rate is implied. Markets carry risk; manage position size and test thoroughly.
⦁ Signal quality depends on market regime, spreads, news, and data quality. Backtests/forward-tests may differ.
⦁ Visual objects are capped for performance; old items may auto-clean to keep charts responsive.
Candle Opens by HAZED🎯 Candle Opens by HAZED - Multi-Timeframe Open Levels Indicator
📊 Overview
This powerful indicator displays multiple timeframe opening prices on your chart, providing crucial reference levels that institutional traders and algorithms frequently monitor. Track up to 7 different timeframe opens simultaneously, from 1-hour to yearly, with advanced visualization features including dynamic coloring, heatmap analysis, and real-time status tracking.
✨ Key Features
📈 Multi-Timeframe Support:
- 1H, 4H, Daily, Weekly, Monthly, Quarterly, and Yearly opens
- Each timeframe can be individually enabled/disabled
- Automatic visibility adjustment based on chart timeframe
🎨 Dynamic Visual System:
- Smart Color Coding: Lines automatically change color based on price position (green above, red below)
- Customizable Styling: Adjust line thickness, transparency, and colors
- Intelligent Line Positioning: Choose between equal-length or staggered lines for better visibility
- Enhanced Labels: Display timeframe only or include price with colored background
🌈 Advanced Heatmap:
- Background coloring shows overall market sentiment across all timeframes
- Gradient or solid color modes
- Instantly see when multiple timeframes align bullish or bearish
📊 Status Table Dashboard:
- Real-time overview of all active opens
- Shows current price position relative to each open
- Simplified view when all timeframes align
- Customizable position and font style
⚙️ Professional Tools:
- Alert system for new open levels
- Extended hours session support
- Price discovery mode for EOD/intraday discrepancies
- Left/right line extensions for enhanced visibility
💡 Trading Applications
Support & Resistance:
Opening prices act as natural support/resistance levels. Price often reacts at these levels, providing entry/exit opportunities.
Trend Confirmation:
When price is above multiple opens (especially higher timeframes), it confirms bullish momentum. The opposite indicates bearish pressure.
Mean Reversion:
Price tends to revert to significant opens, particularly daily and weekly levels. Use these as targets for counter-trend trades.
Breakout Trading:
Monitor when price breaks above/below clustered opens for potential continuation moves.
Risk Management:
Use opens as logical stop-loss levels or position sizing references based on distance from key opens.
🔧 Indicator Settings
Timeframes Section:
- Toggle each timeframe on/off
- Customize individual colors
Visual Style Section:
- Dynamic Colors: Auto-color based on price position
- Line Thickness: 1-4 pixels
- Transparency: 0-80%
- Extension Length: How far lines extend right
- Label Style: Plain or enhanced with price
Heatmap Section:
- Enable/disable background coloring
- Adjust transparency
- Choose gradient or solid zones
Status Table Section:
- Position on chart
- Font selection
Advanced Section:
- Enable alerts for new opens
- Price discovery mode
- Extended hours inclusion
]📈 Best Practices
1. Timeframe Selection:
- For intraday: Focus on 1H, 4H, and Daily
- For swing trading: Daily, Weekly, Monthly
- For position trading: Monthly, Quarterly, Yearly
2. Color Coding:
- Enable dynamic colors for instant sentiment reading
- Use heatmap for overall market bias
3. Confluence Zones:
- Pay special attention when multiple opens cluster
- These zones often produce stronger reactions
4. Alignment Signals:
- When all timeframes show same color = strong trend
- Mixed colors = potential consolidation or reversal zone
🎯 Pro Tips
- Volume Confirmation: Combine with volume indicators to confirm reactions at open levels
- Multiple Instruments: Compare opens across correlated assets for divergences
- News Events: Opens often act as magnets after major news releases
- Options Trading: Weekly and monthly opens align with options expiry levels
- Algorithmic Levels: Many algorithms use these opens for entries/exits
🔄 Updates in Version 8.3
- Added 1H and 4H timeframe support
- Enhanced dynamic color system
- Implemented heatmap visualization
- Added real-time status table
- Optimized performance for smoother operation
- Improved label styling options
- Better yearly timeframe detection
⚡ Performance Optimizations
This indicator uses advanced Pine Script v6 features for optimal performance:
- Efficient object reuse instead of recreation
- Smart calculation loops
- Minimal repainting
- Optimized for real-time updates
📝 Notes
- Works on all markets (stocks, forex, crypto, futures)
- Best on timeframes lower than the opens you're tracking
- Lines automatically hide when their timeframe is lower than chart timeframe
- Past opens are not displayed (indicator shows current opens only)
🙏 Credits & Support
Created by HAZED | Version 8.3
Optimized for TradingView Pine Script v6
For questions, suggestions, or bug reports, please comment below.
If you find this indicator useful, please consider leaving a like and a follow!
Remember: No indicator is perfect. Always use proper risk management and combine multiple confirmation signals in your trading decisions.
Trading Mastery Indicator# Trading Mastery Indicator - Complete User Guide
## Overview
The Trading Mastery Indicator is a professional-grade technical analysis tool that provides high-probability trading signals with complete trade management information including entry, stop loss, and take profit levels.
## Key Features
- High-Quality Signal Detection: Identifies strong, medium, and weak trading opportunities
- Complete Trade Setup: Provides entry, stop loss, and take profit for every signal
- Risk Management: Calculates risk-to-reward ratios automatically
- Elliott Wave Analysis: Integrated wave pattern and position analysis
- Active Signal Tracking: Shows when you're currently in a trade
- Professional Alerts: Detailed notifications with all trade parameters
## Signal Quality Classification
### STRONG Signals (Premium Quality)
- Reliability: Highest probability setups
- Market Conditions: Strong trending environments
- Color: Teal for buys, Red for sells
- When to Trade: These are your primary trading opportunities
- Risk Profile: Lowest risk, highest reward potential
### MEDIUM Signals (Standard Quality)
- Reliability: Good probability setups
- Market Conditions: Moderate trend or consolidation breakouts
- Color: Gold for buys, Purple for sells (Change to Blue Gray)
- When to Trade: Secondary opportunities when strong signals are scarce
- Risk Profile: Moderate risk, good reward potential
### WEAK Signals (Entry Quality)
- Reliability: Lower probability setups
- Market Conditions: Counter-trend or unclear market structure
- Color: Coral for buys, Pink for sells
- When to Trade: Only for experienced traders in specific market conditions
- Risk Profile: Higher risk, variable reward
## How to Use the Indicator
### 1. Signal Settings Configuration
Signal Filter Options:
- All Signals: Shows every trading opportunity (strong, medium, weak)
- High Quality Only: Shows only the highest probability setups
- High + Medium Quality**: Balanced approach filtering out weak signals
Recommended Settings by Experience:
- Beginner: Use "High Quality Only"
- Intermediate: Use "High + Medium Quality"
- Advanced: Use "All Signals" with proper risk management
Label Controls:
- Label Position: Adjust how close labels appear to candles
- Label Text Size: Choose based on screen size and preference
- Maximum Labels: Control chart clutter (recommended: 20)
### 2. Understanding the Professional Panel
The panel provides real-time market intelligence:
Primary Trend: Market direction analysis
- BULLISH TREND: Look for buy opportunities only
- BEARISH TREND: Look for sell opportunities only
- CONSOLIDATION: Market indecision, trade with caution
Wave Pattern: Elliott Wave structure analysis
- IMPULSE UP: Strong bullish momentum
- IMPULSE DOWN: Strong bearish momentum
- CORRECTION: Sideways/corrective movement
Wave Position: Current Elliott Wave position
- WAVE 3 (STRONG): Most powerful moves, best for trend following
- WAVE 1 OR 5: Beginning or ending waves
- WAVE 2 OR 4: Corrective phases, lower probability
- CORRECTIVE ABC: Wait for pattern completion
Signal Grade: Current signal status
- SIGNAL ACTIVE: You're currently in a trade
- PREMIUM/STANDARD/SPECULATIVE: New signal quality
- NO SIGNAL: No current opportunities
Trading Bias: Overall market direction
- LONG BIAS: Focus on buy opportunities
- SHORT BIAS: Focus on sell opportunities
- NEUTRAL: No clear directional bias
### 3. Reading Signal Labels
Each signal provides complete trade setup information:
```
STRONG BUY
━━━━━━━━━━━━━━━━━━━━
💰 Entry: 1875.50
🛡️ SL: 1860.25
🎯 TP: 1905.75
📈 R:R = 1:2.0
━━━━━━━━━━━━━━━━━━━━
```
Understanding the Information:
- Entry: Exact price level to enter the trade
- SL: Stop loss level (risk management)
- TP: Take profit level (profit target)
- R:R: Risk-to-reward ratio (1:2.0 means you risk 1 to make 2)
### 4. Entry/TP/SL Level Lines
Visual trade management aids:
- Blue Solid Line: Entry level
- Red Dashed Line: Stop loss level
- Green Dashed Line: Take profit level
- Small Labels: "ENTRY", "SL", "TP" markers
## Trading Strategy Guidelines
### Trend Following Strategy
1. Check Panel: Ensure trend aligns with your trade direction
2. Wait for Signals: Only trade in the direction of the primary trend
3. Quality First: Focus on STRONG signals during trending markets
4. Wave Timing: WAVE 3 positions offer the best trending opportunities
### Reversal Strategy
1. Look for Divergence: Panel shows trend change signals
2. Wait for Confirmation: Don't jump early on potential reversals
3. Use MEDIUM Signals: Often good for catching early trend changes
4. Watch Wave Position: CORRECTIVE ABC patterns may signal trend completion
### Risk Management Rules
Position Sizing:
- Risk no more than 1-2% of account per trade
- Use the provided R:R ratios to calculate position sizes
- Stronger signals can justify slightly larger positions
Stop Loss Management:
- Always use the provided stop loss levels
- Never move stops against your position
- Consider trailing stops once trade moves in your favor
Take Profit Strategy:
- Use provided TP levels as minimum targets
- Consider taking partial profits at TP level
- Let strong trends run beyond TP in trending markets
## Best Practices by Timeframe
### Scalping (M1-M5)
- Use "High Quality Only" filter
- Focus on STRONG signals only
- Quick entry and exit
- Expect more false signals due to market noise
### Intraday Trading (M15-H1)
- Use "High + Medium Quality" filter
- Good balance of opportunity and reliability
- Hold trades for several hours
- Most versatile timeframe for the indicator
### Swing Trading (H4-Daily)
- Use "All Signals" with proper analysis
- Hold trades for days to weeks
- Most reliable signals on higher timeframes
- Best for beginners due to less noise
## Panel Customization
Position Options:
- Top Right: Default, doesn't interfere with price action
- Top Left: Good for wide screens
- Bottom corners: Keeps important info visible while analyzing tops
- Middle positions: Central reference, good for multi-monitor setups
Size Options:
- Small: Minimal screen space, good for small screens
- Normal: Balanced visibility and space usage
- Large: Easy reading, good for detailed analysis
Transparency: Adjust 0-95% based on preference and chart background
## Common Mistakes to Avoid
### Signal Interpretation Errors
- Don't ignore the trend: Trading against primary trend reduces success
- Don't chase weak signals: Focus on quality over quantity
- Don't ignore wave position: WAVE 2/4 corrections are lower probability
### Risk Management Errors
- Don't skip stop losses: Every signal includes SL for a reason
- Don't risk too much: Even strong signals can fail
- Don't move stops against position: Stick to the plan
### Psychological Errors
- Don't overtrade: Wait for quality setups
- Don't second-guess strong signals: Trust the analysis
- Don't panic on normal drawdowns: Expect some losing trades
## Alert Configuration
Enable alerts for:
- Strong signals: Primary trading opportunities
- Medium signals: Secondary opportunities (optional)
- Signal active status: Know when you're in trades
Alert messages include complete trade information for easy execution.
## Performance Optimization
### For Best Results:
1. Combine with price action: Look for confluence with support/resistance
2. Consider market sessions: Different sessions have different characteristics
3. Monitor news events: Avoid trading during high-impact news
4. Keep a trading journal: Track which signals work best for your style
### Regular Review:
- Weekly analysis: Review which signal types performed best
- Timeframe assessment: Determine your most profitable timeframes
- Strategy refinement: Adjust filters based on performance data
## Troubleshooting
If you're not seeing signals:
- Check that "Show Buy/Sell Signals" is enabled
- Verify your signal filter isn't too restrictive
- Market may be in a consolidation phase
If labels are cluttered:
- Reduce "Maximum Labels to Show"
- Change label position to "Far from Candle"
- Use smaller label text size
If panel is in the way:
- Change panel position
- Increase transparency
- Reduce panel size
- Toggle panel off temporarily
Remember: This indicator provides analysis and signals, but successful trading also requires proper risk management, emotional discipline, and understanding of market conditions. Always practice with demo accounts before risking real capital, and never risk more than you can afford to lose.






















