automated-trading.ch

ICT Concepts Strategy

NinjaTrader 8 Strategy Published 2 Feb 2024 - Updated on 04 January 2024
PREMIUM
Summary

The ICT Concepts Strategy is a Premium mechanical strategy for the NinjaTrader 8 platform. The strategy can be used to pass trader funding programs

We highly recommend joining our discord community by following this invite link discord-invitation

Index

The ICT strategy is based on ICT introduced concepts such as Market Structure events, Fair Value Gaps Breaker Blocks and Order Blocks. The strategy provides several entry setups based on these concepts

Entry Setups
Entry Setup : MSS+FVG

This entry setup is based on a confluence between a Market structure shift and a Fair Value Gap

market-structure-shift-with-fvg-confluence-entry
Click to enlarge

As you can see on the above image, this entry has opened first trade after an FVG occurs at the same level as an MSS (Market structure shift). The second trade was also a bearish trade after an FVG occured at the same level as a BOS (Break of Structure)

market-structure-shift-with-fvg-confluence-entry-pullback
Click to enlarge

This entry can be activated immediately after the FVG formation, or after waiting for price pullback into the FVG and then confirming the entry with a bar close in the direction of the entry. As you can see on the image above, the FVG+MSS pair has formed on the 1 Arrow, then the price pulled back into the FVG at the arrow marked 2. Going inside the FVG is not required as only touching the FVG would have been sufficiant. Then on the 3 arrow the bearish bar closed below the FVG marking the entry confirmation

Entry Setup : Breaker Block (Unicorn)

This entry setup is based on confluence between a FVG and a broken Order Block. For this entry to take place, we should observe an Order Block that gets broken and in the same time we should see a Fair Value Gap right at the zone when the price breaks the Order Block the first time

unicorn-entry
Click to enlarge

You can see on the image above multiple Order Blocks, the first bullish one was broken but no FVG occured. The second bearish one was not broken, it was mitigated but price retraced lower. The third bearish one generated an entry. This order block was mitigated and broken to the upper side with a strong bullish FVG. Once a bullish bar closes above the order block, a trade was opened.

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 the price to create an order-block, then pullback completely retrace into the order-block without breaking it. Then, go back into the initial direction of the order-block with an FVG that occurs at the same time

orderblock-entry
Click to enlarge

As you can see on the image above, this entry setup generated to trades. The first one is a bearish trade. After forming a bearish order-block, the price retraced up into the order-block zone but failed to break it upwards. Then, we observed 3 consecutive candles creating a bearish FVG. At the close of the third candle theentry setup entered short. The stop-loss of this entry can be set on different levels according to different StopLoss strategies, I will exaplin this later on the parameters.

On the second entry, we have a bullish trade. After a bullish order-block was retested, the price failed to break the order-block downwards, then we observed a bullish FVG at the same time the price rebounds from the order-block.

Entry Setup : iFVG

The iFVG entry setup is based on a broken Fair Value Gap pattern. It can be viewed as the inverse entry setup of the above MSS+FVG setup.

iFvg-entry
Click to enlarge

As you can see on the image above, this entry setup is triggered when we have a Market Structure Shift (MSS) in confluence with a Fair Value Gap but the price pulls back and breaks this structure

iFvg-fail-entry
Click to enlarge

Offcourse, this entry setup will not always succeed and the price can go into the losing direction of the trade. On the image above you see two examples of this happenning. On the first trade, the price triggered this entry setup to open a bearish trade, but the price went up very fast and closed the position with a loss. The same scenario but on the long side occured on the 2nd trade on the image. A short FVG occured on confluence with a short MSS, which opened a long trade but the price eventually went down again and closed the trade with a loss

Entry Setup : MSS+BOS Sequence

This entry setup setups is based on the occurance of a sequence of market structure events. The sequence this setup looks for is the following:

  • MSS + BOS + BOS
This stands for a Market Structure Shift or also known as a Change of Character followed by two consecutive Break of Structure

MSS-BOS-entry
Click to enlarge

On the above image, you can see two trades created by this entry setup. The first bearish trade was open immediately after the bearish bar closes below the second bearish BOS on the sequence marked with the number "3" on the chart. The seond bullish trade was open immediately after a bullish bar closes above the second BOS of the sequence.

Features

