ICT Concepts Strategy
Created 02 Feb 2024
·
Updated 04 Feb 2026
The ICT Concepts Strategy is a Premium mechanical strategy for the NinjaTrader 8 platform. The strategy can be used to pass trader funding programs.
Prerequisites
To properly use this strategy you should have the following prerequisites available.
- NinjaTrader 8, with any license type. Click here to download
- An automated-trading.ch account with an active Premium Subscription
Important Disclaimer
We strongly recommend that you never run your algorithmic trading systems on your hard-earned real money. You should always minimize your risk and run your strategies on trader funding programs, so the maximum amount you risk losing is the monthly subscription fee you pay those programs.
The ICT strategy is based on concepts introduced by ICT, such as Market Structure events, Fair Value Gaps, Breaker Blocks and Order Blocks, inverted FVGs, and FVG Confluences. The strategy provides several entry setups based on these concepts.
Entry Setup Examples
Entry Setup: MSS+FVG
This entry setup is based on a confluence between a Market Structure Shift and a Fair Value Gap.
This entry opens a trade after an FVG occurs at the same level as an MSS (Market Structure Shift), or after an FVG occurs at the same level as a BOS (Break of Structure).
This entry can be triggered immediately after the FVG forms, or after waiting for price to pull back into the FVG and confirming the entry with a bar close in the direction of the entry — entering on pullback requires touching the FVG only, not necessarily going fully inside it, and generally produces fewer but higher-quality entries.
Entry Setup: Breaker Block (Unicorn)
This entry setup is based on a confluence between an FVG and a broken Order Block. For this entry to trigger, an Order Block needs to get broken while a Fair Value Gap forms right at the zone where price breaks the Order Block for the first time.
An Order Block that gets broken with a strong FVG in the breakout direction triggers the entry once a bar closes beyond the Order Block. Notice that this setup enters long when a bearish Order Block is broken and enters short when a bullish Order Block is broken.
Entry Setup: Order Block
The Order Block entry is based on waiting for price to create an Order Block, then pull back and fully retrace into the Order Block without breaking it, then move back in the Order Block's initial direction with an FVG occurring at the same time.
The stop loss for this entry can be set on different levels according to different Stop Loss strategies — see the Parameters section below for the full list.
Entry Setup: iFVG (Inverted Fair Value Gap)
The iFVG entry setup is based on a broken Fair Value Gap pattern. It can be viewed as the inverse entry setup of the MSS+FVG setup above.
Entry Setup: MSS+BOS Sequence
This entry setup is based on the occurrence of a sequence of market structure events. The sequence this setup looks for is MSS + BOS + BOS — a Market Structure Shift (also known as a Change of Character) followed by two consecutive Breaks of Structure.
A trade opens immediately after a bar closes beyond the second BOS of the sequence, in the direction of that sequence.
FVG Confluence
The FVG Confluence entry is based on two events. First, an FVG forms, price retraces to it and rebounds, forming a first pullback in the trade direction. Second, an inverse FVG or a broken FVG occurs in the direction of the trade. Together, these two events constitute the confluence that defines this entry setup.
Features
The ICT Concepts strategy has a set of unique features:
- A robust in-house implementation of the ICT components
- No pending orders are placed — only market orders, avoiding order rejection due to slippage or fill failures
- Full-auto strategy that can be scaled into multiple instances across multiple propfirm accounts
- Precise backtesting capabilities following NinjaTrader's official best practices, achieving precise entry/exit backtesting at the tick level and intrabar granularity
- A robust in-house order management library, resistant to connection loss, that works seamlessly on Rithmic or Tradovate accounts
Dynamic Quantity and Risk Management
As with all our strategies, this strategy implements two methods for setting the quantity of open positions:
- Fixed Quantity: uses the same quantity for every position. If the stop loss is variable between positions, win/loss amounts will vary too.
- Dynamic Risk-Adjusted Quantity: calculates each position's quantity from its stop loss, the maximum risk (in $) allowed per position, and the maximum allowed quantity — producing equal win/loss amounts across all positions regardless of stop loss width, an important criterion for long-run profitability.
Position Management
As with all our strategies, this strategy implements multiple position management methods:
- ATM Strategy: delegate position management entirely to your own ATM strategy, selected from a drop-down.
- Trailing Stop: trails the stop loss with each new swing point formed on the winning side of the position.
- SuperTrend: uses the SuperTrend indicator as a position management method.
The strategy also allows setting the stop loss based on multiple strategies and the take profit based on a ratio — see the Parameters section for details.
Account Management
The strategy implements daily stop-trading triggers based on the net winning position count, the net losing position count, or a target realized net profit or net loss.
Parameters
We try to keep the parameters to a minimum — only the most important are exposed.
| General | |
| Execute Historical Trades | Enables executing trades when the strategy runs in Historical mode — useful to test performance on past days, or simply to verify the parameters will generate trades. Should be unchecked when running Live. |
| Daily TakeProfit Target | The strategy stops for the day once this daily take-profit amount is reached after a position closes. Ignored when set to 0. |
| Daily StopLoss Limit | The strategy stops for the day once the daily loss limit is reached (positive value — e.g. 300 stops trading once realized PnL ≤ -$300). Ignored when set to 0. |
| Stop @ Winning Count | Stops trading for the day once the net winning-trade count reaches this value. Ignored when set to 0. |
| Stop @ Losing Count | Stops trading for the day once the net losing-trade count reaches this value. Ignored when set to 0. |
| Order Label | A label suffixed to every position sent to the broker, useful to differentiate your orders from other users of the same strategy. |
| Enable/Disable Trading Days |
Restricts trading on certain weekdays.
|
| Market Structure | |
| Swings Period | A swing (higher low, higher high, lower high, or lower low) can be detected after each bar close, but a following bar can still cancel it by forming a new swing of the same type. This parameter sets how many bars are enough to separate two swings of the same type — the higher the value, the fewer swings detected overall, and vice versa. A value of 3 or 4 is typical. |
| Show Price Swings | Enables/disables drawing swings on the chart. Swings are always analyzed and processed regardless of this parameter, which only affects visibility and render. |
| Swings Bullish Color / Swings Bearish Color | Sets the color used to draw bullish/bearish price swing markers. |
| Swings Opacity (1-100) | Opacity used to draw price swing markers. |
| Market Structure Confirmation Mode |
|
| FVG Candle Filter |
Filters which Fair Value Gaps are detected.
|
| Min. FVG Gap (Ticks) | Minimum distance, in ticks, required between the wicks of a Fair Value Gap for it to be valid. The higher the value, the fewer FVGs are detected, and vice versa. |
| Entry Setup | |
| Time Zone |
The time zone used for the Trade Time parameter below. Futures markets operate on US Eastern time (EST), so this lets you specify the trading interval relative to your own machine's time zone instead.
|
| Trade Time |
Specifies the time interval(s) during which the strategy is allowed to place trades. A few examples:
|
| Quantity Strategy |
|
| Max Qty | Maximum allowed quantity when Risk Adjusted is selected — useful since some prop firms enforce order-quantity limits that can invalidate an account. |
| Long/Short Entry Mode |
Useful if you already have a directional daily bias and want to restrict trading to a specific direction.
|
| Order Qty | Used only when Quantity Strategy is Fixed — the fixed quantity per trade (and per quantity increase, if the order management mechanism scales in). Typically 1 or 2. |
| SuperTrend Entry Filter | Restricts long entries to when SuperTrend is bullish and short entries to when it's bearish. |
| Higher Timeframe Filter | Enables/disables using higher-timeframe candles as an entry filter. For a long trade, the higher-timeframe (HTF) candle must have taken (mitigated) its previous candle's high or low and be in the trade's direction — e.g. on a 4-hour HTF filter, the current 4-hour candle's low must be lower than or equal to its previous candle's, and its close must be higher than its open. |
| Higher TimeFrame |
Sets the higher-timeframe period used when the Higher Timeframe Filter is enabled.
|
| Higher TimeFrame Period | Sets the period of the higher timeframe — e.g. for a 4-hour timeframe, select Minute and set the period to 240. |
| Draw Higher Timeframe Candles | Enables/disables drawing the higher-timeframe candles overlaid on the current chart. |
| Higher Timeframe Drawing Opacity (1-100) | Opacity of the HTF candles, from transparent to fully opaque. |
| Entry Setup: MSS+FVG | |
| Enable MSS+FVG Entry Setup | Enables the MSS+FVG entry setup — see the Entry Setup section above for a description and examples. |
| StopLoss Strategy |
Sets the stop loss strategy for the MSS+FVG entry setup.
|
| Entry Mode |
Sets the entry mode of the MSS+FVG entry setup.
|
| Entry Setup: Breaker Block (Unicorn) | |
| Enable Breaker Block Entry Setup | Enables the Breaker Block entry setup — see the Entry Setup section above for a description and examples. |
| StopLoss Strategy |
|
| Entry Setup: Order Block | |
| Enable Order Block Entry Setup | Enables the Order Block entry setup — see the Entry Setup section above for a description and examples. |
| StopLoss Strategy |
|
| Entry Setup: FVG Confluence | |
| Enable FVG Confluence Entry Setup | Enables/disables the FVG Confluence entry setup. |
| StopLoss Strategy |
|
| Entry Setup: iFVG | |
| Enable iFVG Entry Setup | Enables the iFVG (Inverted Fair Value Gap) entry setup — see the Entry Setup section above for a description and examples. |
| StopLoss Strategy |
|
| Min. Points To Next iFVG | When an iFVG breaks, other FVGs above or below it can act as a barrier to continuing in the breakout direction. This sets the minimum distance required between the current FVG and its closest FVG for the entry to be allowed — e.g. with a value of 5 points, an iFVG break with another FVG 3 points away in the breakout direction is skipped. |
| Entry Setup: MSS+BOS Sequence | |
| Enable MSS+BOS sequence Entry Setup | Enables the MSS+BOS sequence entry setup — see the Entry Setup section above for a description and examples. |
| StopLoss Strategy |
|
| Order Management | |
| Order Management Strategy |
|
| ATM Strategy Template Name | Only used with the ATM Strategy order management method — the exact template name of your custom ATM strategy. Must match an existing template, or no position will be opened. |
| On Opposite Signal |
|
| Enable Price Breakeven | Enables/disables the price-based breakeven mechanism. |
| Price Breakeven Strategy |
|
| Price Breakeven Trigger | Available if price-based breakeven is enabled — the trigger value (in points, or a percentage from 1-100) needed to move the stop loss to breakeven. |
| TakeProfit Strategy |
|
| Custom Win/Loss Ratio | Available with the Custom Win/Loss Ratio take-profit strategy — e.g. 2 targets a 2:1 ratio. |
| Target Risk Per Trade ($) | Maximum risk, in dollars, per position — used before opening a trade to verify the calculated stop loss respects this limit; if not, the trade is skipped. |
| Max Allowed Risk Per ($) | Only used with Risk Adjusted quantity — controls how far the real calculated risk is allowed to deviate from the Target Risk (since an exact match is rarely possible; e.g. a $250 target risk might produce a quantity of 3, generating a real risk of $257). |
| Stop Loss Points | Available when the Stop Loss strategy is set to Points. |
| Stoploss offset Points | Adds an offset, in points, to the calculated stop loss level — used when computing risk per trade. |
| Take Profit Currency | The take-profit amount in dollars, used when the Fixed Currency Value take-profit strategy is selected — otherwise, set this high enough to not interfere with other, ratio-based strategies. |
| Take Profit Points | Available when the Take Profit strategy is set to Points. |
| Trailing Stop Parameters | |
| Trailing Stop Strategy |
Available when the Classic Trail Stop order management method is selected.
|
| Trailing Stop Trigger | The trigger (in points or ratio) for the Classic Trail Stop method. |
| Trail Amount | The amount (in points or ratio) trailed once the trigger is hit. |
| Super Trend | |
| SuperTrend Mode | ATR-based, or Adaptive (based on candle close/high/low). |
| Period / Multiplier / Moving Avg. Type / Smooth | Standard SuperTrend calculation parameters — period, band multiplier, moving-average type, and smoothing period. |
| SuperTrend Close Only Winning | When SuperTrend is used as an order management method, a trade can open immediately below/above the SuperTrend level, which would otherwise close it right away — enabling this parameter avoids closing trades that were opened while already unfavorable relative to SuperTrend. |
| Command Buttons | |
| The strategy exposes manual command buttons on the Chart Trader panel — make sure it's displayed on your active chart. | |
![]() | |
| Arm/Disarm Buttons | Manually enable/disable entering long or short trades — useful if you have a directional bias. |
| Close Position Button | Immediately flattens the position on the active instrument without restarting the strategy, which keeps looking for new trades afterward. |
| Increase Qty Button | Increases the active position's quantity by the amount set in Order Qty. |
| Set Breakeven Button | Moves the open position's stop loss to breakeven, if doing so would improve it. |
Performance Reports
Past results are not a guarantee of future results. All backtesting results are for indicative purposes only.
- Commissions are included, using NinjaTrader's Lifetime license commission schema, for realistic results.
- We follow NinjaTrader's official guide for precise intrabar-granularity backtesting using additional tick-level data series, and only use market orders — never pending orders — in both real-time and backtest modes.
No performance reports have been uploaded for this strategy yet.
Download & Installation Instructions
License Requirements
At automated-trading.ch you can choose to either purchase a monthly subscription to use our premium products, or use our free products without subscribing.
In both cases, you need to create an account so you can get a License you can use for both premium and free products.
To obtain your license, simply sign up and then get your license on the billing page.
Download
You can also download this strategy — and every other automated-trading.ch strategy or indicator — anytime from your centralized Downloads page.
Installation Steps
Frequently Asked Questions
General
Billing
Skeptics
Release Notes
- Added Higher timeframe filter to all entry setups; Added New entry setup: Fvg Confluence; Added New Take profit method: Custom win-loss ratio; Added CET Timezone option; Added new MSS+FVG parameter entry mode: immediate and wait for pullback; Removed VWAP entry filter; Removed time based breakeven; Removed Grid based position management; Removed Execute on another instrument option; Removed Weekly TakeProfit Target
- Modified iFVG entry logic completely; Added new iFVG stoploss strategy: Supertrend; Added new iFVG parameter: Min. Points To Next iFVG; Fixed Supertrend MA type bug
- Added Enable/Disable Trading days; Modified SuperTrend trade management logic (stoploss set on tick above/below breakout bar instead of immediate close)
- Bug Fix: Error when using ATM Strategy
- Bug Fix: supertrend-inverse stoploss immediate-close bug
- Complete makeover of the strategy; Added Entry setups: MSS+FVG, Order Block, Breaker Block, iFVG, MSS+BOS sequence
- Fixed entry when Fixed Currency value set as Stoploss method; Added Points as stoploss method
- Added Breakeven functionality; Fixed Action buttons not displayed in Playback mode; Fixed Action buttons panel behaviour on tab change; Removed "Stop trading @ trade counts" parameter, always enable "Stop @ winning/losing count"
- Bug Fix: Max Currency Risk should not take over stoploss price
- Added Max Quantity parameter for risk adjusted method; Added "Net Losing Count" as daily stop trading strategy; Modified daily stopout trigger to immediate mode based on Unrealized PnL
- Added Inverse Fair Value Gaps Entries
- Adding Risk adjusted quantity strategy; Adding daily Stop trading strategy
- Major update: adding ATM Strategy management capabilities
- Added Chart panel manual control buttons; Less restrictive swings alignment condition; Added condition of current price breaking last MSS level for entries; Backtest results updated
- Bug Fix: Risk should not block when fixed value stoploss selected
- First Release of the strategy
