OPEN-SOURCE SCRIPT

Bastion Execution Protocol [JOAT]

1 451
Bastion Execution Protocol [JOAT]

Introduction

The Bastion Execution Protocol is an open-source automated trading strategy built in Pine Script v6. It combines regime detection, market structure analysis, dual momentum confirmation (RSI + Stochastic Momentum Index), order flow validation (CVD), candle pattern recognition, session filtering, and dynamic risk management into a single institutional-grade execution framework. The strategy is designed to take high-confluence directional trades only when multiple independent factors align — regime, structure, momentum, volume flow, and session — while managing risk through ATR-based stop losses, configurable reward-to-risk ratios, trailing stops, regime-adaptive position sizing, daily trade limits, and end-of-day forced closes.

This is not a "set and forget" black box. It is a transparent, fully configurable framework where every entry condition, risk parameter, and filter can be adjusted. The strategy is published open-source so traders can study the logic, understand why each trade is taken, and adapt the parameters to their instruments and timeframes.

快照

Why This Strategy Exists

Most published strategies on TradingView fall into two categories: overly simple (single indicator crossover) or overly complex (dozens of conditions that overfit to historical data). This strategy occupies the middle ground — it requires meaningful confluence from independent analytical dimensions without over-optimizing to specific historical patterns:

  • Multi-Factor Entry Gate: Every trade requires agreement from regime detection, market structure, momentum oscillators, and optionally CVD order flow and candle patterns. No single factor can trigger a trade alone.
  • Regime-Aware Execution: The strategy only trades in trending regimes by default. It avoids squeeze conditions and can be configured to require specific regime states. Position sizing automatically reduces in volatile or uncertain regimes.
  • Session Intelligence: Trades are filtered by session (London, New York, Kill Zones) and day of week. The strategy avoids low-quality periods and forces position closure at end of day.
  • Dynamic Risk Management: ATR-based stop losses adapt to current volatility. Trailing stops activate after a configurable profit threshold. Position sizing is calculated from account equity and risk percentage, then adjusted by regime conditions.
  • Performance Tracking: Real-time HUD displays win rate, profit factor, max drawdown, daily trade count, and current position status.


Strategy Architecture — 9 Modules

The strategy is organized into 9 sequential modules, each responsible for a specific aspect of the trading process:

Module 1: Regime Detection

The regime engine classifies the market into four states using SMA alignment and VWAP slope:

  • Trend Up: SMA 20 > 50 > 200 (bull alignment) AND positive VWAP slope — clear upward momentum
  • Trend Down: SMA 20 < 50 < 200 (bear alignment) AND negative VWAP slope — clear downward momentum
  • Squeeze: Bollinger Band width in the bottom 10th percentile — volatility compression
  • Range: No SMA alignment and flat VWAP slope — sideways conditions


The VWAP slope is normalized by ATR to make it comparable across instruments with different price scales. The regime state directly controls whether trading is allowed — by default, the strategy requires a trending regime.

Module 2: Market Structure

Swing-based structure tracking identifies the directional bias:

  • Pivot highs and lows are detected using configurable lookback
  • When price closes above the last swing high while structure was bearish or neutral, structure flips bullish
  • When price closes below the last swing low while structure was bullish or neutral, structure flips bearish
  • Structure must agree with the regime for entries — regime bullish + structure bullish = long allowed


Displacement candle detection identifies aggressive institutional order flow — candles with body >= 70% of range and body >= 1.8x the 20-bar average body. These serve as entry triggers when all other conditions are met.

Module 3: Momentum Confirmation

Dual momentum confirmation requires both RSI and SMI to agree:

  • RSI: Must be above the bull threshold (default 55) for longs, below the bear threshold (default 45) for shorts
  • Stochastic Momentum Index: Must be positive for longs, negative for shorts. The SMI measures where price sits relative to the midpoint of its recent range, double-smoothed for noise reduction.
  • Both must agree — RSI bullish AND SMI bullish = momentum confirmed for longs


Module 3B: CVD Order Flow Confirmation