The ICT Concepts strategy has a set of unique features:

  • Robust In-house implementation of the ICT Components
  • No pending orders are placed: only market orders
  • Full-auto strategy that can be scaled into multiple instances
  • Precise backtesting capabilities following NinjaTrader official best practices to obtain precise entry/exit backtesting executed on tick level
  • Robust In-house Order management library. Resistant to connection loss and works seamlessly on Rithmic accounts or NinjaTader brokerage accounts

Here I further explain some of the features of the strategy in more details

Dynamic Quantity and Risk Management

As all our strategies, this strategy implements two methods to set quantity for open positions.

  • Fixed Quantity: This method will use the same quantity value for each position. If the stoploss is variable between positions (by using a dynamic stop loss value), The win/loss will be also variable between positions
  • Dynamic Risk Adjusted Quantity: This method will calculate quantity of each position based on multiple factors:
    • The stoploss of the position
    • The maximum risk (in $ currency value) allowed for a position to take
    • The maximum quantity allowed for a position to take
    Using this method will produce equal win/loss amounts accross all positions. For example, a position with a tight stoploss will have a greater quantity than a wide stoploss position, so that both positions produce the same profit or loss
Position Management

As all our strategies, this strategy implements mutiple position management methods :

  • ATM Strategy:If you wish to delegate the position management to your own ATM strategy, this is possible by selecting an ATM strategy of your choice from the drop down box
  • Dollar Cost Averaging:This method will manage the position by increasing the quantity of the position if the price goes into the losing side. By doing that the strategy aims to bring the average price of the position closed to the current price and close the position on breakeven when the price pullbacks
  • Trailing Stop:This method will trail the stop loss of the position with each new swing point that gets created on the winning side of the position
  • SuperTrend : The strategy is able to use SuperTrend as a management method

Apart from those position management methods, the strategy allows to set the stop loss based on multiple strategies and to set the take profit based on a ratio based method. Check the parameters section for a detailed explanation

Account Management

The strategy implements daily stop-trading triggers based on the Net winning position count, the Net losing position count or when a target realized Net profit is reached. or when a target net loss is reached.

Parameters

We try to keep the parameters to minimum. We only left the most important parameters to be set

General
Execute Historical Trades This parameter is very important and should be used carefully. This parameter will enable executing trades when the strategy is run on Historical mode you may check this parameter to test the performance of the strategy on days in the past or to simply test if the used parameters will generate trades. When you run the strategy on Live mode, you should uncheck this parameter
Daily TakeProfit Target The strategy will stop when the daily TakeProfit amount is reached after a position is closed. When set to 0, this parameter is ignored
Weekly TakeProfit Target The strategy will stop when the weekly TakeProfit amount is reached after a position is closed. When set to 0, this parameter is ignored. This target will be reset at each new week start
Daily StopLoss Limit The strategy will stop when the daily StopLoss amount is reached after a position is closed. The value of this parameter is positive. For example if the value is set to 300, the strategy will stop when the Realized PnL is lower or equal to -300$. When set to 0, this parameter is ignored
Stop @ Winning Count This will make the strategy stop trading if the net count of winning trades for the day is equal to the value of this parameter. This parameter is ignored if equal to 0
Stop @ Losing Count This will make the strategy stop trading if the net count of losing trades for the day is equal to the value of this parameter. This parameter is ignored if equal to 0
Execute on Different Instrument The parameter will enable executing trades on another instrument than the one on the active chart. This can be useful if you sant to run the strategy logic on Minis and execute on Micros to better manage the risk by opening the trades on Micros. Notice that if you enable this parameter all the risk calculation done by the strategy will be made on the execution instrument. And notice also that trades open on different instruments than the chart's instrument will not be drawn on the chart
Execution Instrument The parameter will let you chose from a list of Micros available on your NinjaTrader connection, the instrument on which trades will be executed. notice that historical trades and live trades will Not be displayed on the Chart in this case.
Order Label The parameter will let you set a Label that will be suffixed to all positions sent to the broker. This is useful in case you want the positions sent to the broker to have a specific value to differentiate them from positions of other people using the same strategy
Market Structure
Swings Period Swings are higher lows,higher highs, lower highs and lower lows. After each price bar close, a swing can be detected. But just after that, the next bar can cancel the swing at the previous bar by creating a new swing of the same type. Or this can happen on the second bar, or the third, etc... The swing period sets how many bars is enough to seperate two swings of the same type. The more you increase this parameter, the more you decrease the number of swings overall. The more you decrease this parameter, the more you increase the number of overall swings. I personally use the value of 3 or 4 for this parameter.
Show Price Swings This parameter will enable/disable the drawing of swings on the chart. Swings will always be analyzed and processed regardless of this parameter which only affect visibility and render.
Swings Bullish Color This sets the Color to draw bullish price swing markers
Swings Bearish Color This sets the Color to draw bearish price swing markers
Swings Opacity (1-100) This sets the opacity from 1 to 100 to draw price swing markers
Market Structure Confirmation Mode
  • Swing Counting: This method is based on counting upward/downward swing points and waiting for a price breakout on the nearest swing price to detect market structure shifts and break of structure
  • Protected High & Lows: This method is based on a more complexe method of analysing protected Highs & Lows to detect Market structure shifts and break of structure
