PA SystemPA System
短简介 Short Description(放在最上面)
中文:
PA System 是一套以 AL Brooks 价格行为为核心的策略(Strategy),将 结构(HH/HL/LH/LL)→ 回调(H1/L1)→ 二次入场(H2/L2 微平台突破) 串成完整可回测流程,并可选叠加 BoS/CHoCH 结构突破过滤 与 Liquidity Sweep(扫流动性)确认。内置风险管理:定风险仓位、部分止盈、保本、移动止损、时间止损、冷却期。
English:
PA System is an AL Brooks–inspired Price Action strategy that chains Market Structure (HH/HL/LH/LL) → Pullback (H1/L1) → Second Entry (H2/L2 via Micro Range Breakout) into a complete backtestable workflow, with optional BoS/CHoCH structure-break filtering and Liquidity Sweep confirmation. Built-in risk management includes risk-based sizing, partial exits, breakeven, trailing stops, time stop, and cooldown.
⸻
1) 核心理念 Core Idea
中文:
这不是“指标堆叠”,而是一条清晰的价格行为决策链:
结构确认 → 回调出现 → 小平台突破(二次入场)→ 风控出场。
策略把 Brooks 常见的“二次入场”思路程序化,同时用可选的结构突破与扫流动性模块提升信号质量、减少震荡误入。
English:
This is not an “indicator soup.” It’s a clear price-action decision chain:
Confirmed structure → Pullback → Micro-range breakout (second entry) → Risk-managed exits.
The system programmatically implements the Brooks-style “second entry” concept, and optionally adds structure-break and liquidity-sweep context to reduce chop and improve trade quality.
⸻
2) 主要模块 Main Modules
A. 结构识别 Market Structure (HH/HL/LH/LL)
中文:
使用 pivot 摆动点确认结构,标记 HH/HL/LH/LL,并可显示最近一组摆动水平线,方便对照结构位置。
English:
Uses confirmed pivot swings to label HH/HL/LH/LL and optionally plots the most recent swing levels for clean structure context.
B. 状态机 Market Regime (State Machine + “Always In”)
中文:
基于趋势K强度、EMA关系与波动范围,识别市场环境(Breakout/Channel/Range)以及 Always-In 方向,用于过滤不合适的交易环境。
English:
A lightweight regime engine detects Breakout/Channel/Range and an “Always In” directional bias using momentum and EMA/range context to avoid low-quality conditions.
C. 二次入场 Second Entry Engine (H1→H2 / L1→L2)
中文:
• H1/L1:回调到结构附近并出现反转迹象
• H2/L2:在 H1/L1 后等待最小 bars,然后触发 Micro Range Breakout(小平台突破)并要求信号K收盘强度达标
这一段是策略的“主发动机”。
English:
• H1/L1: Pullback into structure with reversal intent
• H2/L2: After a minimum wait, triggers on Micro Range Breakout plus a configurable close-strength filter
This is the main “entry engine.”
D. 可选过滤器 Optional Filters (Quality Boost)
BoS/CHoCH(结构突破过滤)
中文: 可识别 BoS / CHoCH,并可要求“入场前最近 N bars 必须有同向 break”。
English: Detects BoS/CHoCH and can require a recent same-direction break within N bars.
Liquidity Sweeps(扫流动性确认)
中文: 画出 pivot 高/低的流动性水平线,检测“刺破后收回”的 sweep,并可要求入场前出现同向 sweep。
English: Tracks pivot-based liquidity levels, confirms sweeps (pierce-and-reclaim), and can require a recent sweep before entry.
E. FVG 可视化 FVG Visualization
中文: 提供 FVG 区域盒子与管理模式(仅保留未回补 / 仅保留最近N),主要用于区域理解与复盘,不作为强制入场条件(可自行扩展)。
English: Displays FVG boxes with retention modes (unfilled-only or last-N). Primarily for context/analysis; not required for entries (you can extend it as a filter/target).
⸻
3) 风险管理 Risk Management (Built-In)
中文:
• 定风险仓位:按账户权益百分比计算仓位
• SL/TP:基于结构 + ATR 缓冲,且限制最大止损 ATR 倍
• 部分止盈:到达指定 R 后减仓
• 保本:到达指定 R 后推到 BE
• 移动止损:到达指定 R 后开始跟随
• 时间止损:持仓太久不动则退出
• 冷却期:出场后等待 N bars 再允许新单
English:
• Risk-based sizing: position size from equity risk %
• SL/TP: structure + ATR buffer with max ATR risk cap
• Partial exits at an R threshold
• Breakeven at an R threshold
• Trailing stop activation at an R threshold
• Time stop to reduce chop damage
• Cooldown after exit to avoid rapid re-entries
⸻
4) 推荐使用方式 Recommended Usage
中文:
• 推荐从 5m / 15m / 1H 开始测试
• 想更稳:开启 EMA Filter + Break Filter + Sweep Filter,并提高 Close Strength
• 想更多信号:关闭 Break/Sweep 过滤或降低 Swing Length / Close Strength
• 回测时务必设置合理的手续费与滑点,尤其是期货/指数
English:
• Start testing on 5m / 15m / 1H
• For higher quality: enable EMA Filter + Break Filter + Sweep Filter and increase Close Strength
• For more signals: disable Break/Sweep filters or reduce Swing Length / Close Strength
• Use realistic commissions/slippage in backtests (especially for futures/indices)
⸻
5) 重要说明 Notes
中文:
结构 pivot 需要右侧确认 bars,因此结构点存在天然滞后(确认后不会再变)。策略逻辑尽量避免不必要的对象堆叠,并对数组/对象做了稳定管理,适合长期运行与复盘。
English:
Pivot-based structure requires right-side confirmation (inherent lag; once confirmed it won’t change). The script is designed for stability and resource-safe object management, suitable for long sessions and review.
⸻
免责声明 Disclaimer(建议原样保留)
中文:
本脚本仅用于教育与研究目的,不构成任何投资建议。策略回测结果受市场条件、手续费、滑点、交易时段、数据质量等影响显著。使用者需自行验证并承担全部风险。过往表现不代表未来结果。
English:
This script is for educational and research purposes only and does not constitute financial advice. Backtest results are highly sensitive to market conditions, fees, slippage, session settings, and data quality. Use at your own risk. Past performance is not indicative of future results.
อินดิเคเตอร์และกลยุทธ์
MES ORB Bulletproof + PSAR + SMA200 + BB(21) by PantelisMES ORB Bulletproof + PSAR + SMA200 + BB(21) by Pantelis
Ocean Master [JOAT]Ocean Master QE - Advanced Oceanic Market Analysis with Quantum Flow Dynamics
Overview
Ocean Master QE is an open-source overlay indicator that combines multiple analytical techniques into a unified market analysis framework. It uses ATR-based dynamic channels, volume-weighted order flow analysis, multi-timeframe correlation (quantum entanglement concept), and harmonic oscillator calculations to provide traders with a comprehensive view of market conditions.
What This Indicator Does
The indicator calculates and displays several key components:
Dynamic Price Channels - ATR-adjusted upper, middle, and lower channels that adapt to current volatility conditions
Order Flow Analysis - Separates buying and selling volume pressure to calculate a directional delta
Smart Money Index - Volume-weighted order flow metric that highlights potential institutional activity
Harmonic Oscillator - Weighted combination of 10 Fibonacci-period EMAs (5, 8, 13, 21, 34, 55, 89, 144, 233, 377) to identify trend direction
Multi-Timeframe Correlation - Measures price correlation across 1H, 4H, and Daily timeframes
Wave Function Analysis - Momentum-based state detection that identifies when price action becomes decisive
How It Works
The core channel calculation uses ATR with a configurable quantum sensitivity factor:
float atr = ta.atr(i_atrLength)
float quantumFactor = 1.0 + (i_quantumSensitivity * 0.1)
float quantumATR = atr * quantumFactor
upperChannel := ta.highest(high, i_length) - (quantumATR * 0.5)
lowerChannel := ta.lowest(low, i_length) + (quantumATR * 0.5)
midChannel := (upperChannel + lowerChannel) * 0.5
Order flow is calculated by separating volume into buy and sell components based on candle direction:
The harmonic oscillator weights shorter EMAs more heavily using inverse weighting (1/1, 1/2, 1/3... 1/10), creating a responsive yet smooth trend indicator.
Signal Generation
Confluence signals require multiple conditions to align:
Bullish: Harmonic oscillator crosses above zero + positive Smart Money Index + positive Order Flow Delta
Bearish: Harmonic oscillator crosses below zero + negative Smart Money Index + negative Order Flow Delta
Dashboard Panel (Top-Right)
Bias - Current market direction based on price vs mid-channel
Entanglement - Multi-timeframe correlation score (0-100%)
Wave State - COLLAPSED (decisive) or SUPERPOSITION (uncertain)
Volume - Current volume relative to 20-period average
Volatility - ATR as percentage of price
Smart Money - Volume-weighted order flow reading
Visual Elements
Ocean Depth Layers - Gradient fills between channel levels representing different price zones
Channel Lines - Upper (surface), middle, and lower (seabed) dynamic levels
Divergence Markers - Triangle shapes when harmonic oscillator crosses zero
Confluence Labels - BULL/BEAR labels when multiple factors align
Suggested Use Cases
Identify trend direction using the harmonic oscillator and channel position
Monitor order flow for potential institutional activity
Use multi-timeframe correlation to confirm trade direction across timeframes
Watch for confluence signals where multiple factors align
Input Parameters
Length (default: 14) - Base period for channel and indicator calculations
ATR Length (default: 14) - Period for ATR calculation
Quantum Depth (default: 3) - Complexity factor for calculations
Quantum Sensitivity (default: 1.5) - Channel width multiplier
Timeframe Recommendations
Works on all timeframes. Higher timeframes (4H, Daily) provide smoother signals; lower timeframes require faster reaction times and may produce more noise.
Limitations
Multi-timeframe requests add processing overhead
Order flow estimation is based on candle direction, not actual order book data
Correlation calculations require sufficient historical data
Open-Source and Disclaimer
This script is published as open-source under the Mozilla Public License 2.0 for educational purposes. It does not constitute financial advice. Past performance does not guarantee future results. Always use proper risk management and conduct your own analysis before trading.
- Made with passion by officialjackofalltrades
Minervini Trend Template upgrade - TP Minervini Trend Template (SMA/EMA + RS vs Major Indices)
Credits: Original script by © yogy.frestarahmawan (MPL 2.0).
Modified & updated by: © TradersPod (added MA selection + RS comparison vs major index futures).
This indicator is a simple checklist tool based on Mark Minervini’s “Trend Template” concept. It helps you quickly see if a stock is behaving like a leading stock in an uptrend by evaluating key trend and strength conditions.
What it does:
>The script checks 8 conditions and shows the results in a table panel on your chart:
>Price is above MA150 and MA200
>MA150 is above MA200 (a classic “healthy uptrend” structure)
>MA200 is rising vs ~1 month ago (uses 22 bars back)
>MA50 is above MA150 and MA200
>Price is above MA50
>Price is at least 25% above the 52-week low (stronger stocks tend to be far from lows)
>Price is within 25% of the 52-week high (leaders often stay near highs)
>RS is > Major Indices (TradersPod upgrade)
At the bottom, it also totals how many conditions are met: (X of 8).
TradersPod upgrades included
1) SMA/EMA selection
You can choose whether the trend template uses:
SMA (Simple Moving Average)
or
EMA (Exponential Moving Average)
This lets you match your preferred moving-average style without changing the logic.
2) RS must beat the major indices (futures)
Instead of the old “RS > 70” rule, this updated version requires the stock’s RS Rating to be greater than the strongest (highest RS) among:
-Nasdaq Futures (NQ)
-S&P 500 Futures (ES)
-Dow Jones Futures (YM)
The table shows the RS Rating for each index futures symbol and then confirms whether the stock is stronger than the best-performing major index.
In other words:
If the stock can’t outperform the major indices, it’s probably not a true “leader.”
Inputs / settings
MA Type: SMA or EMA
High/Low Lookback Length: default 260 bars (approx. 52 weeks on daily charts)
Show 52-week High/Low: toggle on/off
Major Indices Symbols: you can change the futures tickers if your broker/data feed uses different symbols
Panel Position: choose where the table appears
Notes (important)
The RS calculation uses the chart’s timeframe (ex: Daily, Weekly). On Weekly charts, the lookbacks become weeks (not days).
This tool is a trend/strength filter, not a full trading strategy. Always add your own risk management, entries, and exits.
MA Alignment DetectorMA Alignment Detector : If it is bullish MA alignment, the color becomes red, if it is bearlish MA alignment, the color become green.
Volume Weighted Average Pricendicator(title="Volume Weighted Average Price", shorttitle="VWAP", overlay=true, timeframe="", timeframe_gaps=true)
hideonDWM = input(false, title="Hide VWAP on 1D or Above", group="VWAP Settings", display = display.data_window)
var anchor = input.string(defval = "Session", title="Anchor Period",
options= , group="VWAP Settings")
src = input(title = "Source", defval = hlc3, group="VWAP Settings", display = display.data_window)
offset = input.int(0, title="Offset", group="VWAP Settings", minval=0, display = display.data_window)
BANDS_GROUP = "Bands Settings"
CALC_MODE_TOOLTIP = "Determines the units used to calculate the distance of the bands. When 'Percentage' is selected, a multiplier of 1 means 1%."
calcModeInput = input.string("Standard Deviation", "Bands Calculation Mode", options = , group = BANDS_GROUP, tooltip = CALC_MODE_TOOLTIP, display = display.data_window)
showBand_1 = input(true, title = "", group = BANDS_GROUP, inline = "band_1", display = display.data_window)
bandMult_1 = input.float(1.0, title = "Bands Multiplier #1", group = BANDS_GROUP, inline = "band_1", step = 0.5, minval=0, display = display.data_window, active = showBand_1)
showBand_2 = input(false, title = "", group = BANDS_GROUP, inline = "band_2", display = display.data_window)
bandMult_2 = input.float(2.0, title = "Bands Multiplier #2", group = BANDS_GROUP, inline = "band_2", step = 0.5, minval=0, display = display.data_window, active = showBand_2)
showBand_3 = input(false, title = "", group = BANDS_GROUP, inline = "band_3", display = display.data_window)
bandMult_3 = input.float(3.0, title = "Bands Multiplier #3", group = BANDS_GROUP, inline = "band_3", step = 0.5, minval=0, display = display.data_window, active = showBand_3)
cumVolume = ta.cum(volume)
if barstate.islast and cumVolume == 0
runtime.error("No volume is provided by the data vendor.")
isNewPeriod = switch anchor
"Earnings" =>
new_earnings_actual = request.earnings(syminfo.tickerid, earnings.actual, barmerge.gaps_on, barmerge.lookahead_on, ignore_invalid_symbol=true)
new_earnings_standardized = request.earnings(syminfo.tickerid, earnings.standardized, barmerge.gaps_on, barmerge.lookahead_on, ignore_invalid_symbol=true)
not na(new_earnings_actual) or not na(new_earnings_standardized)
"Dividends" =>
new_dividends = request.dividends(syminfo.tickerid, dividends.gross, barmerge.gaps_on, barmerge.lookahead_on, ignore_invalid_symbol=true)
not na(new_dividends)
"Splits" =>
new_split = request.splits(syminfo.tickerid, splits.denominator, barmerge.gaps_on, barmerge.lookahead_on, ignore_invalid_symbol=true)
not na(new_split)
"Session" => timeframe.change("D")
"Week" => timeframe.change("W")
"Month" => timeframe.change("M")
"Quarter" => timeframe.change("3M")
"Year" => timeframe.change("12M")
"Decade" => timeframe.change("12M") and year % 10 == 0
"Century" => timeframe.change("12M") and year % 100 == 0
=> false
isEsdAnchor = anchor == "Earnings" or anchor == "Dividends" or anchor == "Splits"
if na(src ) and not isEsdAnchor
isNewPeriod := true
float vwapValue = na
float upperBandValue1 = na
float lowerBandValue1 = na
float upperBandValue2 = na
float lowerBandValue2 = na
float upperBandValue3 = na
float lowerBandValue3 = na
if not (hideonDWM and timeframe.isdwm)
= ta.vwap(src, isNewPeriod, 1)
vwapValue := _vwap
stdevAbs = _stdevUpper - _vwap
bandBasis = calcModeInput == "Standard Deviation" ? stdevAbs : _vwap * 0.01
upperBandValue1 := _vwap + bandBasis * bandMult_1
lowerBandValue1 := _vwap - bandBasis * bandMult_1
upperBandValue2 := _vwap + bandBasis * bandMult_2
lowerBandValue2 := _vwap - bandBasis * bandMult_2
upperBandValue3 := _vwap + bandBasis * bandMult_3
lowerBandValue3 := _vwap - bandBasis * bandMult_3
plot(vwapValue, title = "VWAP", color = #2962FF, offset = offset)
displayBand1 = showBand_1 ? display.all : display.none
upperBand_1 = plot(upperBandValue1, title="Upper Band #1", color = color.green, offset = offset, display = displayBand1, editable = showBand_1)
lowerBand_1 = plot(lowerBandValue1, title="Lower Band #1", color = color.green, offset = offset, display = displayBand1, editable = showBand_1)
fill(upperBand_1, lowerBand_1, title="Bands Fill #1", color = color.new(color.green, 95), display = displayBand1, editable = showBand_1)
displayBand2 = showBand_2 ? display.all : display.none
upperBand_2 = plot(upperBandValue2, title="Upper Band #2", color = color.olive, offset = offset, display = displayBand2, editable = showBand_2)
lowerBand_2 = plot(lowerBandValue2, title="Lower Band #2", color = color.olive, offset = offset, display = displayBand2, editable = showBand_2)
fill(upperBand_2, lowerBand_2, title="Bands Fill #2", color = color.new(color.olive, 95), display = displayBand2, editable = showBand_2)
displayBand3 = showBand_3 ? display.all : display.none
upperBand_3 = plot(upperBandValue3, title="Upper Band #3", color = color.teal, offset = offset, display = displayBand3, editable = showBand_3)
lowerBand_3 = plot(lowerBandValue3, title="Lower Band #3", color = color.teal, offset = offset, display = displayBand3, editable = showBand_3)
fill(upperBand_3, lowerBand_3, title="Bands Fill #3", color = color.new(color.teal, 95), display = displayBand3, editable = showBand_3)
OR + PM + PD + Daily Pivot (Labels Fixed)//@version=5
indicator("OR + PM + PD + Daily Pivot (Labels Fixed)", overlay=true)
// -------------------- Time --------------------
h = hour(time)
m = minute(time)
newDay = ta.change(time("D"))
// -------------------- Premarket & Opening Range --------------------
isPremarket = (h >= 4 and h < 9) or (h == 9 and m < 30)
isOpenRange = h == 9 and m >= 30 and m <= 35
// -------------------- Previous Day High / Low --------------------
pdh = request.security(syminfo.tickerid, "D", high )
pdl = request.security(syminfo.tickerid, "D", low )
plot(pdh, color=color.red, title="PDH")
plot(pdl, color=color.green, title="PDL")
if newDay
label.new(bar_index, pdh, "PDH", style=label.style_label_left, color=color.red, textcolor=color.white)
label.new(bar_index, pdl, "PDL", style=label.style_label_left, color=color.green, textcolor=color.white)
// -------------------- Pre-Market High / Low --------------------
var float pmh = na
var float pml = na
var bool pmLabelsPlotted = false
if newDay
pmh := na
pml := na
pmLabelsPlotted := false
if isPremarket
pmh := na(pmh) ? high : math.max(pmh, high)
pml := na(pml) ? low : math.min(pml, low)
plot(pmh, color=color.orange, title="PMH")
plot(pml, color=color.orange, title="PML")
if not isPremarket and not na(pmh) and not pmLabelsPlotted
label.new(bar_index, pmh, "PMH", style=label.style_label_left, color=color.orange, textcolor=color.black)
label.new(bar_index, pml, "PML", style=label.style_label_left, color=color.orange, textcolor=color.black)
pmLabelsPlotted := true
// -------------------- 5-Min High / Low --------------------
fiveHigh = request.security(syminfo.tickerid, "5", high)
fiveLow = request.security(syminfo.tickerid, "5", low)
var float fiveH = na
var float fiveL = na
var bool fiveLabelsPlotted = false
if newDay
fiveH := na
fiveL := na
fiveLabelsPlotted := false
if isOpenRange
fiveH := na(fiveH) ? fiveHigh : math.max(fiveH, fiveHigh)
fiveL := na(fiveL) ? fiveLow : math.min(fiveL, fiveLow)
plot(fiveH, color=color.blue, title="5m High")
plot(fiveL, color=color.blue, title="5m Low")
if not isOpenRange and not na(fiveH) and not fiveLabelsPlotted
label.new(bar_index, fiveH, "5m H", style=label.style_label_left, color=color.blue, textcolor=color.white)
label.new(bar_index, fiveL, "5m L", style=label.style_label_left, color=color.blue, textcolor=color.white)
fiveLabelsPlotted := true
// -------------------- 15-M
ADR Dashboard with Move, Left and AlertsIndicator Name: ADR Dashboard with Move, Left and Alerts
Overview
The ADR Dashboard is a powerful real-time trading tool that tracks how much a stock, crypto, or other asset has moved today relative to its Average Daily Range (ADR). It provides a clear visual representation of:
1. Today’s price movement (Move)
2. Remaining potential movement left to reach ADR (Left)
3. Percentage of ADR covered (% Covered)
4.Additionally, it provides automated alerts for key movement thresholds.
A) What it Does
1.Calculates the Average Daily Range (ADR):
2. Uses True Range over a user-defined lookback period (default 14 days).
3. ADR measures typical daily volatility.
B) Tracks Today’s Move:
1. Move = Current Price – Today’s Open (Realtime)
2. Positive → bullish move, Negative → bearish move
C) Tracks Remaining Potential (Left):
1. Left = ADR – |Move| (Realtime)
2. Shows how much of the ADR is still available for today’s move
3. Percentage Covered:
4. % Covered = |Move| / ADR × 100
D) Color-coded for visual clarity:
1. Green (<50%) → small move, plenty of range left
2. Yellow (50–80%) → moderate move, watch for acceleration
3. Orange (80–100%) → strong move, ADR almost reached
4. Red (>100%) → ADR exceeded, momentum may be exhausted
E) Dashboard Table:
1. Columns: ADR | Move | Left | % Covered
2. Position: middle-right of the chart
F) Left column color-coded:
1. Green → some ADR left
2. Red → ADR fully reached or exceeded
3. Move column: usually yellow for visibility, but could be enhanced for positive/negative moves
G) Alerts
The indicator provides directional alerts:
Bullish Alerts (upward moves):
1. 90% ADR warning: fires when Move ≥ 90% of ADR → early warning of strong bullish momentum
2. 100% ADR breach: fires when Move ≥ ADR → full daily range reached
Bearish Alerts (downward moves):
1. 90% ADR warning: fires when Move ≤ -90% of ADR → early warning of strong bearish momentum
2. 100% ADR breach: fires when Move ≤ -ADR → full daily range reached
All alerts are unique and fire once per session per threshold.
H) How Traders Can Use This Indicator
Momentum Trading:
1. Identify strong intraday moves approaching ADR.
2. Enter positions early at 90% ADR warning or take profits near 100% ADR.
Scalping & Intraday Trading:
1. Gauge how much of today’s range is left for quick entries/exits.
2. Avoid trades when ADR is almost fully consumed → reduces risk of reversals.
Swing Trading:
1. Combine with trend indicators to see if today’s move is significant relative to historical volatility.
I) Risk Management:
1. Set profit targets or stop-loss levels based on Move and Left values.
Visual Efficiency:
At-a-glance view of Move, Left, % Covered, and alert status without manual calculations.
Key Features
1. Real-time Move and Left updates
2. Color-coded % Covered and Left for quick visualization
3. Alerts for 90% and 100% ADR levels, bullish and bearish
4. Clean dashboard table at middle-right of the chart
5. Works across stocks, crypto, forex, and other markets
J) Why This Indicator is Powerful
1. Combines volatility (ADR) with real-time price tracking
2. Provides visual clarity and actionable alerts
3. Helps traders stay ahead of intraday moves, manage risk, and time entries/exits effectively
ETH 1-2-3 Rigor Strategy Entry & 2:1 Risk-Rewar- By: Labaxuria Descrição em Inglês (Copy & Paste):
This script is a technical analysis tool designed specifically for ETH/USDT on Daily (1D) and Weekly (1W) timeframes. It identifies the classic 1-2-3 reversal pattern to provide high-probability entry points with a strictly disciplined risk management approach.
Core Features:
C3 Trigger Identification: The indicator highlights the "Candle 3" (Confirmation Candle) where the breakout of "Point 2" occurs, validating the market structure shift.
Automated 2:1 Risk-Reward: Upon a BUY or SELL signal, the script automatically plots a Red Line (Stop Loss) at the recent pivot and a Green Line (Take Profit) at a fixed 2:1 ratio. This ensures that every win is twice the size of a potential loss.
Trend Filtering (Gray Line): It includes a 20-period Moving Average to ensure trades are aligned with the prevailing market momentum.
Compression Detection (White Candles): Identifies "Inside Bars" by coloring the candle body or borders white. This warns the trader of price compression and potential volatility buildup before a breakout.
How to Use:
BUY + C3: Enter long when the price closes above Point 2, ideally while trading above the gray 20-SMA.
SELL + C3: Enter short when the price closes below Point 2, ideally while trading below the gray 20-SMA.
Exit Strategy: Follow the plotted levels strictly. Exit at the red line to protect capital or at the green line to book profits.
BTC - StableFlow: Pit-Stop & Refuel EngineBTC – StableFlow: Pit-Stop & Refuel Engine | RM
Strategic Context: The Institutional Gas Station In the high-speed race of the crypto markets, Stablecoins (USDT, USDC, DAI) represent the Fuel, and Bitcoin is the Race Car. Most traders only look at the car's speed (Price), but they ignore the gas tank. The StableFlow Engine is a telemetry dashboard designed to monitor the "Fuel Pressure" within the ecosystem, identifying exactly when the car is being refueled and when it is running on empty.
The Telemetry Logic: How to Read the Race
The indicator operates on a Relative Velocity model. We aren't just looking at how many Stablecoins exist; we are measuring the Acceleration of Stablecoin Market Cap relative to the Acceleration of BTC Price.
1. The Fuel Reservoir (The Histogram)
• Cyan Zones (Refuel): The gas station is open. Institutional "Dry Powder" is flowing into stables faster than it is being spent on BTC. The tank is filling up.
• Orange Zones (Exhaust): The "Overdrive." The car is driving faster than the gas can be pumped. Price is outperforming the stablecoin supply—this is unsustainable and usually precedes a stall.
2. Lap Transitions (The Grey Lines)
These vertical markers signify a Regime Shift . They trigger the moment the momentum crosses the zero-axis, visually distinguishing the transition between a "Net-Refueling" period and a "Net-Exhaustion" period. While not used as direct entry signals, they define the Macro Lap we are currently in.
Operational Playbook: The Pit-Stop Signals
We don't just buy because the tank is full; we buy when the car exits the pits and begins to accelerate. This is captured by our proprietary Pit-Stop Pips.
• Blue Pip (Pit-Stop Buy): Triggered when the Refuel momentum has peaked and is now rotating back into the market. The refuel is complete; the car is rejoining the race with a full tank.
• Red Pip (Exhaust Sell): Triggered when the price acceleration has overextended relative to its fuel source and begins to "roll over." The tank is near empty; time for a tactical pull-back.
Settings & Calibration: The Pit Wall Dashboard
Signal Mode & Logic The engine features a dual-mode signaling system to adapt to different market conditions (or your personal preferred logic):
• Consecutive Mode: Best for high-velocity trends. Fires a pip after n bars of momentum reversal (Default: 2 bars).
• Percentage (%) Mode: Best for structural fades. Fires a pip when the momentum retraces by a specific percentage (e.g., 15%) from its local peak, regardless of the bar count.
Recommended Calibration
While the engine is versatile across various timeframes, the Weekly (1W) chart is the preferred setting for identifying high-conviction macro signals. Lower timeframes provide tactical speed, but the 1W frame offers significantly cleaner signals by filtering out the daily market noise.
Weekly (1W) — The Macro Signal (Preferred): * Velocity Lookback: 20 | Smoothing: 5.
Peak Lookback: 25 (Represents roughly half a year of telemetry data). This is a good starting point for identifying major cycle rotations.
Daily (1D) — The Tactical Pulse: * Velocity Lookback: 20 | Smoothing: 5.
Peak Lookback: 25 (Represents one trading month of telemetry). Useful for active swing traders looking for entry/exit timing within an established macro trend.
Technical Documentation
Data Sourcing & Aggregation The script utilizes request.security to aggregate a "Big Three" Stablecoin Market Cap (USDT + USDC + DAI). This prevents "False Exhaustion" signals caused by capital simply migrating between different stablecoin assets.
Mathematical Foundation The core engine calculates the Rate of Change (ROC) for the Aggregate Stablecoin Supply and BTC Price over a synchronized lookback window.
Formula Logic: Fuel Pressure = EMA ( ROC(Stables) - ROC(BTC) )
The Pit-Stop Pips utilize a local peak-finding algorithm via ta.highest and ta.lowest within a rolling 25-bar window to calculate the Relative Retracement Magnitude . This ensures signals are mathematically tied to the volatility of the current market regime.
The Dual-Fuel Framework: StableFlow x Liquisync
The StableFlow Engine is designed to function as the tactical counterpart to the Liquisync: Macro Pulse Engine . While Liquisync monitors the Global Supply Line (the "Tanker Truck" of M2 Liquidity moving from Central Banks toward the track with a 60-day lead), StableFlow measures the Immediate Fuel Pressure (the "Dry Powder" already in the pit lane, ready to be pumped into the car).
By using both indicators in tandem, you can follow the Dual-Fuel Strategy: Liquisync identifies the fundamental macro regime, while StableFlow identifies the specific "Refuel" and "Exhaustion" pivots within that regime. We will be providing a comprehensive breakdown of this synchronized telemetry in our upcoming Substack Masterclass: The Dual-Fuel Architecture.
Risk Disclaimer & Credits
The StableFlow is a thematic macro tool tracking on-chain liquidity proxies. Stablecoin data is subject to exchange reporting delays. This is not financial advice; it is a telemetry model for institutional education. Rob Maths is not liable for losses incurred via use of this model.
Tags:
indicator, bitcoin, btc, stablecoins, usdt, flow, liquidity, macro, refuel, institutional, robmaths, Rob Maths
Hookes Kinetics | IkkeOmarHooke's Kinetics: A Physics-Based Volatility System
This indicator applies the principles of Hooke's Law to financial time series data to model market volatility as a system of potential and kinetic energy.
Theoretical Foundation: Hooke's Law In physics, Hooke's Law states that the force (F) needed to extend or compress a spring by some distance (x) scales linearly with respect to that distance: F = -kx, where k is the spring constant.
Potential Energy (PE): PE = 0.5 * k * x^2 Kinetic Energy (KE): Energy possessed due to motion.
In this system, we treat Price Action as a spring. Compression (Potential Energy): When price consolidates, volatility compresses. The "spring" is being wound up. Energy is accumulated, not released. Release (Kinetic Energy): When price breaks out of compression, potential energy transforms into kinetic energy. The spring snaps back, driving price motion.
Indicator Mechanics The Hooke's Kinetics oscillator visualizes this energy transfer cycle to identify trend origins and exhaustion points.
Accumulating Energy (Potential): The Blue Area represents the buildup of Potential Energy. This occurs during periods of low volatility (consolidation). The algorithm detects when price variance drops below a threshold (representing spring compression) and aggregates this "stored force" over time. As long as the price remains compressed, the Blue potential energy grows.
Energy Conversion (Kinetic Release): The Red Histogram represents Kinetic Energy. When volatility expands significantly (a breakout), the system triggers a release event. The accumulated Blue potential energy is discharged and converted into the Red kinetic spike. This marks the moment the "spring" is released.
Trend Direction & Decay: Once the Kinetic Energy (Red spike) appears, the "explosive" phase is active. As the Red histogram decays (lowers back to zero), the market enters a coasting phase. The trend direction is established by the price movement during the initial Kinetic release. Traders observe the price vector as the Red energy dissipates to confirm the prevailing trend.
Reversion Signals (Bonus): Extreme peaks in Kinetic Energy (exceptionally high Red spikes) indicate a maximum extension of the spring. Just as a physical spring oscillates, extreme kinetic release often precedes a mean reversion. If price action opposes the direction of the Kinetic decay, it signals a likely reversal.
Visual Reference Referencing the chart above: Blue Ramp: Note the linear buildup of the blue area during sideways price action. This is the "loading" phase. Red Spike: Note the immediate drop in Blue and spike in Red coinciding with the green highlight circles on the chart. These are the breakout points. Green Circles: These highlight the specific candles where Potential converted to Kinetic, marking the optimal entry or decision points.
Code Description
The system defines market state using a composite variable "k" (Stiffness), which combines Price Volatility (NATR) and Relative Volume (RVOL).
k_price = range_natr != 0 ? 1.0 - ((natr - lowest_natr) / range_natr) : 0 k = (k_price * price_weight) + (k_vol * vol_weight) Here, we normalize volatility relative to a historical lookback. High values of "k" indicate high compression—this is the "winding" of the spring.
if is_compressed potential_energy := potential_energy + k kinetic_energy := kinetic_energy * DECAY_RATE When the market is tighter than the user-defined "stiff_thresh", the system accumulates Potential Energy. Note that Kinetic Energy actively decays during this phase, simulating friction or inertia slowing down price movement.
else drain_factor = (1.0 - k) transfer = potential_energy * drain_factor potential_energy := potential_energy - transfer kinetic_energy := (kinetic_energy * DECAY_RATE) + (transfer * ENERGY_MULT) This acts as the conservation of energy. We do not reset Potential to zero instantly; we drain it. The "drain_factor" ensures that a violent expansion (low k) drains potential energy faster than a mild move. This transferred energy is scaled up and added to the Kinetic state.
Note - AMPLITUDE MATTERS!
Observe the amplitude of the Kinetic Energy - higher peaks are more significant. Lower values are usually artifacts, but they can indicate mean reversion on a smaller scale while price remains within a range.
CryptoFlux Dynamo [JOAT]CryptoFlux Dynamo: Velocity Scalping Strategy
WHAT THIS STRATEGY IS
CryptoFlux Dynamo is an open-source Pine Script v6 strategy designed for momentum-based scalping on cryptocurrency perpetual futures. It combines multiple technical analysis methods into a unified system that adapts its behavior based on current market volatility conditions.
This script is published open-source so you can read, understand, and modify the complete logic. The description below explains everything the strategy does so that traders who cannot read Pine Script can fully understand how it works before using it.
HOW THIS STRATEGY IS ORIGINAL AND WHY THE INDICATORS ARE COMBINED
This strategy uses well-known indicators (MACD, EMA, RSI, MFI, Bollinger Bands, Keltner Channels, ATR). The originality is not in the individual indicators themselves, but in the specific way they are integrated into a regime-adaptive system. Here is the detailed justification for why these components are combined and how they work together:
The Problem Being Solved:
Standard indicator-based strategies use fixed thresholds. For example, a typical MACD strategy might enter when the histogram crosses above zero. However, in cryptocurrency markets, volatility changes dramatically throughout the day and week. A MACD crossover during a low-volatility consolidation period has very different implications than the same crossover during a high-volatility trending period. Using the same entry thresholds and stop distances in both conditions leads to either:
Too many false signals during consolidation (if thresholds are loose)
Missing valid opportunities during expansion (if thresholds are tight)
Stops that are too tight during volatility spikes (causing premature exits)
Stops that are too wide during compression (giving back profits)
The Solution Approach:
This strategy first classifies the current volatility regime using normalized ATR (ATR as a percentage of price), then dynamically adjusts ALL other parameters based on that classification. This creates a context-aware system rather than a static threshold comparison.
How Each Component Contributes to the System:
ATR-Based Regime Classification (The Foundation)
The strategy calculates ATR over 21 periods, smooths it with a 13-period EMA to reduce noise from wicks, then divides by price to get a normalized percentage. This ATR% is classified into three regimes:
- Compression (ATR% < 0.8%): Market is consolidating, breakouts are more likely but false signals are common
- Expansion (ATR% 0.8% - 1.6%): Normal trending conditions
- Velocity (ATR% > 1.6%): High volatility, larger moves but also larger adverse excursions
This regime classification then controls stop distances, profit targets, trailing stop offsets, and signal strength requirements. The regime acts as a "meta-parameter" that tunes the entire system.
EMA Ribbon (8/21/34) - Trend Structure Detection
The three EMAs establish trend direction and structure. When EMA 8 > EMA 21 > EMA 34, the trend structure is bullish. The slope of the middle EMA (21) is calculated over 8 bars and converted to degrees using arctangent. This slope measurement quantifies trend strength, not just direction.
Why these specific periods? The 8/21/34 sequence follows Fibonacci-like spacing and provides good separation on 5-minute cryptocurrency charts. The fast EMA (8) responds to immediate price action, the mid EMA (21) represents the short-term trend, and the slow EMA (34) acts as a trend filter.
The EMA ribbon works with the regime classification: during compression regimes, the strategy requires stronger ribbon alignment before entry because false breakouts are more common.
MACD (8/21/5) - Momentum Measurement
The MACD uses faster parameters (8/21/5) than the standard (12/26/9) because cryptocurrency markets move faster than traditional markets. The histogram is smoothed with a 5-period EMA to reduce noise.
The key innovation is the adaptive histogram baseline. Instead of using a fixed threshold, the strategy calculates a rolling baseline from the smoothed absolute histogram value, then multiplies by a sensitivity factor (1.15). This means the threshold for "significant momentum" automatically adjusts based on recent momentum levels.
The MACD works with the regime classification: during velocity regimes, the histogram baseline is effectively higher because recent momentum has been stronger, preventing entries on relatively weak momentum.
RSI (21 period) and MFI (21 period) - Independent Momentum Confirmation
RSI measures momentum using price changes only. MFI (Money Flow Index) measures momentum using price AND volume. By requiring both to confirm, the strategy filters out price moves that lack volume support.
The 21-period length is longer than typical (14) to reduce noise on 5-minute charts. The trigger threshold (55 for longs, 45 for shorts) is slightly offset from 50 to require momentum in the trade direction, not just neutral readings.
These indicators work together: a signal requires RSI > 55 AND MFI > 55 for longs. This dual confirmation reduces false signals from price manipulation or low-volume moves.
Bollinger Bands (1.5 mult) and Keltner Channels (1.8 mult) - Squeeze Detection
When Bollinger Bands contract inside Keltner Channels, volatility is compressing and a breakout is likely. This is the "squeeze" condition. When the bands expand back outside the channels, the squeeze "releases."
The strategy uses a 1.5 multiplier for Bollinger Bands (tighter than standard 2.0) and 1.8 for Keltner Channels. These values were chosen to identify meaningful squeezes on 5-minute cryptocurrency charts without triggering too frequently.
The squeeze detection works with the regime classification: squeeze releases during compression regimes receive additional signal strength points because breakouts from consolidation are more significant.
Volume Impulse Detection - Institutional Participation Filter
The strategy calculates a volume baseline (34-period SMA) and standard deviation. A "volume impulse" is detected when current volume exceeds the baseline by 1.15x OR when the volume z-score exceeds 0.5.
This filter ensures entries occur when there is meaningful market participation, not during low-volume periods where price moves are less reliable.
Volume impulse is required for all entries and adds points to the composite signal strength score.
Cycle Oscillator - Trend Alignment Filter
The strategy calculates a 55-period EMA as a cycle basis, then measures price deviation from this basis as a percentage. When price is more than 0.15% above the cycle basis, the cycle is bullish. When more than 0.15% below, the cycle is bearish.
This filter prevents counter-trend entries. Long signals require bullish cycle alignment; short signals require bearish cycle alignment.
BTC Dominance Filter (Optional) - Market Regime Filter
The strategy can optionally use BTC.D (Bitcoin Dominance) as a market regime filter. When BTC dominance is rising (slope > 0.12), the market is in "risk-off" mode and long entries on altcoins are filtered. When dominance is falling (slope < -0.12), short entries are filtered.
This filter is optional because the BTC.D data feed may lag during low-liquidity periods.
How The Components Work Together (The Mashup Justification):
The strategy uses a composite scoring system where each signal pathway contributes points:
Trend Break pathway (30 points): Requires EMA ribbon alignment + positive slope + price breaks above recent structure high
Momentum Surge pathway (30 points): Requires MACD histogram > adaptive baseline + MACD line > signal + RSI > 55 + MFI > 55 + volume impulse
Squeeze Release pathway (25 points): Requires BB inside KC (squeeze) then release + momentum bias + histogram confirmation
Micro Pullback pathway (15 points): Requires shallow retracement to fast EMA within established trend + histogram confirmation + volume impulse
Additional modifiers:
+5 points if volume impulse is present, -5 if absent
+5 points in velocity regime, -2 in compression regime
+5 points if cycle is aligned, -5 if counter-trend
A trade only executes when the composite score reaches the minimum threshold (default 55) AND all filters agree (session, cycle bias, BTC dominance if enabled).
This scoring system is the core innovation: instead of requiring ALL conditions to be true (which would generate very few signals) or ANY condition to be true (which would generate too many false signals), the strategy requires ENOUGH conditions to be true, with different conditions contributing different weights based on their reliability.
HOW THE STRATEGY CALCULATES ENTRIES AND EXITS
Entry Logic:
1. Calculate current volatility regime from ATR%
2. Calculate all indicator values (MACD, EMA, RSI, MFI, squeeze, volume)
3. Evaluate each signal pathway and sum points
4. Check all filters (session, cycle, dominance, kill switch)
5. If composite score >= 55 AND all filters pass, generate entry signal
6. Calculate position size based on risk per trade and regime-adjusted stop distance
7. Execute entry with regime name as comment
Position Sizing Formula:
RiskCapital = Equity * (0.65 / 100)
StopDistance = ATR * StopMultiplier(regime)
RawQuantity = RiskCapital / StopDistance
MaxQuantity = Equity * (12 / 100) / Price
Quantity = min(RawQuantity, MaxQuantity)
Quantity = round(Quantity / 0.001) * 0.001
This ensures each trade risks approximately 0.65% of equity regardless of volatility, while capping total exposure at 12% of equity.
Stop Loss Calculation:
Stop distance is ATR multiplied by a regime-specific multiplier:
Compression regime: 1.05x ATR (tighter stops because moves are smaller)
Expansion regime: 1.55x ATR (standard stops)
Velocity regime: 2.1x ATR (wider stops to avoid premature exits during volatility)
Take Profit Calculation:
Target distance is ATR multiplied by regime-specific multiplier and base risk/reward:
Compression regime: 1.6x ATR * 1.8 base R:R * 0.9 regime bonus = approximately 2.6x ATR
Expansion regime: 2.05x ATR * 1.8 base R:R * 1.0 regime bonus = approximately 3.7x ATR
Velocity regime: 2.8x ATR * 1.8 base R:R * 1.15 regime bonus = approximately 5.8x ATR
Trailing Stop Logic:
When adaptive trailing is enabled, the strategy calculates a trailing offset based on ATR and regime:
Compression regime: 1.1x base offset (looser trailing to avoid noise)
Expansion regime: 1.0x base offset (standard)
Velocity regime: 0.8x base offset (tighter trailing to lock in profits during fast moves)
The trailing stop only activates when it would be tighter than the initial stop.
Momentum Fail-Safe Exits:
The strategy closes positions early if momentum reverses:
Long positions close if MACD histogram turns negative OR EMA ribbon structure breaks (fast EMA crosses below mid EMA)
Short positions close if MACD histogram turns positive OR EMA ribbon structure breaks
This prevents holding through momentum reversals even if stop loss hasn't been hit.
Kill Switch:
If maximum drawdown exceeds 6.5%, the strategy disables new entries until manually reset. This prevents continued trading during adverse conditions.
HOW TO USE THIS STRATEGY
Step 1: Apply to Chart
Use a 5-minute chart of a high-liquidity cryptocurrency perpetual (BTC/USDT, ETH/USDT recommended)
Ensure at least 200 bars of history are loaded for indicator stabilization
Use standard candlestick charts only (not Heikin Ashi, Renko, or other non-standard types)
Step 2: Understand the Visual Elements
EMA Ribbon: Three lines (8/21/34 periods) showing trend structure. Bullish when stacked upward, bearish when stacked downward.
Background Color: Shows current volatility regime
- Indigo/dark blue = Compression (low volatility)
- Purple = Expansion (normal volatility)
- Magenta/pink = Velocity (high volatility)
Bar Colors: Reflect signal strength divergence. Brighter colors indicate stronger directional bias.
Triangle Markers: Entry signals. Up triangles below bars = long entry. Down triangles above bars = short entry.
Dashboard (top-right): Real-time display of regime, ATR%, signal strengths, position status, stops, targets, and risk metrics.
Step 3: Interpret the Dashboard
Regime: Current volatility classification (Compression/Expansion/Velocity)
ATR%: Normalized volatility as percentage of price
Long/Short Strength: Current composite signal scores (0-100)
Cycle Osc: Price deviation from 55-period EMA as percentage
Dominance: BTC.D slope and filter status
Position: Current position direction or "Flat"
Stop/Target: Current stop loss and take profit levels
Kill Switch: Status of drawdown protection
Volume Z: Current volume z-score
Impulse: Whether volume impulse condition is met
Step 4: Adjust Parameters for Your Needs
For more conservative trading: Increase "Minimum Composite Signal Strength" to 65 or higher
For more aggressive trading: Decrease to 50 (but expect more false signals)
For higher timeframes (15m+): Increase "Structure Break Window" to 12-15, increase "RSI Momentum Trigger" to 58
For lower liquidity pairs: Increase "Volume Impulse Multiplier" to 1.3, increase slippage in strategy properties
To disable short selling: Uncheck "Enable Short Structure"
To disable BTC dominance filter: Uncheck "BTC Dominance Confirmation"
STRATEGY PROPERTIES (BACKTEST SETTINGS)
These are the exact settings used in the strategy's Properties dialog box. You must use these same settings when evaluating the backtest results shown in the publication:
Initial Capital: $100,000
Justification: This amount is higher than typical retail accounts. I chose this value to demonstrate percentage-based returns that scale proportionally. The strategy uses percentage-based position sizing (0.65% risk per trade), so a $10,000 account would see the same percentage returns with 10x smaller position sizes. The absolute dollar amounts in the backtest should be interpreted as percentages of capital.
Commission: 0.04% (commission_value = 0.04)
Justification: This reflects typical perpetual futures exchange fees. Major exchanges charge between 0.02% (maker) and 0.075% (taker). The 0.04% value is a reasonable middle estimate. If your exchange charges different fees, adjust this value accordingly. Higher fees will reduce net profitability.
Slippage: 1 tick
Justification: This is conservative for liquid pairs like BTC/USDT on major exchanges during normal conditions. For less liquid altcoins or during high volatility, actual slippage may be higher. If you trade less liquid pairs, increase this value to 2-3 ticks for more realistic results.
Pyramiding: 1
Justification: No position stacking. The strategy holds only one position at a time. This simplifies risk management and prevents overexposure.
calc_on_every_tick: true
Justification: The strategy evaluates on every price update, not just bar close. This is necessary for scalping timeframes where waiting for bar close would miss opportunities. Note that this setting means backtest results may differ slightly from bar-close-only evaluation.
calc_on_order_fills: true
Justification: The strategy recalculates immediately after order fills for faster response to position changes.
RISK PER TRADE JUSTIFICATION
The default risk per trade is 0.65% of equity. This is well within the TradingView guideline that "risking more than 5-10% on a trade is not typically considered viable."
With the 12% maximum exposure cap, even if the strategy takes multiple consecutive losses, the total risk remains manageable. The kill switch at 6.5% drawdown provides additional protection by halting new entries during adverse conditions.
The position sizing formula ensures that stop distance (which varies by regime) is accounted for, so actual risk per trade remains approximately 0.65% regardless of volatility conditions.
SAMPLE SIZE CONSIDERATIONS
For statistically meaningful backtest results, you should select a dataset that generates at least 100 trades. On 5-minute BTC/USDT charts, this typically requires:
2-3 months of data during normal market conditions
1-2 months during high-volatility periods
3-4 months during low-volatility consolidation periods
The strategy's selectivity (requiring 55+ composite score plus all filters) means it generates fewer signals than less filtered approaches. If your backtest shows fewer than 100 trades, extend the date range or reduce the minimum signal strength threshold.
Fewer than 100 trades produces statistically unreliable results. Win rate, profit factor, and other metrics can vary significantly with small sample sizes.
STRATEGY DESIGN COMPROMISES AND LIMITATIONS
Every strategy involves trade-offs. Here are the compromises made in this design and the limitations you should understand:
Selectivity vs. Opportunity Trade-off
The 55-point minimum threshold filters many potential trades. This reduces false signals but also misses valid setups that don't meet all criteria. Lowering the threshold increases trade frequency but decreases win rate. There is no "correct" threshold; it depends on your preference for fewer higher-quality signals vs. more signals with lower individual quality.
Regime Classification Lag
The ATR-based regime detection uses historical data (21 periods + 13-period smoothing). It cannot predict sudden volatility spikes. During flash crashes or black swan events, the strategy may be classified in the wrong regime for several bars before the classification updates. This is an inherent limitation of any lagging indicator.
Indicator Parameter Sensitivity
The default parameters (MACD 8/21/5, EMA 8/21/34, RSI 21, etc.) are tuned for BTC/ETH perpetuals on 5-minute charts during 2024 market conditions. Different assets, timeframes, or market regimes may require different parameters. There is no guarantee that parameters optimized on historical data will perform similarly in the future.
BTC Dominance Filter Limitations
The CRYPTOCAP:BTC.D data feed may lag during low-liquidity periods or weekends. The dominance slope calculation uses a 5-bar SMA, adding additional delay. If you notice the filter behaving unexpectedly, consider disabling it.
Backtest vs. Live Execution Differences
TradingView backtesting does not replicate actual broker execution. Key differences:
Backtests assume perfect fills at calculated prices; real execution involves order book depth, latency, and partial fills
The calc_on_every_tick setting improves backtest realism but still cannot capture sub-bar price action or order book dynamics
Commission and slippage settings are estimates; actual costs vary by exchange, time of day, and market conditions
Funding rates on perpetual futures are not modeled in backtests and can significantly impact profitability over time
Exchange-specific limitations (position limits, liquidation mechanics, order types) are not modeled
Market Condition Dependencies
This strategy is designed for trending and breakout conditions. During extended sideways consolidation with no clear direction, the strategy may generate few signals or experience whipsaws. No strategy performs well in all market conditions.
Cryptocurrency-Specific Risks
Cryptocurrency markets operate 24/7 without session boundaries. This means:
No natural "overnight" risk reduction
Volatility can spike at any time
Liquidity varies significantly by time of day
Exchange outages or issues can occur at any time
WHAT THIS STRATEGY DOES NOT DO
To be straightforward about limitations:
This strategy does not guarantee profits. Past backtest performance does not indicate future results.
This strategy does not predict the future. It reacts to current conditions based on historical patterns.
This strategy does not account for funding rates, which can significantly impact perpetual futures profitability.
This strategy does not model exchange-specific execution issues (partial fills, requotes, outages).
This strategy does not adapt to fundamental news events or black swan scenarios.
This strategy is not optimized for all market conditions. It may underperform during extended consolidation.
IMPORTANT RISK WARNINGS
Past performance does not guarantee future results. The backtest results shown reflect specific historical market conditions and parameter settings. Markets change constantly, and strategies that performed well historically may underperform or lose money in the future. A single backtest run does not constitute proof of future profitability.
Trading involves substantial risk of loss. Cryptocurrency derivatives are highly volatile instruments. You can lose your entire investment. Only trade with capital you can afford to lose completely.
This is not financial advice. This strategy is provided for educational and informational purposes only. It does not constitute investment advice, trading recommendations, or any form of financial guidance. The author is not a licensed financial advisor.
You are responsible for your own decisions. Before using this strategy with real capital:
Thoroughly understand the code and logic by reading the open-source implementation
Forward test with paper trading or very small positions for an extended period
Verify that commission, slippage, and execution assumptions match your actual trading environment
Understand that live results will differ from backtest results
Consider consulting with a qualified financial advisor
No guarantees or warranties. This strategy is provided "as is" without any guarantees of profitability, accuracy, or suitability for any purpose. The author is not responsible for any losses incurred from using this strategy.
OPEN-SOURCE CODE STRUCTURE
The strategy code is organized into these sections for readability:
Configuration Architecture: Input parameters organized into logical groups (Core Controls, Optimization Constants, Regime Intelligence, Signal Pathways, Risk Architecture, Visualization)
Helper Functions: calcQty() for position sizing, clamp01() and normalize() for value normalization, calcMFI() for Money Flow Index calculation
Core Indicator Engine: EMA ribbon, ATR and regime classification, MACD with adaptive baseline, RSI, MFI, volume analytics, cycle oscillator, BTC dominance filter, squeeze detection
Signal Pathway Logic: Trend break, momentum surge, squeeze release, micro pullback pathways with composite scoring
Entry/Exit Orchestration: Signal filtering, position sizing, entry execution, stop/target calculation, trailing stop logic, momentum fail-safe exits
Visualization Layer: EMA plots, regime background, bar coloring, signal labels, dashboard table
You can read and modify any part of the code. Understanding the logic before deployment is strongly recommended.
- Made with passion by officialjackofalltrades
Custom Sector Comparison Index (CSCI)Compare any stock against a custom basket of its true peers.
Most traders compare stocks to broad indexes like the S&P 500 (SPY) or the Nasdaq (QQQ). But if you are analyzing a niche sector—like Residential REITs, Gold Miners, or AI Semis—broad indexes are too noisy.
This indicator allows you to build your own Custom Equal-Weight Index made up of up to 12 specific symbols. It then plots the performance of the stock you are currently viewing against that custom index, starting from a specific "Anchor Date" of your choosing.
Why use this?
Standard relative strength tools force you to compare against a single symbol (like SPY). But if you want to know if Centerspace (CSR) is lagging its direct competitors, comparing it to SPY (which contains Tech and Healthcare) is useless. Comparing it to VNQ (which contains Cell Towers and Malls) is also imperfect.
With this tool, you can create a "Pure Residential REIT" index and see exactly how your stock is performing against the group.
Key Features:
Fully Configurable: Input up to 12 different symbols to build your custom index.
Smart Filtering: Automatically ignores blank slots. You can build a basket of 3 stocks or 12 stocks without breaking the math.
Custom Anchor Date: Set the specific start date for the comparison (e.g., YTD, Q3 start, or a specific market event).
Visual Performance Gap: Green shading indicates your stock is outperforming the basket; Red shading indicates underperformance.
Example Use Case: Residential REITs
I developed this to analyze the "Residential REIT" sector. I wanted to see if Invitation Homes (INVH) was trading at a discount due to fundamentals or if the whole sector was down.
I configured the basket with 9 of its closest peers:
NYSE:VRE, NYSE:UDR, NYSE:MAA
NYSE:EQR, NYSE:CSR, NYSE:ESS
NYSE:CPT, NYSE:AVB, NYSE:AMH
The Result: The indicator draws a gray line representing the average return of those 9 "Big Boys." I can then load CSR on the chart and immediately see if it is lagging the pack (a potential value buy) or leading it.
How to Use:
Add the indicator to your chart.
Open Settings (Double-click the line).
Start Date: Set the date you want the "race" to begin (where all returns reset to 0%).
Symbols: Type in the tickers for your custom basket (e.g., NVDA, AMD, INTC). Leave unused slots blank.
Analyze:
Gray Line: The average performance of your basket.
Blue Line: The performance of the current symbol on your chart.
Pro Tip: You can save different "Presets" in the indicator settings for different sectors (e.g., save one preset as "Semis" and another as "Oil Majors") so you don't have to re-type symbols every time.
Trend Strength Matrix [JOAT]Trend Strength Matrix — Multi-Timeframe Confluence Analysis System
This indicator addresses a specific analytical challenge: how to efficiently compare multiple technical measurements across different timeframes while accounting for their varying scales and interpretations. Rather than managing separate indicator windows with different scales, this tool normalizes four distinct analytical approaches to a common -1 to +1 scale and presents them in a unified matrix format.
Why This Combination Adds Value
The core problem this indicator solves is analytical fragmentation. Traders often use multiple indicators but struggle with:
1. **Scale Inconsistency**: RSI ranges 0-100, MACD has no fixed range, ADX ranges 0-100 but measures strength not direction
2. **Timeframe Coordination**: Checking multiple timeframes requires switching between charts or cramming multiple indicators
3. **Cognitive Load**: Processing different indicator types simultaneously creates mental overhead
4. **Confluence Assessment**: Determining when multiple approaches agree requires manual comparison
This indicator specifically addresses these issues by creating a standardized analytical framework where different measurement approaches can be directly compared both within and across timeframes.
Originality and Technical Innovation
While the individual components (RSI, MACD, ADX, Moving Average) are standard, the originality lies in:
1. **Unified Normalization System**: Each component is mathematically transformed to a -1 to +1 scale using component-specific normalization that preserves the indicator's core characteristics
2. **Multi-Timeframe Weighting Algorithm**: Higher timeframes receive proportionally more weight (40% current, 25% next, 20% third, 15% fourth) based on the principle that longer timeframes provide more significant context
3. **Real-Time Confluence Scoring**: The composite calculation provides an instant assessment of how much the different analytical approaches agree
4. **Adaptive Visual Encoding**: The heatmap format allows immediate pattern recognition of agreement/disagreement across both indicators and timeframes
How the Components Work Together
Each component measures a different aspect of market behavior, and their combination provides a more complete analytical picture:
**Momentum Component (RSI-based)**: Measures the velocity of price changes by comparing average gains to losses
**Trend Component (MACD-based)**: Measures the relationship between fast and slow moving averages, indicating trend acceleration/deceleration
**Strength Component (ADX-based)**: Measures trend strength regardless of direction, then applies directional bias
**Position Component (MA-based)**: Measures price position relative to a reference average
The mathematical relationship between these components creates a comprehensive view:
- When all four agree (similar colors), it suggests multiple analytical approaches are aligned
- When they disagree (mixed colors), it highlights analytical uncertainty or transition periods
- The composite score quantifies the degree of agreement numerically
Detailed Component Analysis
**1. Momentum Oscillator Component**
This component transforms RSI into a centered oscillator by subtracting 50 and dividing by 50, creating a -1 to +1 range where 0 represents equilibrium between buying and selling pressure.
// Momentum calculation normalized to -1 to +1 scale
float rsi = ta.rsi(close, rsiLength)
float rsiScore = (rsi - 50) / 50
// Result: 0 at equilibrium, +1 at extreme overbought, -1 at extreme oversold
**2. Moving Average Convergence Component**
MACD is normalized by its own volatility (standard deviation) to create a bounded oscillator. This prevents the unbounded nature of MACD from dominating the composite calculation.
// MACD normalized by its historical volatility
= ta.macd(close, macdFast, macdSlow, macdSignal)
float macdStdev = ta.stdev(macdLine, 100)
float macdScore = macdStdev != 0 ? math.max(-1, math.min(1, macdLine / (macdStdev * 2))) : 0
**3. Directional Movement Component**
This combines ADX (strength) with directional movement (+DI vs -DI) to create a directional strength measurement. ADX alone shows strength but not direction; this component adds directional context.
// ADX-based directional strength
= calcADX(adxLength)
float adxStrength = math.min(adx / 50, 1) // Normalize ADX to 0-1
float adxDirection = plusDI > minusDI ? 1 : -1 // Direction bias
float adxScore = adxStrength * adxDirection // Combine strength and direction
**4. Price Position Component**
This measures price deviation from a moving average, weighted by the magnitude of deviation to distinguish between minor and significant displacements.
// Price position relative to moving average
float ma = ta.sma(close, maLength)
float maDirection = close > ma ? 1 : -1
float maDeviation = math.abs(close - ma) / ma * 10 // Percentage deviation scaled
float maScore = math.max(-1, math.min(1, maDirection * math.min(maDeviation, 1)))
Multi-Timeframe Integration Logic
The multi-timeframe system uses a weighted average that gives more influence to higher timeframes:
// Timeframe weighting system
float currentTF = composite * 0.40 // Current timeframe: 40%
float higherTF1 = composite_tf2 * 0.25 // Next higher: 25%
float higherTF2 = composite_tf3 * 0.20 // Third higher: 20%
float higherTF3 = composite_tf4 * 0.15 // Fourth higher: 15%
float multiTFComposite = currentTF + higherTF1 + higherTF2 + higherTF3
This weighting reflects the principle that higher timeframes provide more significant context for market direction, while lower timeframes provide timing precision.
What the Dashboard Shows
The heatmap displays a grid where:
Each row represents a timeframe
Each column shows one component's normalized reading
Colors indicate the value: green shades for positive, red shades for negative, gray for neutral
The rightmost column shows the composite average for that timeframe
Visual Elements
Moving Average Line — A simple moving average plotted on the price chart
Background Tint — Subtle coloring based on the composite score
Shift Labels — Markers when the composite crosses threshold values
Dashboard Table — The main heatmap display
Inputs
Calculation Parameters:
Momentum Length (default: 14)
MACD Fast/Slow/Signal (default: 12/26/9)
Directional Movement Length (default: 14)
Moving Average Length (default: 50)
Timeframe Settings:
Enable/disable multi-timeframe analysis
Select additional timeframes to display
How to Read the Display
Similar colors across a row indicate the components are showing similar readings
Mixed colors indicate the components are showing different readings
The composite percentage shows the average of all four components
Alerts
Composite crossed above/below threshold values
Strong readings (above 50% or below -50%)
Important Limitations and Realistic Expectations
This indicator displays current analytical conditions—it does not predict future price movements
Agreement between components indicates current analytical alignment, not future price direction
All four components are based on historical price data and inherently lag price action
Market conditions can change rapidly, making current readings irrelevant
Different parameter settings will produce different readings and interpretations
No combination of technical indicators can reliably predict future market behavior
Strong readings in one direction do not guarantee continued movement in that direction
The composite score reflects mathematical relationships, not market fundamentals or sentiment
This tool should be used as one input among many in a comprehensive analytical approach
Appropriate Use Cases
This indicator is designed for:
- Analytical organization and efficiency
- Multi-timeframe confluence assessment
- Pattern recognition in indicator relationships
- Educational study of how different analytical approaches relate
- Supplementary analysis alongside other methods
This indicator is NOT designed for:
- Standalone trading signals
- Guaranteed profit generation
- Market timing precision
- Replacement of fundamental analysis
- Automated trading systems
— Made with passion by officialjackofalltrades
DAILY INTRADAY KEY LEVELS by TenAMTrader📌 DAILY INTRADAY KEY LEVELS — by TenAMTrader
DAILY INTRADAY KEY LEVELS is a precision-built intraday mapping tool designed to keep traders aligned with the most important price references used by institutions and active day traders.
This indicator automatically plots Previous Day RTH levels, Overnight levels, and the Opening Range (ORB) using New York session timing, so your levels remain consistent and reliable across all intraday timeframes.
🔑 Levels Included
Previous Day (RTH)
PDH – Previous Day Regular Trading Hours High
PDL – Previous Day Regular Trading Hours Low
(Locked at the RTH close for accuracy)
Overnight Session (16:00–09:30 NY)
ONH – Overnight High
ONL – Overnight Low
(Tracks live overnight and finalizes at the cash open)
Opening Range (09:30–09:45 NY)
ORBH – Opening Range High
ORBM – Opening Range Midpoint
ORBL – Opening Range Low
🎯 Why These Levels Matter
These price levels frequently act as:
Liquidity targets
Support & resistance
Decision points for continuation vs. rejection
Bias filters for trend days vs. range days
The Opening Range, in particular, is a cornerstone of many institutional and professional trading models.
⚙️ Customization & Controls
Toggle each level on/off independently
Choose solid lines or line-with-breaks
Adjustable line width and colors
Optional future-extending rays
Clean single-label system (no clutter)
Text-only or boxed labels
Configurable label side, size, and offsets
Optional current-day-only view to keep charts clean
All values remain timeframe-independent, meaning your levels will not change when switching chart intervals.
📈 Best Use Cases
Futures, Index, and Equity day trading
Opening drive & ORB strategies
Fade vs. continuation decision-making
Level confluence with VWAP, trend, or volume tools
⚠️ Disclaimer
This indicator is for educational and informational purposes only. It does not constitute financial advice or trade recommendations. Trading involves risk, and past performance is not indicative of future results. Always manage risk and trade according to your own plan.
Built for traders who plan first, execute second, and respect key levels.
— TenAMTrader
Smart Money Zones (FVG + OB) + MTF Trend Panel## Overview
Professional-grade institutional trading zones indicator that identifies **Fair Value Gaps (FVG)** and **Order Blocks (OB)** - key price inefficiencies where smart money operates. Includes a comprehensive **Multi-Timeframe Trend Panel** for complete market context at a glance.
## Core Features
### 🎯 Fair Value Gaps (FVG)
Fair Value Gaps occur when price moves so aggressively that it leaves an "imbalance" or "gap" in the market structure. These zones often act as magnets where price returns to find liquidity.
**Detection Logic:**
- **Bullish FVG**: When current candle's low is above the high of the candle 2 bars ago
- **Bearish FVG**: When current candle's high is below the low of the candle 2 bars ago
- Requires strong impulse candle (configurable body percentage threshold)
- Color-coded zones: Green for bullish, Red for bearish
### 📦 Order Blocks (OB)
Order Blocks represent the last opposite candle before a significant price move - the zone where institutional orders were placed before the breakout.
**Detection Logic:**
- Identifies the last bearish candle before a strong bullish breakout (Bullish OB)
- Identifies the last bullish candle before a strong bearish breakout (Bearish OB)
- Validates breakout strength using ATR multiplier (1.2x default)
- Color-coded zones: Blue for bullish, Orange for bearish
### 📊 Multi-Timeframe Trend Panel
Real-time trend analysis across **7 timeframes** displayed in an elegant dashboard:
- **1 Minute** - Ultra short-term scalping
- **5 Minutes** - Short-term momentum
- **15 Minutes** - Intraday swings
- **30 Minutes** - Session trends
- **1 Hour** - Multi-session trends
- **4 Hours** - Daily structure
- **Daily** - Long-term direction
**Visual Indicators:**
- 🟢 Green circle = Bullish trend
- 🔴 Red circle = Bearish trend
- Clean, professional table design with customizable position and size
## Intelligence Features
### 🧠 Zone Strength Rating
Every zone is automatically classified by strength based on size relative to ATR:
- **VERY STRONG** - 2.0x ATR or more (major institutional zones)
- **STRONG** - 1.5x to 2.0x ATR (significant zones)
- **MEDIUM** - 1.0x to 1.5x ATR (moderate zones)
- **WEAK** - Below 1.0x ATR (minor zones)
Strength rating helps you prioritize which zones to trade from!
### 📉 Smart Mitigation Tracking
Zones automatically track how much they've been "filled" or mitigated:
- Calculates penetration percentage as price enters the zone
- Zones turn **gray** when 50%+ mitigated or fully filled
- Option to **auto-delete** mitigated zones to keep chart clean
- Live zones extend dynamically with price action
### 🎨 Trend Filter (Optional)
When enabled, only shows zones aligned with the current trend:
- Uses customizable MA period (default 50)
- Bullish zones only appear in uptrend
- Bearish zones only appear in downtrend
- Reduces noise and false signals significantly
## Customization Options
### Display Settings
- Toggle FVGs and OBs independently
- Adjust max zones per type (5-200)
- Choose to remove or gray out mitigated zones
- Color customization for all zone types
### Detection Parameters
- **Min Impulse Body %**: Controls how strong the impulse candle must be (0.3-1.0)
- **Order Block Lookback**: How many bars to look back for OB validation (5-50)
- **ATR Length**: Period for ATR calculation (5-50)
### Trend Filter
- Enable/disable trend filtering
- Adjustable MA period for trend determination
### MTF Panel
- Show/hide the trend panel
- 4 position options: Top Right, Top Left, Bottom Right, Bottom Left
- 3 size options: Small, Normal, Large
- Customizable MA period for trend calculation across all timeframes
## Trading Applications
### 1. **Liquidity Grab Entries**
Wait for price to sweep a zone (50%+ mitigation) then enter on reversal. Smart money often "hunts" these zones before the real move begins.
### 2. **Confluence Trading**
Look for zones that align with:
- Multiple timeframe trends showing same direction
- Multiple FVGs/OBs stacking in same area
- Key support/resistance levels
### 3. **Breakout Confirmation**
Use Order Blocks to confirm the strength of breakouts. Strong OBs indicate institutional participation.
### 4. **Retracement Entries**
Enter when price returns to a fresh, unmitigated zone in the direction of the higher timeframe trend.
### 5. **Range Trading**
Identify FVG zones at range extremes - price often reverses at these inefficiencies.
## How It Works
**Fair Value Gaps** form when the middle candle creates such aggressive movement that it leaves a price gap between the high/low of surrounding candles. Institutional traders know these gaps get filled.
**Order Blocks** mark the origin of major moves. The last opposite-colored candle before a breakout is where large orders were placed. Price often returns to these zones for "retests" before continuing.
**Mitigation** happens when price returns to fill these zones. The indicator tracks this automatically, showing you which zones are still "fresh" and which have been used up.
## Best Practices
✅ **Use higher timeframe trends** - Always check the MTF panel before taking trades
✅ **Trade fresh zones** - Unmitigated zones (not gray) have the highest probability
✅ **Combine with price action** - Look for rejection wicks and engulfing candles at zones
✅ **Respect zone strength** - VERY STRONG and STRONG zones are most reliable
✅ **Use trend filter** - Especially on lower timeframes to reduce false signals
❌ **Don't overtrade** - Not every zone will react, wait for confirmation
❌ **Don't ignore context** - Check the MTF panel for conflicting trends
❌ **Don't chase** - Wait for price to come to the zone, don't enter mid-zone
## Technical Details
- **Non-repainting**: All zones are drawn on confirmed candles only
- **Performance optimized**: Uses efficient array management with per-type caps
- **Real-time updates**: Zones extend and track mitigation as price moves
- **Universal compatibility**: Works on all markets and timeframes
## Recommended Settings by Style
**Scalping (1m-5m charts):**
- Max zones: 10-15
- Use trend filter: ON
- MTF Panel: Focus on 1m-15m trends
- Remove mitigated: ON (keep chart clean)
**Day Trading (5m-1H charts):**
- Max zones: 15-20
- Use trend filter: ON
- MTF Panel: Focus on 15m-4H trends
- Remove mitigated: OFF (track zone history)
**Swing Trading (1H-D charts):**
- Max zones: 20+
- Use trend filter: Optional
- MTF Panel: Focus on 1H-1D trends
- Remove mitigated: OFF (important zones persist)
---
## Perfect For
- Smart Money Concept (SMC) traders
- ICT methodology followers
- Institutional order flow traders
- Price action traders seeking key zones
- Multi-timeframe analysis enthusiasts
**Compatible with all markets:** Forex, Crypto, Stocks, Indices, Commodities, Futures
*Trade where the institutions trade. Follow the smart money.*
Volume-Confirmed Reversal Engine [Scalping-Algo]█ VOLUME-CONFIRMED REVERSAL ENGINE
A reversal detection system combining price action exhaustion with volume confirmation to identify high-probability turning points.
█ WHAT MAKES THIS ORIGINAL?
Unlike oscillators (RSI, Stochastic) that signal at arbitrary levels, VCRE uses a TWO-STEP CONFIRMATION process:
1. ANCHOR CANDLE: Detects when price closes beyond ALL recent candles (not just one), indicating true exhaustion
2. VOLUME VALIDATION: Requires 2x average volume to confirm institutional participation
3. BREAKOUT CONFIRMATION: Waits for price to break back through anchor range before signaling
4. QUALITY SCORING: Rates each signal 1-4 stars based on multiple confluence factors
█ HOW IT WORKS
STEP 1 - ANCHOR DETECTION
• Bullish: Close drops below the LOW of ALL previous N candles + high volume
• Bearish: Close rises above the HIGH of ALL previous N candles + high volume
• This identifies potential exhaustion points with institutional participation
STEP 2 - CONFIRMATION
• Bullish signal: Price must close ABOVE anchor candle's high
• Bearish signal: Price must close BELOW anchor candle's low
• Must occur within specified bars or setup is cancelled
STEP 3 - SCORING (1-4 Stars)
★ Confirmation occurred
★ Anchor had exceptional volume (>2x avg)
★ Confirmation candle has strong volume (>1.2x avg)
★ Aligned with macro trend (200 EMA)
█ HOW TO USE
SIGNALS
• Green "B" = BUY signal | Red "S" = SELL signal
• More stars (★) = Higher probability setup
SETUP BOXES
• Green box = Bullish setup forming, waiting for confirmation
• Red box = Bearish setup forming, waiting for confirmation
DASHBOARD
• Shows status, confirmation countdown, and volume condition
█ RECOMMENDED SETTINGS
| Style | Lookback | Confirm | Volume Multi |
|--------------|----------|---------|--------------|
| Scalping | 10-15 | 2-3 | 1.5x |
| Day Trading | 15-25 | 3-4 | 2.0x |
| Swing | 20-30 | 3-5 | 2.0-2.5x |
█ KEY PARAMETERS
• Candle Lookback: Candles to check for breakout (higher = stronger signals)
• Confirm Within: Max bars for confirmation (lower = faster signals)
• Anchor Volume Multiplier: Volume threshold for anchor candle
• Macro Trend EMA: Trend filter for scoring (default 200)
█ ALERTS
• Buy/Sell Signal - Any confirmation
• High-Quality Buy/Sell - 3+ star signals only
• Setup Detected - When anchor forms (before confirmation)
█ TIPS
• Focus on 3-4 star signals for best results
• Signals near support/resistance add confluence
• Use stop-loss beyond anchor candle extreme
• Test on demo before live trading
Works on all markets: Stocks, Forex, Crypto, Futures
Smart Money Zones (FVG + OB) + MTF Trend Panel## Overview
Professional-grade institutional trading zones indicator that identifies **Fair Value Gaps (FVG)** and **Order Blocks (OB)** - key price inefficiencies where smart money operates. Includes a comprehensive **Multi-Timeframe Trend Panel** for complete market context at a glance.
## Core Features
### 🎯 Fair Value Gaps (FVG)
Fair Value Gaps occur when price moves so aggressively that it leaves an "imbalance" or "gap" in the market structure. These zones often act as magnets where price returns to find liquidity.
**Detection Logic:**
- **Bullish FVG**: When current candle's low is above the high of the candle 2 bars ago
- **Bearish FVG**: When current candle's high is below the low of the candle 2 bars ago
- Requires strong impulse candle (configurable body percentage threshold)
- Color-coded zones: Green for bullish, Red for bearish
### 📦 Order Blocks (OB)
Order Blocks represent the last opposite candle before a significant price move - the zone where institutional orders were placed before the breakout.
**Detection Logic:**
- Identifies the last bearish candle before a strong bullish breakout (Bullish OB)
- Identifies the last bullish candle before a strong bearish breakout (Bearish OB)
- Validates breakout strength using ATR multiplier (1.2x default)
- Color-coded zones: Blue for bullish, Orange for bearish
### 📊 Multi-Timeframe Trend Panel
Real-time trend analysis across **7 timeframes** displayed in an elegant dashboard:
- **1 Minute** - Ultra short-term scalping
- **5 Minutes** - Short-term momentum
- **15 Minutes** - Intraday swings
- **30 Minutes** - Session trends
- **1 Hour** - Multi-session trends
- **4 Hours** - Daily structure
- **Daily** - Long-term direction
**Visual Indicators:**
- 🟢 Green circle = Bullish trend
- 🔴 Red circle = Bearish trend
- Clean, professional table design with customizable position and size
## Intelligence Features
### 🧠 Zone Strength Rating
Every zone is automatically classified by strength based on size relative to ATR:
- **VERY STRONG** - 2.0x ATR or more (major institutional zones)
- **STRONG** - 1.5x to 2.0x ATR (significant zones)
- **MEDIUM** - 1.0x to 1.5x ATR (moderate zones)
- **WEAK** - Below 1.0x ATR (minor zones)
Strength rating helps you prioritize which zones to trade from!
### 📉 Smart Mitigation Tracking
Zones automatically track how much they've been "filled" or mitigated:
- Calculates penetration percentage as price enters the zone
- Zones turn **gray** when 50%+ mitigated or fully filled
- Option to **auto-delete** mitigated zones to keep chart clean
- Live zones extend dynamically with price action
### 🎨 Trend Filter (Optional)
When enabled, only shows zones aligned with the current trend:
- Uses customizable MA period (default 50)
- Bullish zones only appear in uptrend
- Bearish zones only appear in downtrend
- Reduces noise and false signals significantly
## Customization Options
### Display Settings
- Toggle FVGs and OBs independently
- Adjust max zones per type (5-200)
- Choose to remove or gray out mitigated zones
- Color customization for all zone types
### Detection Parameters
- **Min Impulse Body %**: Controls how strong the impulse candle must be (0.3-1.0)
- **Order Block Lookback**: How many bars to look back for OB validation (5-50)
- **ATR Length**: Period for ATR calculation (5-50)
### Trend Filter
- Enable/disable trend filtering
- Adjustable MA period for trend determination
### MTF Panel
- Show/hide the trend panel
- 4 position options: Top Right, Top Left, Bottom Right, Bottom Left
- 3 size options: Small, Normal, Large
- Customizable MA period for trend calculation across all timeframes
## Trading Applications
### 1. **Liquidity Grab Entries**
Wait for price to sweep a zone (50%+ mitigation) then enter on reversal. Smart money often "hunts" these zones before the real move begins.
### 2. **Confluence Trading**
Look for zones that align with:
- Multiple timeframe trends showing same direction
- Multiple FVGs/OBs stacking in same area
- Key support/resistance levels
### 3. **Breakout Confirmation**
Use Order Blocks to confirm the strength of breakouts. Strong OBs indicate institutional participation.
### 4. **Retracement Entries**
Enter when price returns to a fresh, unmitigated zone in the direction of the higher timeframe trend.
### 5. **Range Trading**
Identify FVG zones at range extremes - price often reverses at these inefficiencies.
## How It Works
**Fair Value Gaps** form when the middle candle creates such aggressive movement that it leaves a price gap between the high/low of surrounding candles. Institutional traders know these gaps get filled.
**Order Blocks** mark the origin of major moves. The last opposite-colored candle before a breakout is where large orders were placed. Price often returns to these zones for "retests" before continuing.
**Mitigation** happens when price returns to fill these zones. The indicator tracks this automatically, showing you which zones are still "fresh" and which have been used up.
## Best Practices
✅ **Use higher timeframe trends** - Always check the MTF panel before taking trades
✅ **Trade fresh zones** - Unmitigated zones (not gray) have the highest probability
✅ **Combine with price action** - Look for rejection wicks and engulfing candles at zones
✅ **Respect zone strength** - VERY STRONG and STRONG zones are most reliable
✅ **Use trend filter** - Especially on lower timeframes to reduce false signals
❌ **Don't overtrade** - Not every zone will react, wait for confirmation
❌ **Don't ignore context** - Check the MTF panel for conflicting trends
❌ **Don't chase** - Wait for price to come to the zone, don't enter mid-zone
## Technical Details
- **Non-repainting**: All zones are drawn on confirmed candles only
- **Performance optimized**: Uses efficient array management with per-type caps
- **Real-time updates**: Zones extend and track mitigation as price moves
- **Universal compatibility**: Works on all markets and timeframes
## Recommended Settings by Style
**Scalping (1m-5m charts):**
- Max zones: 10-15
- Use trend filter: ON
- MTF Panel: Focus on 1m-15m trends
- Remove mitigated: ON (keep chart clean)
**Day Trading (5m-1H charts):**
- Max zones: 15-20
- Use trend filter: ON
- MTF Panel: Focus on 15m-4H trends
- Remove mitigated: OFF (track zone history)
**Swing Trading (1H-D charts):**
- Max zones: 20+
- Use trend filter: Optional
- MTF Panel: Focus on 1H-1D trends
- Remove mitigated: OFF (important zones persist)
---
## Perfect For
- Smart Money Concept (SMC) traders
- ICT methodology followers
- Institutional order flow traders
- Price action traders seeking key zones
- Multi-timeframe analysis enthusiasts
**Compatible with all markets:** Forex, Crypto, Stocks, Indices, Commodities, Futures
*Trade where the institutions trade. Follow the smart money.*
Mag 7 EMA Trend MonitorDashboard Layout:
1. Symbol Column: The Mag 7 tickers.
2. Trend Column: Visual Bull/Bear status.
3. Strength Column: Percentage distance from the mean (EMA 21).
4. Aggregate Row: Summary of market breadth and average sector pull/push.
How to Interpret the Trend Strength:
• Positive %: The stock is trading above its 21 EMA. A very high number (e.g., $+15\%$) might suggest the stock is "overbought" or overextended.
• Negative %: The stock is trading below its 21 EMA. A very low number (e.g., $-10\%$) might suggest it is "oversold."
• Avg Strength: This gives you a bird's-eye view of the sector. If the aggregate is "5 Up / 2 Down" but the Avg Strength is only $+0.5\%$, the trend is weak and might be exhausting.
"Pro-tips" for tool:
• Multi-Timeframe Correlation: Try setting the Dashboard Timeframe to "D" (Daily) while trading on a "5m" or "15m" chart. This allows you to see if your intraday trade is aligned with the "Big Money" trend of the week.
• The 4/7 Rule: Watch for that Aggregate row to hit 4 out of 7. In the Mag 7, since these stocks carry so much weight in the SPY and QQQ, a shift to a majority (4+) often precedes a move in the overall market indices.
EMA + Previous Candle High/LowA versatile multi-timeframe indicator that combines customizable EMAs with previous candle levels for precise support/resistance identification.
Key Features:
📊 4 Fully Customizable EMAs:
EMA 9 (Yellow) - Fast-moving for scalping
EMA 20 (Blue) - Short-term trend
EMA 50 (Orange) - Medium-term trend
EMA 200 (White) - Long-term trend direction
Each EMA is independently customizable:
Adjustable period length
Custom color selection
Line thickness (1-5)
Transparency control (0-100%)
📈 Previous Candle Levels:
Displays high/low from any timeframe (default: Daily)
Green line for Previous High
Red line for Previous Low
Customizable line style: Solid, Dashed, or Dotted
Optional shaded zone between high/low with adjustable transparency
Price labels showing exact levels
Configurable line extension (10-200 bars forward)
Use Cases:
Day traders: Use Daily high/low with fast EMAs (9/20) for intraday support/resistance
Swing traders: Use Weekly high/low with slower EMAs (50/200) for trend confirmation
Scalpers: Combine 5-min previous levels with EMA 9 for quick entries
Position traders: Weekly/Monthly levels with EMA 200 for long-term bias
Why This Indicator:
Previous timeframe highs/lows act as natural support/resistance where price often reacts. Combined with EMAs for trend confirmation, you get clear levels to enter trades with confluence. The full customization allows you to match any trading style or chart theme.
Intraday ORB-Anchored VWAP Structure [Arjo]Intraday ORB-Anchored VWAP Structure
This indicator is built for intraday traders. This tool helps them to see how the market is behaving today. It uses Opening Range, VWAP, and commonly used reference levels to show the market's general direction.
It will not tell you exactly when to buy or sell. Instead, it provides a clear picture of the market so you can make better decisions on your own.
What This Indicator Does
1. Defines the Trading Session
The indicator works only during the selected intraday session (for example, the Indian market). All levels reset automatically at the start of each new trading day.
2. Calculates the Opening Range (ORB)
The Opening Range is the high and low formed during the first few minutes of the session (e.g., first 15 minutes). This range helps identify early market direction.
3. Determines Early Directional Bias
After the Opening Range ends, a smooth trend filter (using a smooth function) evaluates whether price behavior is more bullish or bearish.
This step is used only to decide where VWAP should be anchored , not to generate signals.
4. Anchors VWAP from the Opening Range
If early price behavior is bullish, VWAP is anchored from the Opening Range High
If early price behavior is bearish, VWAP is anchored from the Opening Range Low
5. Plots Important Reference Levels
Previous Day High (PDH) and Low (PDL)
Central Pivot Range (TC, PP, BC)
Opening Range High and Low
Optional Opening Range box
Anchored VWAP for the current session only
How You Can Use This Indicator
Use Opening Range High and Low to understand where the market found early support and resistance.
Observe how price behaves relative to the anchored VWAP :
Staying above VWAP suggests intraday strength
Staying below VWAP suggests intraday weakness
Use PDH, PDL, and CPR levels as reference zones where price may react.
Combine these levels with your own entry rules, confirmation tools, and risk management.
Notes
This indicator is a visual reference and structure tool only.
It does not predict price, provide trade calls, or guarantee outcomes .
All calculations are non-repainting once the Opening Range is complete.
Designed for educational, discretionary, and semi-systematic intraday analysis.
Disclaimer:
This script is intended for market analysis and educational purposes only . Trading involves risk, and users are responsible for their own trading decisions.
Happy Trading
Smart Money Zones - Multi-Timeframe AnalysisA clean and efficient smart money concepts indicator designed for traders who follow institutional order flow and price imbalances.
Core Features:
Fair Value Gaps (FVG): Automatically detects bullish and bearish imbalances where price moved too fast, leaving gaps that often get filled
Order Blocks (OB): Identifies the last bearish candle before a bullish move (and vice versa) - institutional accumulation/distribution zones
Zone Strength Rating: Each zone is classified as Very Strong, Strong, Medium, or Weak based on size relative to ATR
Multi-Timeframe Trend Panel: Real-time dashboard showing bullish/bearish trend across 7 timeframes (1m, 5m, 15m, 30m, 1H, 4H, 1D)
Smart Features:
Zones automatically extend into the future
Mitigation tracking - zones fade when 50% filled or fully violated
Optional trend filter - only shows zones aligned with the trend
Customizable zone limits to keep your chart clean
Adjustable panel position (4 corners) and size
Color-Coded Zones:
🟢 Bullish FVG (Green) - Support zones
🔴 Bearish FVG (Red) - Resistance zones
🔵 Bullish OB (Blue) - Demand zones
🟠 Bearish OB (Orange) - Supply zones
Perfect for scalpers, day traders, and swing traders who trade reversals at key institutional levels. Combines smart money concepts with multi-timeframe confirmation for higher probability setups.






