When enabled, Cumulative Volume Delta must support the trade direction:

  • Buy volume is estimated from bullish candles (close > open = full volume, otherwise proportional)
  • Sell volume = total volume minus buy volume
  • CVD = cumulative sum of (buy volume - sell volume)
  • CVD must be above its moving average for longs, below for shorts
  • This ensures that actual volume flow supports the intended trade direction


Module 3C: Candle Pattern Detection

When enabled, the strategy detects institutional candle patterns as entry triggers:

  • Bullish Engulfing: Current bullish candle fully engulfs the prior bearish candle's body, with volume above average
  • Bearish Engulfing: Current bearish candle fully engulfs the prior bullish candle's body, with volume above average
  • Bullish Pin Bar: Lower wick > 2x body, upper wick < 0.5x body — rejection of lower prices
  • Bearish Pin Bar: Upper wick > 2x body, lower wick < 0.5x body — rejection of higher prices


Patterns serve as alternative entry triggers alongside displacement candles. Either a displacement candle, a pattern, or price above SMA20 + VWAP can trigger entry when all other conditions are met.

Module 4: Session Filter

The session filter controls when trading is allowed:

  • Four session windows: NY Kill Zone (7-10am), London Kill Zone (2-5am), NY Session (9:30am-4pm), London Session (3am-9:30am)
  • Each session can be individually enabled/disabled
  • Day of week filter allows disabling specific days (e.g., avoid Mondays or Fridays)
  • Configurable timezone (default: America/New_York)
  • End-of-day forced close at configurable time (default: 3:45pm)


Module 5: Daily Trade Counter

A daily trade counter prevents overtrading:

  • Resets at the start of each new day
  • Configurable maximum trades per day (default: 3)
  • Combined with squeeze avoidance and regime filtering for comprehensive trade gating


Module 6: Entry Signal Generation

Entry signals require ALL of the following to be true simultaneously:

Pine Script®
// Long entry requires full confluence: // 1. Regime = Trend Up // 2. Structure trend = Bullish (swing break confirmed) // 3. RSI > bull threshold AND SMI > 0 // 4. CVD above its MA (if enabled) // 5. Bar is confirmed (barstate.isconfirmed) // 6. Trade is allowed (daily limit, session, no squeeze) // 7. Trigger: displacement candle OR pattern OR price > SMA20 + VWAP


This multi-gate approach ensures that trades are only taken when regime, structure, momentum, volume flow, session, and a specific trigger all agree. The probability of a random signal passing all gates is very low, which is by design.

Module 7: Risk Calculations

Risk is calculated dynamically for each trade:

  • Stop Loss: ATR * configurable multiplier (default 1.5x) below entry for longs, above for shorts
  • Take Profit: SL distance * reward-to-risk ratio (default 2.0x)
  • Position Size: (Account Equity * Risk Percentage * Regime Multiplier) / SL Distance
  • Regime-Adaptive Sizing: When enabled, position size is reduced to 50% during squeeze conditions and 70% during non-trending conditions. Full size is used only in trending regimes.


Module 8: Trade Execution

Entries are executed using strategy.entry() with calculated position size. The strategy tracks active trade parameters (entry price, SL, TP) for trailing stop management.

Module 9: Exit Management

Three exit mechanisms operate simultaneously:

  • Fixed SL/TP: strategy.exit() with the calculated stop loss and take profit levels
  • Trailing Stop: When enabled, activates after price moves a configurable multiple of R in profit (default 1.0R). The trail distance is ATR * configurable multiplier (default 1.0x). The trailing stop only moves in the favorable direction and replaces the fixed SL when it is tighter.
  • End-of-Day Close: All positions are closed at the configured time to avoid overnight risk


Performance Tracking

The strategy tracks and displays real-time performance metrics:

  • Win Rate: Wins / (Wins + Losses) as a percentage
  • Profit Factor: Gross Profit / Gross Loss — values above 1.5 indicate a healthy edge
  • Max Drawdown: Peak-to-trough equity decline as a percentage
  • Net P&L: Total net profit/loss
  • Daily Trade Count: Current day's trades vs maximum allowed


Strategy Settings and Backtesting Notes