FVG Candle Filter This parameter sets a filter for the FVG detection :
  • 3 Candles of Same Kind: Only FVG with 3 candles of the same type are detected
  • 2 Candles of Same Kind: Only FVG with at least 2 candles of the same type are detected
  • No Filter: No filtering on the candle types, this will produce more FVG than the above 2 options
Min. FVG Gap (Ticks) This parameter sets the minimum distance in ticks between the wicks of the Fair Value Gap to be valid. The more you increase this value, the fewer FVGs will be detected. Inversly, the more you decrease this value, the more it increases the number of detected FVGs
Entry Setup
Time Zone

This parameter sets the time zone to be used for setting the Trade Time parameter below. Since futures markets are open and closed based on US market time zone which is EST (US Eastern, New York), this parameter allows you to specifiy trade time interval on another timezone which is your local machine timezone

  • EST: This will use EST (Eastern Time) timezone while setting the Trade Time intervals
  • Local Time: This will use the local machine timezone
Trade Time

This parameter is very important and can be delicate in some cases. This parameter is used to specify the time intervals in which the strategy is allowed to place trades. Here are some examples for more clarifications:

  • EST timezone and trade time should be set to RTH (regular trading hours): use the value 09:30-16:15
  • Machine in Switzerland Time Zone and and timezone is set to local, trade time should be set to RTH: use the value 15:30-22:15
  • EST timezone and trade time should be set to both RTH and ETH (extended trading hours) with gaps to avoid volatile periods: 00:01-08:00,09:55-15:55,18:01-23:59
  • In this example, there are two things to notice: The time intervals should be set in increasing order even though the last interval 18:01-23:59 is the first interval that occurs for a new day session. The time interval were cut at midnight to avoid issues when stepping into a new day
  • Machine in Switzerland and Time Zone set to local and trade time set to both RTH and ETH (extended trading hours) with a gap to avoid volatile period: use the value 00:01-14:00,15:55-21:55
Quantity Strategy

This parameter sets how the quantity should be set for a Trade

  • Fixed Quantity: This will set a fixed quantity. Before the trade is open, the risk is evaluated and if the risk calculated is higher than the value of the parameter Target Risk Per Trade ($), the trade is skipped and will not be open
  • Risk Adjusted: this option will make the contract size for each trade dynamic and calculated based on the StopLoss price and the Target Risk Per Trade ($) value
Max Qty This parameter sets the maximum allowed quantity when the Risk Adjusted method is selected. This option is very useful since some propfirms has order quantity limits that can cause the account to be invalidated
Long/Short Entry Mode

This parameter is useful if you already have a directional daily bias and want to restrict trading to a specific direction long or short

  • Long: Only long trades will be open
  • Short: Only short trades will be open
  • Long & Short: The strategy will open both long and short trades
Order Qty This parameter is only used if the Quantity Strategy is set to Fixed. This parameter sets a fixed quantity of each trade. In the case of increasing orders quantity executed by the order management mechansim, this parameter is also used for each increase in quantity. Generally, We would use the values 1 or 2 for this parameter
SuperTrend Entry Filter This parameter will enable/disable using the SuperTrend indicator as an entry filter. When this is enabled, Long trades are allowed to enter only when the SuperTrend is in bullish mode. Inversly, it allows short trades to enter only when the SuperTrend indicator is in bearish mode
Entry Setup : MSS+FVG
Enable MSS+FVG Entry Setup This will enable the MSS+FVG entry setup. Click Here for a description and examples of this entry setup
StopLoss Strategy This will set the stoploss strategy for the MSS+FVG entry setup if enabled
  • FVG Zone: This will set the stoploss price to the FVG that triggered the trade. For a long trade this will be the lower edge of the FVG. And for a short trade, this will be the upper edge of the FVG
  • Last Swing Point: This will set the stoploss price to the last swing point prior to the trade
  • Dynamic: This option will make the strategy chose between the two price levels FVG Zone or Last Swing Point. The strategy will chose the level that has a risk ($) the closest to the target risk defined on the Target Risk Per Trade ($) parameter
  • Fixed Currency Value: This will set the stoploss to a currency value and not to a price level
  • Points: This will set the stoploss to a price defined in points from the entry price
