OPEN-SOURCE SCRIPT
JOAT Institutional Convergence [JOAT]

JOAT Institutional Convergence [JOAT]
Introduction
The JOAT Institutional Convergence strategy is a systematic, rules-based trading framework that unifies the logic from all five JOAT indicators into a single coherent entry and exit engine. Each indicator contributes a specific filter layer: the Volumetric Structure Engine provides directional market structure bias, the Adaptive Spectral Bands Hann ribbon provides the primary entry trigger, the Institutional Session Profiler contributes optional session timing, the Imbalance Zone Classifier contributes optional FVG proximity filtering, and the Fractal Liquidity Map contributes fractal-anchored stop placement. No layer is redundant — each addresses a different dimension of trade selection.
The core problem this solves: most TradingView strategies use a single indicator as both entry and exit signal, producing over-fitting to one methodology. This strategy uses five independent measurement systems simultaneously. An entry only fires when multiple independent conditions converge — structure, momentum, regime, and optionally session and imbalance context. The result is a strategy that takes trades for quantifiable, multi-factor reasons, not because a single line crossed.

Core Concepts
1. Entry Logic — Hann Ribbon Crossover Primary
The primary entry trigger is the Hann FIR ribbon crossover — when the fastest layer (h0) crosses above the second layer (h1), a potential long entry is flagged. This is the earliest mathematically-grounded signal that momentum is shifting:
Pine Script®
The crossover fires on the bar where momentum begins to shift — not after full ribbon alignment is confirmed. This is intentional: waiting for full alignment reduces trade count significantly and enters late. The structural trend filter (struct_trend >= 0) ensures the crossover is not taken against a confirmed downtrend.
2. Structure Filter — VSE Swing Classification
Market structure is classified using the same non-repainting swing detection as the Volumetric Structure Engine. Higher highs and higher lows (struct_trend = 1) are bullish; lower highs and lower lows (struct_trend = -1) are bearish; a mixed state (struct_trend = 0) is neutral. The strategy allows longs in bullish or neutral structure (>= 0) and shorts in bearish or neutral structure (<= 0):
Pine Script®
This prevents the ribbon crossover from triggering entries during confirmed counter-trend structure without requiring perfect alignment.
3. Regime Filter — ADX Gating
ADX gates entries in both directions. Below the minimum ADX, the market has no directional momentum — ribbon crossovers in flat, dead markets produce noise. Above the maximum ADX, the market is over-extended and new entries chase moves that are already mature:
Pine Script®
Default range: 8–60. This wide range accommodates crypto and forex markets that trend aggressively for extended periods (ADX 40–60) as well as early-stage trends (ADX 8–15).
4. Position Sizing — Percentage Risk per Trade
Position sizing is calculated dynamically based on the user's equity risk percentage and the distance to the stop-loss level:
Pine Script®
This ensures every trade risks the same percentage of equity regardless of market volatility — a wider stop reduces size, a tighter stop increases size. The default is 1% risk per trade.
5. Stop-Loss Placement — Fractal Extreme + ATR Buffer
The stop-loss is placed beyond the most recent 20-bar fractal extreme in the direction of the trade, plus one ATR buffer. This anchors the stop to genuine structural pivots rather than arbitrary fixed-pip distances:
Pine Script®
Features
Input Parameters
Structure (VSE):
Ribbon Filter (ASB):
Regime Filter:
Session Filter (ISP):
Imbalance Filter (IZC):
Risk Management:
How to Use This Strategy
Step 1: Select Your Market and Timeframe
Start on the 1-hour chart. The strategy is calibrated for 1H on crypto, forex majors, and equity indices with default settings. Shorter timeframes (15m) can increase trade count further but require tighter ADX filtering to avoid noise.
Step 2: Run the Backtest with Defaults
With all optional filters off (session and FVG disabled), the strategy trades every valid ribbon crossover that passes structure and regime. This produces the highest trade count. Review the equity curve for smoothness — you want consistent growth, not reliance on a few large winners.
Step 3: Add Filters Progressively
Enable the session filter to restrict to London and NY on forex pairs. Enable the FVG proximity filter to require imbalance context on entries. Each filter reduces trade count but should improve win rate if the underlying edge is present on your instrument.
Step 4: Interpret the Dashboard
The dashboard shows the current state of every filter layer — which ones are active and whether each condition is currently met. This is the diagnostic view: if no trades are firing, the dashboard tells you exactly which filter is blocking entries.
Originality Statement
This strategy is original as a unified multi-indicator convergence framework where each component is an independently published, standalone indicator. Its publication is justified because:
Limitations
Disclaimer
This strategy is provided for educational and informational purposes only. It does not constitute financial advice or a recommendation to buy or sell any instrument. All trading involves risk of loss. Backtested strategy results are hypothetical and do not account for the psychological challenges of live trading. Past results do not guarantee future performance. Always use proper risk management and never risk more than you can afford to lose.
-Made with passion by jackofalltrades
Introduction
The JOAT Institutional Convergence strategy is a systematic, rules-based trading framework that unifies the logic from all five JOAT indicators into a single coherent entry and exit engine. Each indicator contributes a specific filter layer: the Volumetric Structure Engine provides directional market structure bias, the Adaptive Spectral Bands Hann ribbon provides the primary entry trigger, the Institutional Session Profiler contributes optional session timing, the Imbalance Zone Classifier contributes optional FVG proximity filtering, and the Fractal Liquidity Map contributes fractal-anchored stop placement. No layer is redundant — each addresses a different dimension of trade selection.
The core problem this solves: most TradingView strategies use a single indicator as both entry and exit signal, producing over-fitting to one methodology. This strategy uses five independent measurement systems simultaneously. An entry only fires when multiple independent conditions converge — structure, momentum, regime, and optionally session and imbalance context. The result is a strategy that takes trades for quantifiable, multi-factor reasons, not because a single line crossed.
Core Concepts
1. Entry Logic — Hann Ribbon Crossover Primary
The primary entry trigger is the Hann FIR ribbon crossover — when the fastest layer (h0) crosses above the second layer (h1), a potential long entry is flagged. This is the earliest mathematically-grounded signal that momentum is shifting:
The crossover fires on the bar where momentum begins to shift — not after full ribbon alignment is confirmed. This is intentional: waiting for full alignment reduces trade count significantly and enters late. The structural trend filter (struct_trend >= 0) ensures the crossover is not taken against a confirmed downtrend.
2. Structure Filter — VSE Swing Classification
Market structure is classified using the same non-repainting swing detection as the Volumetric Structure Engine. Higher highs and higher lows (struct_trend = 1) are bullish; lower highs and lower lows (struct_trend = -1) are bearish; a mixed state (struct_trend = 0) is neutral. The strategy allows longs in bullish or neutral structure (>= 0) and shorts in bearish or neutral structure (<= 0):
This prevents the ribbon crossover from triggering entries during confirmed counter-trend structure without requiring perfect alignment.
3. Regime Filter — ADX Gating
ADX gates entries in both directions. Below the minimum ADX, the market has no directional momentum — ribbon crossovers in flat, dead markets produce noise. Above the maximum ADX, the market is over-extended and new entries chase moves that are already mature:
Default range: 8–60. This wide range accommodates crypto and forex markets that trend aggressively for extended periods (ADX 40–60) as well as early-stage trends (ADX 8–15).
4. Position Sizing — Percentage Risk per Trade
Position sizing is calculated dynamically based on the user's equity risk percentage and the distance to the stop-loss level:
This ensures every trade risks the same percentage of equity regardless of market volatility — a wider stop reduces size, a tighter stop increases size. The default is 1% risk per trade.
5. Stop-Loss Placement — Fractal Extreme + ATR Buffer
The stop-loss is placed beyond the most recent 20-bar fractal extreme in the direction of the trade, plus one ATR buffer. This anchors the stop to genuine structural pivots rather than arbitrary fixed-pip distances:
Features
- Five-Layer Entry Filter: Structure + Ribbon + Regime + Session (optional) + FVG proximity (optional)
- Hann FIR Ribbon Crossover: Primary entry trigger — earliest mathematically-valid momentum signal
- BOS-Armed Entries: Break of Structure signals additionally arm entries for up to 30 bars
- Percentage Risk Sizing: Dynamic position size calculated from equity risk % and SL distance
- Fractal-Anchored Stop Loss: Stop at 20-bar fractal extreme + ATR buffer
- Fixed R:R Take Profit: Configurable reward-to-risk ratio for TP placement
- Trailing Stop: Built-in trail_offset activates immediately from entry, protecting profits
- Session Filter (optional): Trade only during Asia, London, and/or New York sessions. Off by default for 24h markets.
- FVG Proximity Filter (optional): Require entry to be near an active imbalance zone. Off by default for maximum trade count.
- Performance Dashboard: Displays trade count, win rate, average R, last trade result, and active filter states
- Realistic Simulation: 2-tick slippage + 0.05% commission built into all backtests
Input Parameters
Structure (VSE):
- Swing Length: Lookback for swing high/low detection (default: 20)
Ribbon Filter (ASB):
- Hann Base Length: Core FIR filter period (default: 20)
- Ribbon Spacing: Gap between ribbon layers (default: 3)
Regime Filter:
- ADX Length: Period for ADX calculation (default: 14)
- Min ADX for Entry: Minimum ADX to allow entries (default: 8). Lower = more trades. Raise to filter ranging markets.
- Max ADX for Entry: Maximum ADX to allow entries (default: 60). Lower = skip over-extended moves.
Session Filter (ISP):
- Enable Session Filter: Gate entries by session time (default: off — recommended for crypto and indices)
- Trade Asia / London / NY: Toggle per-session entry permission
Imbalance Filter (IZC):
- Require Near FVG Zone: Entry must be within ATR proximity of an active imbalance (default: off)
- FVG Proximity (x ATR): Distance threshold for FVG proximity check (default: 1.5)
Risk Management:
- Risk Per Trade (%): Equity percentage risked per trade (default: 1.0)
- Reward:Risk Ratio: Take profit as a multiple of the SL distance (default: 2.0)
- SL ATR Buffer: ATR multiple added beyond fractal extreme for stop (default: 0.5)
- Trail Offset (ATR): Trail stop distance from price (default: 1.5)
- BOS Armed Bars: How many bars a BOS signal remains active for entry (default: 30)
How to Use This Strategy
Step 1: Select Your Market and Timeframe
Start on the 1-hour chart. The strategy is calibrated for 1H on crypto, forex majors, and equity indices with default settings. Shorter timeframes (15m) can increase trade count further but require tighter ADX filtering to avoid noise.
Step 2: Run the Backtest with Defaults
With all optional filters off (session and FVG disabled), the strategy trades every valid ribbon crossover that passes structure and regime. This produces the highest trade count. Review the equity curve for smoothness — you want consistent growth, not reliance on a few large winners.
Step 3: Add Filters Progressively
Enable the session filter to restrict to London and NY on forex pairs. Enable the FVG proximity filter to require imbalance context on entries. Each filter reduces trade count but should improve win rate if the underlying edge is present on your instrument.
Step 4: Interpret the Dashboard
The dashboard shows the current state of every filter layer — which ones are active and whether each condition is currently met. This is the diagnostic view: if no trades are firing, the dashboard tells you exactly which filter is blocking entries.
Originality Statement
This strategy is original as a unified multi-indicator convergence framework where each component is an independently published, standalone indicator. Its publication is justified because:
- The five-layer filter architecture uses genuinely independent measurement dimensions — market structure (price action), momentum (FIR frequency domain), trend strength (ADX), session timing, and price inefficiency (FVG) — reducing the risk of correlated signals that appear to confirm each other but measure the same thing
- Hann FIR crossover as the primary trigger provides a mathematically grounded entry timing signal with lower lag than EMA crossovers of equivalent period — a meaningful improvement to the timing of systematic entries
- Dynamic position sizing calculated from SL distance anchored to fractal extremes creates risk-normalized sizing that adapts to each trade's structural context rather than using fixed lot sizes
- The modular filter design allows each filter to be toggled independently, making the strategy adaptable to different asset classes (crypto, forex, equities) without code changes — session filter off for 24h markets, FVG filter off for maximum trade generation
Limitations
- Backtesting results depend critically on the instrument, timeframe, and parameter settings. Past performance in strategy tester does not guarantee future live trading results.
- The 2-tick slippage and 0.05% commission defaults are approximations. Actual execution costs vary by broker, instrument, and session liquidity. High-slippage instruments (illiquid crypto, micro-cap) will perform worse than the backtest indicates.
- The FVG proximity filter references FVG logic computed internally. It does not import live data from the separately published Imbalance Zone Classifier indicator — it recomputes the same logic in isolation.
- The strategy does not incorporate news filters or earnings event exclusions. Entering positions around major economic releases (FOMC, NFP) during high-volatility events will produce results inconsistent with normal market behavior.
- Trailing stop and take profit interact. If price reaches the TP level before the trail stop triggers, the TP closes the trade. Users should verify via strategy properties which exit is dominant in their use case.
Disclaimer
This strategy is provided for educational and informational purposes only. It does not constitute financial advice or a recommendation to buy or sell any instrument. All trading involves risk of loss. Backtested strategy results are hypothetical and do not account for the psychological challenges of live trading. Past results do not guarantee future performance. Always use proper risk management and never risk more than you can afford to lose.
-Made with passion by jackofalltrades
Script open-source
Nello spirito di TradingView, l'autore di questo script lo ha reso open source, in modo che i trader possano esaminarne e verificarne la funzionalità. Complimenti all'autore! Sebbene sia possibile utilizzarlo gratuitamente, ricordiamo che la ripubblicazione del codice è soggetta al nostro Regolamento.
The Institutional Grade Trading Ecosystem, Built to win trades 📈
Get Access 👇
jackofalltrades.vip 🌐
t.me/jackofalltradesvip 🃏
Get Access 👇
jackofalltrades.vip 🌐
t.me/jackofalltradesvip 🃏
Declinazione di responsabilità
Le informazioni e le pubblicazioni non sono intese come, e non costituiscono, consulenza o raccomandazioni finanziarie, di investimento, di trading o di altro tipo fornite o approvate da TradingView. Per ulteriori informazioni, consultare i Termini di utilizzo.
Script open-source
Nello spirito di TradingView, l'autore di questo script lo ha reso open source, in modo che i trader possano esaminarne e verificarne la funzionalità. Complimenti all'autore! Sebbene sia possibile utilizzarlo gratuitamente, ricordiamo che la ripubblicazione del codice è soggetta al nostro Regolamento.
The Institutional Grade Trading Ecosystem, Built to win trades 📈
Get Access 👇
jackofalltrades.vip 🌐
t.me/jackofalltradesvip 🃏
Get Access 👇
jackofalltrades.vip 🌐
t.me/jackofalltradesvip 🃏
Declinazione di responsabilità
Le informazioni e le pubblicazioni non sono intese come, e non costituiscono, consulenza o raccomandazioni finanziarie, di investimento, di trading o di altro tipo fornite o approvate da TradingView. Per ulteriori informazioni, consultare i Termini di utilizzo.