Ultimate SMC - User Guide
Ultimate SMC - User Guide
Ultimate SMC is a highly configurable framework that contains the basic elements to create and automate SMC strategies. It is recommended for traders who would like to configure their SMC strategies, the vast number of parameters will allow you to fit any strategy inside. A knowledge in SMC strategies like ICT, MentFx, Casper SMC, TTrades, and other is a plus so you can benefit from the power of this expert advisor.
The inputs Explained
Magic number: a unique identifier that distinguishes between different orders or trades placed by an Expert Advisor (EA). Make sure each EA you are using has a different magic number.
Trade comment: It is used as a trade comment inside the trade orders. In addition, it will help you identify the logs and messages generated by the EA in the Experts and Journal Tab.
Market Open on Weekends: If set to true, the EA will continue trading during weekends. Useful for markets that operate on weekends or for continuous testing in simulation.
Show Logs: This enables detailed logging of the EA's operations, which is helpful for debugging or analyzing the trading strategy's performance.
Draw Trading Setup: If enabled, graphical representations of the trading setups are displayed on the chart, allowing visual confirmation of trade signals.
Activate EA Panel: Enables a user interface panel on the trading chart for easy access to the filters' status, current open trades, and the ability to close trades manually whenever needed.
When the panel is activated, the first things you can notice are the Magic Number and the Trade comment. This will help you identify which instance of the expert advisor is running on this chart, especially when you are trading multiple strategies on the same trading pair.
The panel will also show information about the current structure statuses and the corresponding block count. It also helps you identify whether you are in an impacting news window. Pay attention, the filters will update on first candle close
From the Panel, you can see the current number of open trades and orders and the closed and floating profit of the current EA instance.
Finally, you can act on the trades by closing trades, orders, winners, and losers.
These settings define the time window during which the EA is allowed to open new trades, formatted in 24-hour time. The trading window will appear on the charts you are trading.
Trading Start Hour (0-23): Trading Starting hour
Trading Start Minute (0-59): Trading Starting minute
Trading End Hour (0-23): Trading Ending hour
Trading End Minute (0-59): Trading Ending minute
Color: This parameter will help you specify the color that would fit your charts and style
The start and end times are defined according to your broker's time. The broker time can be found in the market watch (Ctrl+M).
As example, my broker time is GMT+3. I want to trade the New Work Opening. New York opening is 8h30 NY time. NY is GMT-4. So I have 7 hours difference between NY and my Broker. This means that in my configuration I need to start at 15h30 and end at 16h30.
Don't hesitate to use https://www.worldtimebuddy.com/ for ease navigation and conversion between different time zones.
For a better initialization of the EA, it is better to attach it to the chart before or after the defined trading window. This will help the EA initialize correctly all data needed to create the trades.
So if you are trading from 9 AM to 3 PM, better to load the EA the first time before 9 AM or after 3 PM.
In this section, you will define your entry criteria by choosing your entry type and defining its parameters when it is applicable.
Entry Type: You can choose one of the following entries to trade
Block Breakout (Stop) : Stop order on the breakout candle from a block. I recommend you check this video to understand a block.
Breaker (Limit) : Limit order on the previous Ultimate High/Low
Breaker in FVG (Limit) : Limit order on the previous Ultimate High/Low if it is inside a FVG
OTE (Limit) : Optimal Trade Entry, you need to define "OTE Level". Check the next section.
OTE in FVG (Limit) : Optimal Trade Entry if it is inside a FVG, you need to define "OTE Level". Check the next section.
Extremity of FVG (Limit): Limit order on the extremity of a FVG
Middle of FVG (Limit) : Limit order on the middle of a FVG
Extremity of iFVG (Limit): Limit order on the extremity of an inverted FVG
Middle of iFVG (Limit) : Limit order on the middle of an inverted FVG
In this section, and if you choose to trade FVG or iFVG, then you can refine the inputs
FVG to consider: You can choose to trade the oldest or the newest FVG inside a swing, or to trade all!
Minimum size of FVG in points: This option helps define the minimum size of an FVG to consider. For example, not to consider a FVG with less than 10 points. 0 is the default value, and it means to consider all FVG.
Maximum size of FVG in points: This option helps define the maximum size of an FVG to consider. If kept to zero, no filter will be applied to the max size.
In this section, and if you choose to trade OTE you can define the level. The OTE is calculated from the last trading block as soon as it is a valid block. A valid block must have an ultimate high and ultimate low, and must have a valid retracement. More information about the blocks can be found in this video.
OTE Level: The value depends on your strategy, but for example, ICT uses 71%, and other strategies trade 50% or 62.8%.
Sell premium and buy discounts, this option allows you to increase your profitability if used the right way. In addition you can can specify your custom premium and discount level, the default value is 50%.
Sell in Premium, Buy in Discount: Activate the Premium/Discount rule
Custom Premium/Discount Level: Define the premium and discount levels
Market Structure is based on the "Structure Blocks" Indicator, and it allows a consistent way to read the market based on price action. The market structure will be based on blocks, and therefore you can configure the following:
Start after Block #: Decide after how many breakouts you can start trading, using 0 to disable the entire structure. So example, setting this parameter to 3, it means that the EA will wait for three consecutive bullish breakouts to start putting buy trades.
Stop after Block #: This parameter helps you to tell the EA to stop trading after a certain number of breakouts. This is ideal in order not to trade over extended prices. For example, you don't want to buy at the top of a market with five consecutive bullish breakouts. Putting this parameter to 0 disables the overextension feature.
Activate Double Block: Double block is a very specific case, that most perform when price is reversing. If the double block is activated, the EA will only trade in the second block on a newly established trend. Another specific rule for this entry is that the ultimate low and high are recalculated to combine the low and high of blocks 1 and 2 which eliminates a lot of noise that usually happens during trend reversal.
An example is in the below 2 screenshots when we can see that in some cases activating double block will help eliminate all the noises and keep focus on the bigger picture
Double Block Active
Double Block Inactive
One of the options that you can enable in this expert advisor is the liquidity sweep option. This mechanism will allow to configure sweep based on multiple criteria. The EA, when trading windows start, will check the high and low of the range to sweep and track whether those levels are taken or not.
In some cases, like the previous week or day range, the high and low could no longer be valid as they were taken before the trading range started.
Liquidity to sweep Option: You have multiple options to choose from:
No Liquidity: Sweep is not active and won't be considered
Range Liquidity: In this case, you need to define the start and end of the range, the EA will check the high and low of the defined Range
Previous Hour Liquidity: The EA will locate the high and low of the previous hour. For example, you are trading between 16h10 and 17h10. When the trading window starts, the EA will define the high and low from 15h00 to 16h00 and use them as sweep liquidity levels.
Previous Day Liquidity: The EA will look to the previous day high and low
Previous Week Liquidity: The EA will look to the previous weekly candle high and low.
Previous Block Liquidity: The EA will check the structure block high and low. For this option, make sure you define which timeframe to use.
Level to invalidate sweep: This configuration invalidates a liquidity sweep. Usually, in forex, if a sweep is more than 200 points, the sweep is no longer valid, and the move is more of a continuation. Setting this to 0 means no invalidation is configured, and the EA will continue trying to trade reversals after liquidity is sweep
Consider Sweep If Done Before Trading Zone: (v1.12) This input set to true can help you track liquidity sweep if your trading window and end of liquidity sweep range are not at the same time. So, for example, you want to track Asian Range liquidity but only trade the NY Open session. Your liquidity could have been taken during the London session, and you want to use this factor to build your trading strategy based on this element. If sweep of buy and sell liquidity is done prior the trading window no trades will be took as we consider ourselves in a seek and destroy day.
Liquidity Levels' Color: The color used to plot the liquidity levels
Pay attention to the fact that the EA will only verify the liquidity sweep during the trading window. If a level is swept before the trading window starts, it will not be considered.
E1- Range Raid Settings if used
Raid Range Start Hours (0-23): liquidity range start hour
Raid Range Start Minutes (0-59): liquidity range start minute
Raid Range End Hours (0-23): Liquidity range end hour
Raid Range End Minutes (0-59): Liquidity range end minute
E2- Previous Block Liquidity if used
Block Liquidity Timeframe: Define the higher time frame for the block liquidity level
Similar to the Market Structure, the filters are based on the "Structure Blocks" Indicator. The EA provides 3 filters that can be used. This is ideal when you have a trading plan including multiple time frame breakdown analysis.
F1- High Timeframe Filter Relation?
When using High time frame Premium and Discount, or Trend confirmation, you can choose to respect all the filters to have a valid trade setup, or one of them as per the below configuration
Respect Premium/Discount in: This is for approving a trade if it respects premium/discount in one of the active filters or all of them. For example, if you want to buy all three filters at a discounted price, you can use "All Filters". For another example, let us say you want to sweep Asian range and trade in London, but it has to be in a PD area of 70% in a 1 hour block, 2 hours, or 4 hours. It doesn't have to be any specific one, but just at least one of the 3, in this case you can use "One Of The Filters"
Respect Trend in: This is for approving trade that would respect the trend conditions. Choosing "All the active filters" means the current market conditions should respect all three filters. For example, if you want to trade with the trend on 1H, 4H, and 1D unless all three are bullish, no bullish trade will be taken. However selecting "One of The active Filters" means, as soon as one of the filters shifts bullish a buy trade can set.
Confirm HT Structure on Sweep: This parameter will allow you to check if your setup is in sync with the higher time frame structure filter at the moment of the sweep or at the moment when the trade is to be set. As example, in some strategies you first check higher time frame and build an idea if you will trade a buy or sell, usually this us done before the sweep happens, so in this case you need to choose "True", however other strategies requires at the time the trade is done, maybe 30 minutes of the sweep to have the higher timeframe aligned, if this is your case you need to choose false.
F2/3/4 - Activate High Timeframe Filter?
Each filter has the following parameters to use high-level time frame structure as a filter:
Structure Filter: It has three options
Don't use filter: The filter is ignored, and trades in any direction can be taken
Trade with the trend: Trades will be taken only in the direction of the higher timeframe market structure. This is an excellent option for swing trades or when trading after NY open
Trade Counter trend: Trades taken will counter the trend of the higher timeframe market structure. This is an option to choose if, for example, you are trading pre-London or London session.
Start after Block #: Decide after how many breakouts you can start trading, using 0 to disable the entire structure. So example, setting this parameter to 3, it means that the EA will wait for three consecutive bullish breakouts to start putting buy trades.
Stop after Block #: This parameter helps you to tell the EA to stop trading after a certain number of breakouts. This is ideal in order not to trade over extended prices. For example, you don't want to buy at the top of a market with five consecutive bullish breakouts. Putting this parameter to 0 disables the overextension feature.
Use Double Block: Double block is a very specific case, that most perform when price is reversing. If the double block is activated, the EA will only trade in the second block on a newly established trend. Another specific rule for this entry is that the ultimate low and high are recalculated to combine the low and high of blocks 1 and 2 which eliminates a lot of noise that usually occurs during trend reversal.
And each filter can be used to trade only in premium or discount zones using the following inputs
Sell in Premium, Buy in Discount: Activate the Premium/Discount rule taking into consideration the block formed by the filter
Custom Premium/Discount Zone Level: Define the premium and discount levels
Pay attention to high timeframe trend filters work separately from high-level timeframe premium and discount zones. For each filter, you can activate trend and/or premium/discount.
Allow Buy: If set to true, buy trades are taken in case criteria are respected. If set to false, no buy trades are taken.
Allow Sell: If set to true, sell trades are taken in case criteria are respected. If set to false, no sell trades are taken.
Trade at Market Price: This parameter is to handle the case where you are trading on a low timeframe or trading high spread pairs like BTC, as example. Limit and stop orders will fail if the price is between ASK and BID prices. Enabling this parameter will allow the EA to take trades at market prices and to recalculate again the SL, TP, and Risk considering the new price given by the market
Max trades per session: You can define here the maximum trades to be opened per session or day if the time window is not used. A low number within a window usually leads to trades taken at the beginning of the window. This parameter considers active positions, orders, and closed ones opened during the session. If set to 0, it means an unlimited number of trades can be taken.
Max Simultaneous open trades: This parameter will help you limit the number of simultaneous open trades. It is handy to limit the drawdown. If set to 0, an unlimited number of trades can be taken.
Rotate Orders: This parameter works with max trades per session and max trades open. If the maximum limit is reached, and a new trade opportunity appears, if this parameter is set to true, the highest price order in case of Sell limit or Buy Stop will be deleted, and a new order is set. In case of a Buy Limit or Sell Stop, the order with the lowest price will be deleted and replaced by an order close to the current price. The parameter is mainly used to increase the chance of entering a current move while keeping in mind your RR may be lower.
Don't open new trade if previous in loss: If set to true, no new trades will be taken if previous trades are in loss.
Shift Entry in points: To consider some high-spread markets, or if you want to have a more aggressive entry, you can shift the entries from the FVG. This is also true if you want to shift the entry away but put a negative value on it. Useful also to differentiate your entries from others when trading Prop Firms.
Order expiry in minutes: This parameter will allow you to set an expiration time for your orders. For example, when trading on the 1 hour, you may not need your order to stay there for more than a week if not triggered. O means the order will not have an expiry time
Close positions at a certain time: If true, the EA will close all sell or buy trades at the defined close position time
Hour to Close Positions (0-23): Closing Hour of all open positions
Minute to Close Positions (0-59): Closing Minute of all open positions
Close On Opposite Block Confirmation: If different than 0, all buy trades will be closed after the X bearish block of structure occurs, and the opposite for sell positions
Delete orders at a certain time: If true, the EA will delete all pending orders at the defined time
Hour to Delete Positions (0-23): Hour to delete all orders
Minute to Delete Positions (0-59): Minute to delete all orders
Close On Opposite Block Confirmation: If different than 0, all buy orders will be deleted after the X bearish block of structure occurs, and the opposite for sell orders
Volume type: The following options are available
Fixed: Choose to trade with a fixed lot size
Risk From Balance: Choose to risk a percentage of your balance. Please make sure you have defined a SL to be able to use this option
Risk From Equity: Choose to risk a percentage of your equity. Please make sure you have defined a SL to be able to use this option
Risk From Free Margin: Choose to risk a percentage of your Free Margin. Please make sure you have defined a SL to be able to use this option
Risk in Money: You can choose to risk a certain percentage of Money from your account, and the EA will calculate accordingly the SL
Volume value or Percentage value: This value will correspond to the fixed lot size or the percentage when choosing a dynamic lot size.
SL Type: Choose your SL type to match your strategy. Four options are available
No SL: Trade with no stop loss, which I do not recommend. A SL is always a tool to prevent significant losses.
Block High/Low: Set your SL on the nearest Swing High/Low - the structure depth used is configured in "Market Structure Depth"
Fixed in Points: Set your SL in fixed pip value
Extreme High/Low: This option allows you to set the stop loss to the extreme high or low identified during the trading session. It is a good option to use combined with a liquidity sweep
Candle Extremity: Set your SL at the extremity of the last X candle high or low
Points/Candles/Block Value: this parameter will help you define the value of your SL option
Shift SL in points: move the SL a little bit up or down in points
SL Min/Max Filter: Allowing you even to ignore a trade if SL is higher than the maximum value you decide on or less than a minimum value; this will help you skip large SL or Small SL. You can also choose to change the SL to the minimum or maximum value.
Min SL: Minimum SL to respect
Max SL: Maximum SL to respect
TP Type: You have three options to define how to set your take profit
No TP: Don't use a TP. This is usually true when you have a trailing stop mechanism in place.
"X" Risk to Reward: Define your take profit in risk to reward ratio. So if your SL is 100 PIP, and your Risk to Reward is 3.5, this means your take profit will be at 350 PIPs from your entry
Fixed to "X" PIP: Choose to trade with a fixed distance for the take profit
TP "X" Value: X value corresponds either to the Risk to Reward or the fixed distance in PIP
Breakeven Trigger Type: You have three options to define how to set the trigger level of your break-even
No BE: Don't use a BE.
After "X" Risk to Reward: Define your trigger in risk to reward ratio. So if your SL is 100 PIP, and your Risk to Reward is 2.6, this means you will trigger your break even at 260 PIPs from your entry
After "X" PIP: Choose to trigger your break even on a fixed distance
Break Even Trigger "X" Value: X value corresponds either to the Risk to Reward or the fixed distance in PIP
Buffer to cover commission in pip: Usually, breakeven will move the SL to the entry. Adding a buffer can help you cover your commissions, too.
The EA allows the configuration of two partials.
Partial Trigger:
No BE: Don't use a Partial Take Profit.
After "X" Risk to Reward: Define your trigger in risk to reward ratio. So if your SL is 100 PIP, and your Risk to Reward is 2.6, this means you will trigger your TP at 260 PIPs from your entry
After "X" PIP: Choose to trigger your TP on a fixed distance
TP Trigger "X" Value: X value corresponds either to the Risk to Reward or the fixed distance in PIP
TP Percentage from Running trade: this defines how much you need to take from a trade. So, for example, your trade is one lot, you configured this parameter to 50, and when TP is triggered, 0.5 of your trade is closed
Trail Stop Type: You have three options to choose from. The SL can have a configured distance to be triggered from
No Trailing Stop: No trailing stop will be applied
Step Trailing Stop: This trailing stop uses the same technique as the standard one. However, it will move the SL only by steps. The first move in this type of trailing stop is to move the SL to BE or higher.
Candle Trailing Stop: If this option is used, then the step is defined by a candle range. The step for a buy position will be on the lowest of the last 10 candles as an example.
Block Trailing stop: This option will allow you to trail your stop loss together with the market structure formation
Trigger Type
After "X" Points: This will allow you to define when to start trailing stop in points
After "X" time the risk: This will allow you to start trailing stop is a ratio of the risk you have in your trade. For example, if SL is 50 PIPS, and this parameter is 2, then when the trade is in profit on 100 PIP, the trailing stop will be triggered.
Trigger "X" Value: the Value for TSL trigger
Distance/Step Type
as "Y" PIP: This will allow you to define the step or distance in PIP
as "Y" time the risk: This will allow you to define the step or distance in using R from the risk. So as example, your risk is 50 pips, if you choose Y = 0.5, this means yous step will be 25 pips.
as "Y" candles: This will specify the range of candles to trail the stop loss. For example, if set to 15 for a buy position, it will trail the stop loss on the low of the last 15 candles.
as "Y" blocks: the number of blocks to respect during trailing, as example 2, means the stop loss will remain two blocks behind
Distance/Step/Candle/Block "Y" Value: the Value for the distance or step for TSL
Use Day Control: Enable day filtering to prevent the EA of trading certain weekdays.
Trade Monday? : True/False
Trade Tuesday? : True/False
Trade Wednesday? : True/False
Trade Thursday? : True/False
Trade Friday? : True/False
Trade Saturday? : True/False
Trade Sunday? : True/False
Avoid High Impact News: Choose to avoid trading during the news. This implies posting new positions or orders and also taking control of current open positions or orders
Server GMT Offset: This is essential as the news is read from Forex Factory and they are posted in GMT. Please use your market watch time and compare it to GMT to have the right configuration.
Currencies (USD,EUR,...) : Choose the impacted currencies like "USD,EUR,AUD,NZD,JPY,CAD,GBP", or "USD,EUR"
Don't trade all day on specific news: If set to true, the EA will not trade during specific news for selected currencies
Specifc News: In this parameter you can set the specific news like "Bank Holiday", "CPI", ... and other. Make sure you respect the same wording as in www.forexfactory.com, and use a coma to separate multiple news.
Stop trading before news in minutes: Decide when to stop taking new trades before news
Start trading after news in minutes: Decide when to start taking new trades after news
Take action before X minutes from news: Decide when to start taking actions before news
Action on Open Trades
Keep current trades running: All running trades will remain open, and the EA will manage them during the news.
Close all trades: All running trades will be closed
Close only winning trades: On each new candle during the news window, any winning trade will be closed. All losing trades will be held till they become winners or hit SL.
Set Trade to Break Even: On each new candle during the news window, any trade that still doesn't have BE in place will be checked and if possible, BE will be set (losing trades are not candidates to BE)
Delete all orders: If true, all orders will be deleted.
1- News are received from www.forexfactory.com
2- If you are using news, don't forget to allow web requests to the following URL: https://nfs.faireconomy.media/ff_calendar_thisweek.csv
3- The news filter is incompatible with backtesting, as only the current week's news is accessible.
Use DD and Profit Limiter: This will allow you to activate the daily profit limitation or drawdown, which is useful for prop firm challenges! Once the threshold is reached, Ultimate SMC will not create any new orders and will close all active ones. The reference will always be reset on a fresh day start. Pay attention, when first launching or on change of parameters, the EA will take into consideration the current balance or equity as reference.
Consider the entire Account: The drawn-down and profit calculation can be limited to the trades created by the FVG EA PRO or all the trades on your account.
Daily Drawdown Calculation Options: Several options are available to use as a reference for the draw-down
From "Initial Deposit": Make sure to fill in the amount in "Initial Deposit Or Risk In Money"
From "Account Balance"
From "Account Equity"
From "Higher Equity or Balance"
From "Risk In Money": Make sure to fill in the amount in "Initial Deposit Or Risk In Money"
DD Initial Deposit Or Risk In Money
Max Daily DD % : From the reference chosen
Daily Profit Calculation Options: Several options are available to use as a reference for the draw-down
From "Initial Deposit": Make sure to fill in the amount in "Initial Deposit Or Risk In Money"
From "Account Balance"
From "Account Equity"
From "Higher Equity or Balance"
From "Risk In Money": Make sure to fill in the amount in "Initial Deposit Or Risk In Money"
Profit Initial Deposit Or Risk In Money
Max Daily Profit % : From the reference chosen
Refresh Period in Seconds: Check period when the EA will check the drawdown or profit target