Entry Setup : Breaker Block (Unicorn)
Enable Breaker Block Entry Setup This will enable the Breaker Block entry setup. Click Here for a description and examples of this entry setup
StopLoss Strategy This will set the stoploss strategy for the Breaker Block entry setup if enabled
  • FVG Zone: This will set the stoploss price to the FVG that triggered the trade. For a long trade this will be the lower edge of the FVG. And for a short trade, this will be the upper edge of the FVG
  • Last Swing Point: This will set the stoploss price to the last swing point prior to the trade
  • Dynamic: This option will make the strategy chose between the two price levels FVG Zone or Last Swing Point. The strategy will chose the level that has a risk ($) the closest to the target risk defined on the Target Risk Per Trade ($) parameter
  • Fixed Currency Value: This will set the stoploss to a currency value and not to a price level
  • Points: This will set the stoploss to a price defined in points from the entry price
Entry Setup : Order Block
Enable Order Block Entry Setup This will enable the Order Block entry setup. Click Here for a description and examples of this entry setup
StopLoss Strategy This will set the stoploss strategy for the Order Block entry setup if enabled
  • FVG Zone: This will set the stoploss price to the FVG that triggered the trade. For a long trade this will be the lower edge of the FVG. And for a short trade, this will be the upper edge of the FVG
  • Last Swing Point: This will set the stoploss price to the last swing point prior to the trade
  • Dynamic: This option will make the strategy chose between the two price levels FVG Zone or Last Swing Point. The strategy will chose the level that has a risk ($) the closest to the target risk defined on the Target Risk Per Trade ($) parameter
  • Fixed Currency Value: This will set the stoploss to a currency value and not to a price level
  • Points: This will set the stoploss to a price defined in points from the entry price
Entry Setup : iFVG
Enable iFVG Entry Setup This will enable the iFVG (Inverse Falue Value Gap) entry setup. Click Here for a description and examples of this entry setup
StopLoss Strategy This will set the stoploss strategy for the iFvg entry setup if enabled
  • FVG Zone: This will set the stoploss price to the FVG that triggered the trade. For a long trade this will be the lower edge of the FVG. And for a short trade, this will be the upper edge of the FVG
  • Last Swing Point: This will set the stoploss price to the last swing point prior to the trade
  • Dynamic: This option will make the strategy chose between the two price levels FVG Zone or Last Swing Point. The strategy will chose the level that has a risk ($) the closest to the target risk defined on the Target Risk Per Trade ($) parameter
  • Fixed Currency Value: This will set the stoploss to a currency value and not to a price level
  • Points: This will set the stoploss to a price defined in points from the entry price
Entry Setup : MSS+BOS Sequence
Enable MSS+BOS sequence Entry Setup This will enable the MSS+BOS sequence entry setup. Click Here for a description and examples of this entry setup
StopLoss Strategy This will set the stoploss strategy for the MSS+BOS entry setup if enabled
  • SuperTrend Level: This will set the stoploss price to the supertrend indicator level
  • Last Swing Point: This will set the stoploss price to the last swing point prior to the trade
  • Fixed Currency Value: This will set the stoploss to a currency value and not to a price level
  • Points: This will set the stoploss to a price defined in points from the entry price
Order Management
Order Management Strategy
  • ATM Strategy:

    This method will trigger an ATM strategy to which it will entirely delegate the management of the position

    The ATM (Automated Trading Management) strategy is a mechanism provided by NinjaTrader that can be accessed from the Chart Panel

    When this method is selected, you should specifiy the template name of the ATM strategy to use and the positions opened will be managed by your custom ATM strategy

  • Classic Trail Stop:

    This method will run a trailing stop based on a trigger and a trailing amount. See below for the Trailing Stop Parameters for parameters that control this method

  • SuperTrend: This method will use SuperTrend indicator as a signal to close trades. When price closes above below the trend of the SuperTrend
  • Dollar Cost Averaging (Grid): This method will increase the order quantity each time a swing is formed in losing side of the trade, which creates a dollar cost averaging effect on the position average price. We also call this a Grid method
  • Trail Stop on Swings: This method will trail the stop loss of the position each time a swing is formed in the winning direction of the trade
  • None: This selection means the stop loss defined by the Target Risk Per Trade ($) parameter will be used