The strategy is configured with realistic default parameters:

  • Initial Capital: $100,000
  • Default Position Size: 2% of equity
  • Risk Per Trade: 1.5% (configurable)
  • Commission: Not included by default — users should add commission appropriate to their broker in the strategy settings
  • Slippage: Not included by default — users should add slippage appropriate to their instrument
  • calc_on_every_tick: false — the strategy only evaluates on confirmed bar closes to prevent repainting
  • calc_on_order_fills: true — allows trailing stop updates on fill events


Important: Before evaluating backtest results, users should:
  • Add realistic commission for their broker (e.g., $5 per trade for stocks, 0.1% for crypto)
  • Add realistic slippage (e.g., 1-2 ticks for liquid instruments)
  • Verify that the backtest period includes different market conditions (trending, ranging, volatile)
  • Check that the number of trades is sufficient for statistical significance (100+ trades recommended)
  • Understand that past performance does not guarantee future results


Input Parameters

Risk Management:
  • Risk Per Trade %: Percentage of equity risked per trade (default: 1.5%)
  • Reward:Risk Ratio: TP distance as multiple of SL distance (default: 2.0)
  • SL ATR Multiplier: Stop loss distance as ATR multiple (default: 1.5)
  • ATR Length: Period for ATR calculation (default: 14)
  • Use Trailing Stop: Enable/disable trailing (default: true)
  • Trail After X R Profit: Profit threshold to activate trail (default: 1.0R)
  • Trail ATR Multiplier: Trail distance as ATR multiple (default: 1.0)
  • Max Trades Per Day: Daily trade limit (default: 3)
  • Regime-Adaptive Sizing: Reduce size in non-trending conditions (default: true)


Regime Filter:
  • VWAP Slope Lookback: Period for slope calculation (default: 20)
  • Slope Threshold: Normalized threshold for trend detection (default: 0.12)
  • Bollinger Length/Multiplier: BB parameters for squeeze detection (default: 20/2.0)
  • Avoid Squeeze Entries: Skip entries during squeeze (default: true)
  • Require Trend Regime: Only trade in trending conditions (default: true)


Structure:
  • Swing Lookback: Pivot detection length (default: 5)
  • Displacement Min Body Ratio: Minimum body/range for displacement (default: 0.7)
  • Displacement Body Multiplier: Minimum body vs average for displacement (default: 1.8)


Momentum:
  • RSI Length/Thresholds: RSI parameters (default: 14, bull 55, bear 45)
  • SMI Lookback/Smoothing: SMI parameters (default: 13/25/2)


Session Filter:
  • Enable Session Filter: Toggle session-based trade gating
  • Individual session toggles: NY KZ, London KZ, NY, London
  • Day of week toggles: Monday through Friday
  • Force Close End of Day: Toggle EOD position closure
  • Close Hour/Minute: EOD close time (default: 15:45)


Order Flow:
  • CVD Confirmation: Require delta direction to match entry (default: true)
  • CVD Lookback: Period for CVD moving average (default: 10)


Candle Patterns:
  • Use Pattern Confirmation: Enable pattern detection as entry trigger (default: true)
  • Pattern Volume Multiplier: Minimum volume for pattern confirmation (default: 1.3x)


How to Use This Strategy

Step 1: Configure for Your Instrument
Adjust the ATR multiplier and displacement thresholds for your instrument's volatility. Add realistic commission and slippage in TradingView's strategy settings.

Step 2: Set Your Risk Parameters
Choose a risk percentage that matches your risk tolerance. The default 1.5% with 2:1 R:R is conservative. Adjust the trailing stop parameters based on your preference for locking in profits vs giving trades room.

Step 3: Configure Sessions
Enable the sessions relevant to your instrument. For US equities, NY KZ and NY Session are most relevant. For forex, both London and NY Kill Zones are important. Disable days you prefer not to trade.

Step 4: Run the Backtest
Apply the strategy to your chart and review the backtest results. Check win rate, profit factor, max drawdown, and number of trades. Ensure results are realistic and not the product of overfitting.

Step 5: Forward Test
Before trading live, run the strategy in paper trading mode for at least 2-4 weeks to verify that live performance matches backtest expectations.

