JOAT Institutional Convergence [JOAT] — Strategy by officialjackofalltrades
By officialjackofalltrades
Performance Metrics
- Author: officialjackofalltrades
- Symbol: TVC:GOLD
- Timeframe: 30 minutes
- Net P&L: +543.80 USD (+5.41%)
- Win Rate: 37.1%
- Profit Factor: 1.076
- Max Drawdown: 1,245.26 USD (12.45%)
- Total Trades: 105
Description
JOAT Institutional Convergence [JOAT]IntroductionThe 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 Concepts1. Entry Logic — Hann Ribbon Crossover PrimaryThe 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®bool cross_bull = ta.crossover(h0, h1)bool cross_bear = ta.crossunder(h0, h1)bool long_sig = (cross_bull or (bos_bull_sig and h0 > h2)) and struct_trend >= 0 and adx >= i_adx_min and adx = 0) ensures the crossover is not taken against a confirmed downtrend.2. Structure Filter — VSE Swing ClassificationMarket 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 ( ta.lowest (low, i_sw_len)This prevents the ribbon crossover from triggering entries during confirmed counter-trend structure without requiring perfect alignment.3. Regime Filter — ADX GatingADX 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®float adx_val = ta.rma(math.abs(dmi_p - dmi_m) / (dmi_p + dmi_m + 0.001) * 100, i_adx_len)bool adx_ok = adx_val >= i_adx_min and adx_val 0 ? (strategy.equity * i_risk_pct / 100.0) / sl_dist : 1.0strategy.entry("Long", strategy.long, qty = qty)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 BufferThe 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®float sl_long = ta.lowest(low, 20) - atr_14 * i_sl_atr_buffloat sl_short = ta.highest(high, 20) + atr_14 * i_sl_atr_bufFeaturesFive-Layer Entry Filter: Structure + Ribbon + Regime + Session (optional) + FVG proximity (optional)Hann FIR Ribbon Crossover: Primary entry trigger — earliest mathematically-valid momentum signalBOS-Armed Entries: Break of Structure signals additionally arm entries for up to 30 barsPercentage Risk Sizing: Dynamic position size calculated from equity risk % and SL distanceFractal-Anchored Stop Loss: Stop at 20-bar fractal extreme + ATR bufferFixed R:R Take Profit: Configurable reward-to-risk ratio for TP placementTrailing Stop: Built-in trail_offset activates immediately from entry, protecting profitsSession 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 statesRealistic Simulation: 2-tick slippage + 0.05% commission built into all backtestsInput ParametersStructure (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 permissionImbalance 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 StrategyStep 1: Select Your Market and TimeframeStart 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 DefaultsWith 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 ProgressivelyEnable 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 DashboardThe 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 StatementThis 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 thingHann 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 entriesDynamic 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 sizesThe 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 generationLimitationsBacktesting 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.DisclaimerThis 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