ATM Strategy Template Name

This parameter is available when the ATM Strategy order management method is selected. This parameter specifies which ATM strategy to use.

As in the image example above, the value of this parameter should be the template name of your custom ATM strategy. In the example is should be equal to template1

off course you can chose another name, but the most important thing is that the parameter value should correspond to an existing "ATM strategy template" otherwise no position will be opened

On Opposite Signal
  • Breakeven: This parameter sets the behaviour of the strategy whenever an opposite signal occurs to breakeven
  • Close Position: This parameter sets the behaviour of the strategy whenever an opposite signal occurs to immediately closing the position
  • DoNothing: This parameter sets the behaviour of the strategy whenever an opposite signal occurs to nothing
Enable Price Breakeven This parameter will enable/disable breakeven mechanism based on price
Price Breakeven Strategy This parameter sets how the price based breakeven should be calculated
  • Points: The breakeven will be triggered based on points
  • Percentage: The breakeven will be triggered based on percentage of take profit reached
Price Breakeven Trigger This parameter is available if Price based Breakeven is enabled This parameter sets the trigger value that needs to be reached in order to set the stoploss of the current position to breakeven
Enable Time Breakeven This parameter will enable/disable breakeven mechanism based on time in minutes
Time Breakeven Trigger (Minutes) This parameter is available if Time based Breakeven is enabled This parameter sets the trigger value in minutes that needs to be reached in order to set the stoploss of the current position to breakeven
TakeProfit Strategy
  • Fixed Currency Value: This selection means the take profit price will be based on the fixed value of the parameter Take Profit Currency
  • Points: The take profit price will be set as a number of Points from the entry price
  • 1:1 Win Loss Ratio: The take profit price will be calculated based on the stop loss price with a 1:1 ratio
  • 0.5:1 Win Loss Ratio: The take profit price will be calculated based on the stop loss price with a ratio
  • 2:1 Win Loss Ratio: The take profit price will be calculated based on the stop loss price with a 2:1 ratio
  • 3:1 Win Loss Ratio: The take profit price will be calculated based on the stop loss price with a 3:1 ratio
  • 4:1 Win Loss Ratio: The take profit price will be calculated based on the stop loss price with a 4:1 ratio
  • 5:1 Win Loss Ratio: The take profit price will be calculated based on the stop loss price with a 5:1 ratio
  • 6:1 Win Loss Ratio: The take profit price will be calculated based on the stop loss price with a 6:1 ratio
Target Risk Per Trade ($) This sets the max risk in dollars for one position.
  • This parameter is used before a position is open to determine if the StopLoss level calculated by the StopLoss Strategy respects this max risk, if not, the position will not be opened
Max Allowed Risk Per ($)
  • This parameter is only used if the Quantity Strategy parameter is set to Risk Adjusted
  • When the quantity is calculated based on a StopLoss level and a target Risk in $, the calculated quantity will be the quantity that gets as close as possible to generating the target Risk for the given stoploss, but rarely the exact target Risk. So for example if you set the Target Risk to $250, the strategy will calculate the quantity of 3 for example. This value of 3 will generate a real risk of lets say 257$ (in an ideal setting the quantity would have been 2.89 to generate exactly $250 risk, but that is impossible). So this parameter will control how far you allow the real Risk to deviate from the Target Risk.
Stop Loss Points This parameter is available if the Stop Loss strategy is set to Points
Stoploss offset Points This parameter will add an offset of points to the calculated stoploss level. This offset will be used when calculating Risk per trade
Take Profit Currency This sets the take profit in dollars for the open position. If you use the Fixed Currency Value as a take profit strategy, the value of this parameter will be used. If not, make sure to set this parameter to a high value to not interfer with other ratio based strategies
Take Profit Points This parameter is available if the Take Profit strategy is set to Points
Trailing Stop Parameters
Trailing Stop Strategy When the Classic Trail Stop method is selected, this parameter let you chose on which basis the trailing will be calculated
  • Points: The trailing trigger and trailing amount will be calculated in Points from the entry price
  • Ratio: The trailing trigger and amount will be calculated in ratio from the stoploss value mirrored on the winning side of the trade
Trailing Stop Trigger When the Classic Trail Stop method is selected, this parameter sets the trigger (in Points or in Ratio)
Trail Amount When the Classic Trail Stop method is selected, this parameter sets the amount (in Points or in Ratio) to be trailed when the trigger is hit
Super Trend
SuperTrend Mode
  • ATR: This sets the SuperTrend mode to ATR based calculation
  • Adaptive: This sets the SuperTrend mode to an adaptative mode based on candle Close, High, Low