Best Practices

  • Always add commission and slippage before evaluating backtest results
  • The strategy works best on liquid instruments with reliable volume data
  • Higher timeframes (15m+) produce fewer but higher-quality trades
  • The multi-gate entry system means trades are infrequent by design — this is a feature, not a bug
  • Regime-adaptive sizing is recommended — it automatically reduces exposure in uncertain conditions
  • The daily trade limit prevents revenge trading and overexposure
  • End-of-day forced close eliminates overnight gap risk for intraday strategies
  • Monitor the HUD during live trading for real-time regime, momentum, and session context
  • If win rate drops below 40% or profit factor drops below 1.0, re-evaluate parameters for current market conditions


Limitations

  • The strategy uses lagging indicators (SMAs, RSI, SMI) for entry conditions. Entries occur after the trend has started, not at the exact turn.
  • Regime detection can lag regime changes. The strategy may miss the first portion of a new trend or take a trade just as a trend is ending.
  • CVD is estimated from candle direction, not true order flow data. This is an approximation.
  • Backtest results are hypothetical and do not account for real-world execution issues (partial fills, requotes, connectivity).
  • The strategy is designed for intraday/swing trading. It is not optimized for scalping or long-term position trading.
  • Session filtering is based on EST timezone. Instruments traded primarily in other timezones may need different session definitions.
  • The multi-gate entry system can be too restrictive in some market conditions, producing very few trades. This is intentional — the strategy prioritizes quality over quantity.
  • Past performance in backtesting does not guarantee future results. Market conditions change, and strategies that worked historically may not work in the future.


Technical Implementation

Built with Pine Script v6 using:
  • calc_on_every_tick=false for non-repainting execution
  • barstate.isconfirmed gating on all signal generation
  • 9-module architecture with clear separation of concerns
  • ATR-based dynamic stop loss and take profit calculation
  • Trailing stop with configurable activation threshold and trail distance
  • Regime-adaptive position sizing with squeeze and non-trending penalties
  • Session detection with timezone support and day-of-week filtering
  • Daily trade counter with automatic reset
  • End-of-day forced close mechanism
  • Real-time performance tracking (win rate, profit factor, max drawdown)
  • Dual momentum confirmation (RSI + SMI)
  • CVD order flow validation
  • Candle pattern detection (engulfing, pin bar) with volume confirmation
  • 6 alert conditions covering entries, regime changes, EOD close, patterns, and drawdown


Originality Statement

This strategy is original in its multi-dimensional confluence framework. While individual components (RSI, SMI, SMA alignment, session filtering) are established concepts, this strategy is justified because:

  • The 9-module architecture creates a clear, auditable decision pipeline where each module's contribution to the final trade decision is transparent
  • The multi-gate entry system (regime + structure + dual momentum + CVD + session + trigger) requires an unusually high level of confluence, reducing false signals
  • Regime-adaptive position sizing automatically adjusts exposure based on market conditions, a feature rarely seen in published strategies
  • The combination of trailing stops with regime-aware sizing creates a dynamic risk framework that adapts to changing conditions
  • Session filtering with Kill Zone preference and day-of-week controls provides institutional-grade time management
  • CVD order flow confirmation adds a volume-based validation layer that pure price-based strategies lack
  • The real-time HUD with performance tracking provides transparency into strategy behavior that most published strategies do not offer
  • The Volcanic theme provides a cohesive visual identity where every color choice carries meaning (lava = entry, amber = warning, teal = VWAP, crimson = bearish)


Disclaimer

This strategy is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any financial instrument. Backtested results are hypothetical and do not represent actual trading. Past performance does not guarantee future results. The strategy involves risk of loss, including the potential loss of the entire investment. Commission, slippage, and other real-world execution costs are not included in the default configuration and must be added by the user for realistic evaluation. The author makes no claims about the profitability of this strategy and is not responsible for any losses incurred from its use. Always use proper risk management, trade with capital you can afford to lose, and consider consulting a qualified financial advisor before trading.

-Made with passion by officialjackofalltrades

免責聲明

這些資訊和出版物並非旨在提供,也不構成TradingView提供或認可的任何形式的財務、投資、交易或其他類型的建議或推薦。請閱讀使用條款以了解更多資訊。