🔑 How It Works
The strategy uses a two-stochastic confirmation method:
Momentum Backdrop (Longs):
The long stochastic (10,60 %D) must hold above 85 for a set number of bars.
This signals strong bullish momentum.
Trigger (Longs):
The short stochastic (9,3 %D) dips down to 25 or under.
This
signals a pullback entry.
Momentum Backdrop (Shorts):
The long stochastic (10,60 %D) must hold below 15 for a set number of bars.
This signals strong bearish momentum.
Trigger (Shorts):
The short stochastic (9,3 %D) rallies up to 75 or higher.
This signals a short entry.
Once a trade is triggered:
An Initial Stop is placed (default 12 ticks
away).
A Partial Target is placed (default 30 ticks profit, for part of the position).
The remaining contracts are managed with a Trailing Stop (default: activates after 8 ticks in profit, follows by 8 ticks).
⚙️ Strategy Parameters
Here’s what you’ll see in NinjaTrader’s strategy settings panel:
🟢 Setup Options
Enable Longs → If checked, long trades are allowed.
Enable
Shorts → If checked, short trades are allowed.
Use EMA200 Filter → Master trend filter.
If checked:
Price above EMA200 → only long trades.
Price below EMA200 → only short trades.
If unchecked: Both longs and shorts may trigger (if enabled).
🔴 Risk Management
LotSize → Number of contracts entered per trade (default = 5).
TargetContracts → How many
contracts to sell at the TakeProfit target (default = 3).
Example: LotSize = 5, TargetContracts = 3 → 3 contracts exit at the profit target, 2 ride the trailing stop.
InitialStopTicks → Hard stop distance from entry (default = 12 ticks).
TrailStartTicks → Profit threshold before the trailing stop activates (default = 8 ticks).
TrailStopTicks → Distance of trailing stop once active (default = 8
ticks).
TakeProfitTicks → Profit target for the TargetContracts portion (default = 30 ticks).
📈 Long Setup Parameters
LongOverbought → Level for the long stochastic backdrop (default = 85).
LongOversold → Trigger dip level for short stochastic (default = 25).
BarsRequiredAbove → Number of bars that the long stochastic must stay above LongOverbought
before entry
is valid (default = 5).
📉 Short Setup Parameters
ShortOversold → Level for the long stochastic backdrop (default = 10).
ShortOverbought → Trigger rally level for short stochastic (default = 75).
BarsRequiredBelow → Number of bars that the long stochastic must stay below ShortOversold
before entry is valid (default = 5).
🧰 Additional
Filters
These filters can be mixed and matched for tighter entries:
RequireAboveEMA50 → Longs only taken if price > EMA50.
RequireBelowEMA50 → Shorts only taken if price < EMA50.
RequireAboveEMA20 → Longs only taken if price > EMA20.
RequireBelowEMA20 → Shorts only taken if price < EMA20.
✅ Example: You might run with EMA200 filter on, longs enabled, and RequireAboveEMA50 +
RequireAboveEMA20 → longs are only taken when price is above all three moving averages.
🖥️ Chart Visuals
Stochastics: Only the %D line is shown (clean view).
Yellow Lines: Horizontal 20/80 reference levels on both stochastic panels.
EMA Lines: EMA20, EMA50, and EMA200 are plotted directly on the price chart.
Trade Markers:
Green rectangle below bar = long entry.
Red rectangle
above bar = short entry.
Stop Line: Red horizontal line shows the current stop (initial or trailing).
🚀 Quick Start (Recommended Defaults)
LotSize = 5
TargetContracts = 3
InitialStopTicks = 12
TrailStartTicks = 15
TrailStopTicks = 15
TakeProfitTicks = 30
EnableLong = true
EnableShort =
false
UseEMA200Filter = true (recommended!)
📝 Notes for Members
This is Version 1 of the BullFlagExtreme2020 strategy.
The EMA200 master filter is highly recommended to keep trades aligned with market trend.
EMA50 and EMA20 filters are optional refinements — test different combinations to match your style.
All stops and targets are based on ticks, so settings should be adjusted if you switch between ES,
NQ, MNQ, MES, etc.
As always, test in SIM or Playback mode before running live.
⚡ DayTradingRadio Exclusive — This script is part of your membership benefits. Continue to check for updates as we refine and release new versions with added features