Period This sets the supertrend period
Multiplier This sets the Supertrend multiplier. The bigger this parameter the wider the superstrend bands
Moving Avg. Type This selectes the Moving Average type for Supertrend
Smooth This sets the smoothing period of the supertrend
SuperTrend Close Only Winning This parameter sets if the Supertrend used as an OrderManagement method will close a position only if it is in Profit. When the SuperTrend is used as an Order Management method, trades can be opened and immediately be below or above supertrend which will make those trades be closed immediately. This parameter will make this situation avoided
DCA (Grid) Parameters
Breakeven Profit Shift When the DCA method is selected as a position management method, this parameter will modify the definition of a breakeven and adds a bit of profit to it. This is useful to cover the cost of commissions when closing the grid in breakeven
Grid Size to Breakeven When the DCA method is selected as a position management method, this parameter will set the number of order increases required to consider closing the position in breakeven
Min Grid Gap (Point) When the DCA method is selected as a position management method, this parameter defines a minimum gap disstance in points between two orders
Bar Close Trigger When the DCA method is selected as a position management method, this parameter will make grid orders open on bar close in the direction of the trade
Command Buttons
The strategy allows to manually execute some commands in case you want to manually intervene. The commands buttons are added to the Chart Trader panel, make sure to show it on your active chart
Arm/Disarm Buttons The Arm Long/Disabled Long and Arm Short/Disabled Short buttons can manually activate or deactivate entering trades long or short. By default those two toggle buttons are enabled meaning the strategy is armed to enter both long and short trades. Toggling the button to the disable will restrain the strategy to enter a trade in the disabled direction. This can be useful if you have a directional bias or conviction about the direction of the market
Close Position Button The Close position button will immediately flatten the position on the active instrument on the active Chart. This can be useful if you want to exit a trade without having to affect the strategy or restart it. After closing the position, the strategy will continue to function normally and look for new trades to take
Increase Qty Button The increase Qty button allows to increase the quantity of the current active position. The increase value is defined by the parameter Order Qty. This can be useful if you want to manually dollar cost average the position or to double the quantity of the position after a confirmation signal on the winning side of the trade
Set Breakeven Button The button will set the stoploss of the open position to breakeven level if the current stoploss price is lower than breakeven price for long entries and higher than breakeven price for bearish entries.
Backtesting and Preferred Settings

Here I will try to periodically list backtests with different risk appetit. But before that here are some remarks regarding backtesting

  • Past results are not guarantee of future results. All backtesting results are for indicative purposes only
  • The period on which the backtest was run was not handpicked to show the best results, The backtest period is the month prior to the first release of this strategy
  • Commissions are included in the backtests to get as realistic results as possible. The commission schema used is NinjaTrade Lifetime license commissions schema
  • At automated-trading.ch we run very precise backtests due to the following 2 factors
    • We are following the NinjaTrader official guide on how to achieve precise intrabar granularity backtesting by using additional tick level DataSeries See here for more info
    • We are only using Market Orders instead of Pending Orders, in both real-time and becktest modes.

Backtest - MNQ - 1 Minute - Risk Profile - Defensive

  • Instrument MNQ
  • Timeframe 1 Minute
  • Period From 04 March 2024 to 03 January 2024
  • Run Mode Backtest
  • Total Profit 10 137 $
  • Max Drawdown (-2 090) $
  • Run Release Version 2.0.0.1

Backtest - MCL - Range 5 - Risk Profile - Defensive

  • Instrument MCL
  • Timeframe Range 5
  • Period From 04 March 2024 to 03 January 2024
  • Run Mode Backtest
  • Total Profit 4 771 $
  • Max Drawdown (-788) $
  • Run Release Version 2.0.0.1

Download & Installation Instructions

At automated-trading.ch you can chose to either purchase 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 that you can use for both premium and free products

To obtain the license simply Signup and then get your license on the billing page

This ICT Concepts strategy is a premium strategy. It can be run on Backtest, Playback and Optimization modes for free. Whereas an active subscription is required to run it on Live mode.

To download and install the strategy follow the instructions below

  • Click on the below download button to download the ICT Concepts Strategy file
  • This file was downloaded 816 times. Last download was 2 hours ago
  • Import the downloaded .zip file into NinjaTrader using the import NinjaScript menu item
  • how to import add on to NinjaTrader
  • Next, open a new chart window while making sure the Tick Replay tickbox is checked
  • image
  • If you don't see the Tick Replay check box, go to Tools->Options->Market Data and enable Show Tick Replay
  • image
  • After installing the strategy and opening a new Chart window you should add the strategy to the chart. Right-Click on the chart and Click on the the "Strategies" Context menu entry. Or you can Ctrl+S on the Chart to open the "Add New Strategy" Dialog window
    howto-add-strategy
    Click to enlarge
  • After adding the strategy to the chart, the strategy will be run on Historical data loaded in the chart.
  • When the Histocial data run is done, the strategy will switch to Real-Time mode and will add the license panel text box to the "Chart Trader Panel"
  • Make sure to display the Chart Trader panel on your active NinjaTrader Chart
  • image
  • Copy/Paste your license in the text box as shown in the image below. Your license can be found on the billing main page. Make sure to create an account or login first
  • Click on the Check License Button
  • image
  • At this step the strategy will check the License and activate/deactivate trading according to your subscription state
  • If you have an active subscription, will see the "Check License" button turned to green, and the next verification date next to your email. License check is only required once. Until the next verification date.
  • image
  • At this stage, the strategy is Ready. If your license is valid, the strategy will continue running on live mode
  • If you chose to not subscribe yet, and want to test the strategy beforehand, you can run it on Playback and Historical modes
Frequently Asked Questions
General
Do I need a VPS to run this strategy?

Using a VPS is good but not imperative. I run this strategy on a ~$6 VPS Windows instance on Hetzner. Check out our resources page to get a discount through our affiliate LINK

Can I run multiple instances of this strategy on the same account?

Yes! You can run multiple instances of this strategy on the same account but each instance should be run on a unique instrument

You can't run multiple instances on the same account on the same instrument because as you know NinjaTrader will aggregate orders in one position per instrument per account

Can I use a Trade Copier with this strategy?

Yes! you can use a copier, but a better solution would be to run multiple instances of the strategy. The purchased license allows you to run unlimited instances on multiple machines

Can I use this strategy to pass Apex or any other trader funding program?

Yes! The strategy is designed for that exact purpose. It will work seamlessly on Rithmic, NinjaTrader brokerage, Tradovate or any other provider connected to your NinjaTrader platform

Is this a hands-off, full-automatic strategy or does it need manual intervention and monitoring?

I designed this strategy to be full-automatic strategy. Yet, it can be used as a semi-auto strategy to enter trades and then let you manage those trades manually using its command buttons

Why should I consider full automated-trading instead of discretionary manual trading?

You should consider full auto-trading over manual trading for many reasons:

  • Trading 24/7: Automated trading strategies don't need to go to the bathroom not it need to take a break
  • Better execution, faster and more precise
  • Eliminate psychology and sentiments
  • Can be scaled to dozens if not hundreds of instances
  • Automated trading can generate truly "passive" income, manual trading is just another "more stressful" job

Can I ask you to modify/add a new feature to this strategy?

Yes, If you have an idea that you believe can improve the performance of this strategy, I will be more then happy to hear from you. Please use the contact page to send me a message

Will I get the source code of the strategy when I download it?

No, the source code of the strategy is protected for copyright reasons

Billing
Can I cancel my subscription at any time?

Yes, you can cancel your subscription from the account page at any time to prevent future payments. We cannot refund the unused portion of your subscription, but you will be able to use your subscription even after cancelling for the remainder of the billing cycle.

Is there a free trial period?

No, we don't offer a trial subscription plan. But you can download and test the strategy in backtest and playback modes before subscribing

What is the refund policy?

We do not offer full or partial refunds, but you may cancel your subscription at any time to stop future payments.

Skeptics
What is your background? Aren't you just another fake trading guru trying to sell me garbage?

I have been a professional software developer since 2010. I have been developing automated trading strategies since 2012, for my self for fun and profit and also been developing strategies for clients all over the world

I have always been invlolved professionaly in the business of Finance and Investing, I have worked for trading brokers and investment banking.

I'm not a marketer, and I don't hire someone else to develop my strategies.

If this strategy is profitable why are you selling it?

This strategy has been profitable for me on the long run with ups and downs, especially when it is run on multiple insturments. But the question remains pertinent, why I'm selling it?

The answer is I'm not selling it, I'm renting it to generate an additional income and diversify my different sources of income besides what this strategy can generate. Which you should also do. You should not rely on one source of income to reach financial independance, the key is diversification.

The edge of this strategy will not disappear if many people start using it. This strategy is purely mechanical and does not rely on a hidden quantitative pattern that should not be disclosed

Why the strategy uses Market orders and no Pending orders?

Lets examine pros and cons of pending orders

  • Pros:
    • Best price execution when using limit orders
    • Protection against losses in case of connectivity issues
  • Cons:
    • Can get rejected on high price volatility
    • Delay between request to place the order and when it gets placed. Price volatility can cause the order to be rejected and the price to run away
    • Requires management: any opposite orders need to be canceled
    • Visible to the broker, placed orders can be manipulated

After years of developing strategies I reached the conclusion that market orders are better suited for the context of automated trading.

The main drawback of using pending orders is the fact that they can be rejected which is very hard to manage especially in a volatile environment

In all our strategies, we use market orders even for take profit and stop loss. Lets examine the pros and cons of market orders

  • Pros:
    • Guarantee of execution reagrdless of volatility conditions
    • Invisible to the broker before they get submited
    • No risk of being rejected which means better protection for stop loss
    • Faster execution than pending orders
  • Cons:
    • In the case of the connection being lost with the broker, the strategy will be unable to send market orders

Remark: MIT (market if touched) orders in NinjaTrader are a solid alternative to pending orders if you really want to use pending orders

It is known that backtesting on NinjaTrader is not accurate. How accurate are your backtests?

We are following the NinjaTrader official guide on how to achieve precise intrabar granularity backtesting by using additional tick level DataSeries See here for more info

Don't take my word for it. Test it yourself, at the end of each trading day, run a backtest of the strategy on that day and compare it with the live trades the strategy made during the day.

Release Notes
Release 2.0.0.1 - 04 January 2025

  • Bug Fix: When supertrend is inverse of the open trade and supertrend is selected as a stoploss strategy, the position is opened and closed immediately because the stoploss price is set above/below the open price of the trade. This is fixed

Release 2.0.0.0 - 21 December 2024

  • Complete makeover of the strategy
  • Added new Entry setup : MSS+FVG
  • Added new Entry setup : Order Block
  • Added new Entry setup : Breaker Block
  • Added new Entry setup : iFVG
  • Added new Entry setup : MSS+BOS sequence

Release 1.6.0.1 - 05 July 2024

  • Fixed entry when Fixed Currency value is set as Stoploss method
  • Added Points as stoploss method

Release 1.6.0.0 - 19 May 2024

  • Added Breakeven functionality
  • Fixed Action buttons not displayed when in Playback mode
  • Fixed Action buttons panel behaviour when changing chart tabs
  • Removed "Stop trading @ trade counts" parameter and always enable "Stop @ winning/losing count" parameters

Release 1.5.0.1 - 05 May 2024

  • Bug Fix: Max Currency Risk should not take over the stoploss price

Release 1.5.0.0 - 28 Apr 2024

  • Added Max Quantity parameter for risk adjusted method
  • Added "Net Losing Count" as a daily stop trading strategy
  • Modified daily stopout trigger to immediate mode based on the Unrealized PnL. Before this it was after the closing of the open position

Release 1.4.0.0 - 21 Apr 2024

  • Added Inverse Fair Value Gaps Entries

Release 1.3.0.0 - 14 Apr 2024

  • Adding Risk adjusted quantity strategy
  • Adding daily Stop trading strategy

Release 1.2.0.0 - 13 Mar 2024

  • Major update: adding ATM Strategy management capabilities

Release 1.1.0.0 - 18 Feb 2024

  • Added Chart panel manual control buttons
  • Less restrictive swings alignement condition : The condition of perfectly increasing or decreasing swings is replaced by the condition of increasing or decreasing edge swings. Before this release, the Trend Swing Count parameter defined how many swings need to be perfectly increasing or decreasing for a Market Structure Shift to be detected. After this release, the algorithm only analyses the first and the last swings in the swings sequence for alignement.
  • Added the condition of the current price breaking the last Market Structure Shift level for entries
  • Backtest results are updated to reflect the changes in this new release

Release 1.0.0.1 - 11 Feb 2024

  • Bug Fix : Risk should not be blocking when fixed value stoploss is selected

Release 1.0.0.0 - 02 Feb 2024

  • First Release of the strategy

User Comments & Feedback

You can find feedback of our users and ask questions about this strategy by joining our discord community by following this invite link or clicking on the Discord logo image. Joining is completely free discord-invitation