Added new parameters and features by requests of customers:
- Portfolio Mode - allows you to run more than one set file (instance of the EA) and/or my other EAs (instances of Perceptrader AI and Golden Pickaxe) on the same account so that the EAs do not open new initial trades simultaneously.
- Initial Delay for Portfolio Mode, ms - time delay, which will be set automatically based on the UID value. This delay is necessary to ensure one set file recognizes the opened trades of another and skips the trading signal.
Please note that set files of the same EA must have a unique UID!
For example, if you run 2 set files on the same account and want to prevent the same pair from being opened by both set files simultaneously, then I recommend setting as follows:
First set file: Portfolio Mode=true, UID=0
Second set file: Portfolio Mode=true, UID=1
- Consider PAI Orders (Portfolio only) - the EA will take into account open trades of Perceptrader AI in portfolio mode.
- Consider GP Orders (Portfolio only) - the EA will take into account open trades of Golden Pickaxe in portfolio mode.
- Basic Magic Number - this option allows you to change the basic magic number of all trades. Magic numbers of trades/orders are calculated according to the following formula: [Direction][BasicMagicNumber+UID][TradeNumber], where
- Direction - 1 for Buy, 2 for Sell
- TradeNumber - the number of trades from 00 to 99. 00 - for the initial trade, 01 - for the first averaging trade, and so on.
For example: 28457000, 18457003.
- Pause Between Grid Trades, in min - a minimum pause between grid trades in minutes.
- Cover Swaps - if true, the EA adjusts the TP to cover any possible loss due to the swap. Set it to false if you want to deactivate this option.
- ML-based Pattern Recognition & Filtering - enable/disable filtering of trades using ML-based candlestick pattern filter. The filter increases the trading quality, but reduces the number of trades.
- ML-based Pattern Filter Threshold - the minimal predicted probability that a trade will result in profit.
- Reverse Strategy - allows you to take the order in the other direction on a signal. For example, you can set the EA to follow the trend instead of countering it.
- Open Opposite Trade - if true, the EA will open an additional initial trade in the opposite direction as soon as the initial order/trade is executed.
- Max Daily Drawdown Type FTMO - allows you to customize the daily drawdown calculation.
- Do Nothing if During Rollover - set to true if you want to ignore max. drawdown checks during rollover.
- Increase Take Profit, in pips [0-disabled] - specified number of pips to be added to TP during news events.
- Hour to Close & Stop Trading on Friday [0-disabled] - possibility to stop the EA on Friday at a specified hour.
- Max Open Lots Adjusted For... - allows you to adjust Max Open Lots for balance or equity so that it will grow proportionately.
- Force Basket Closure once the Initial Order is Closed - option to force basket closure once the initial order/trade is closed by TP or by manual intervention.
- Send Push Notifications after this Level [0-disabled] - sends a push notification if a trade above the specified level is opened. You need to allow push notifications in the terminal settings and specify your MetaQuotes ID.
- Max Floating Drawdown % for each Symbol, separated by comma - allows you to specify the max. drawdown % separately for each symbol.
Added News Filter Actions:
- Prohibit opening of the initial trade - the news filter only prohibits opening new initial trades.
- Prohibit opening of all trades - the news filter prohibits both the initial trades and the averaging ones.
- Close all open trades - the EA will close all trades before the news is released.
Three separate exit levels have been added. By combining them, you can fine-tune the exit rules:
TakeProfit #1/2/3 after this Level [0-disabled] - adjusts the TP once the specified Grid level is reached.
TakeProfit #1/2/3 after X bars [0-disabled] - adjusts the TP after reaching a specified number of bars.
TakeProfit #1/2/3 [can also be negat., 0-breakeven] - take profit for grid after reaching a specified number of bars or grid level. Values can be positive, negative, or 0 – breakeven.
Deleted parameters (as they duplicate the separate exit levels):
- Break Even (TP) after this Level [0-disabled]
- Break Even (TP) after X bars [0-disabled]
- Disable Trades on the Same Side of a Currency - this option disables the opening of new initial trades on the same side of a currency. For example, it can help prevent having 2 shorts for CAD at the same time to protect accounts from a strong trend for the CAD currency.
- Show the Next Grid's Price & Volume - displays the price along with volume level where the next grid trade will be opened.
- Calculate Levels from Initial Trade - if true, then entry prices of grid levels will be calculated based on the entry price of the initial trade. In this case, if the distance of the previous grid is very large, the next grid can be formed shorter than 35 (by default) or even inside the previous grid. If false, then the entry price of a grid level will be calculated based on the entry price of the previous grid to form grids with distances greater than 35 (by default).
- Added a function that allows you to set "only long" or "only short" on a respective pair. To set "only long"/"only short", put the prefix L:/S: before trading symbols. For example, L:AUDCAD, S:AUDNZD, NZDCAD.
- Break Even (TP) after X Bars [0-disabled] - time-based rule that automatically moves the Take Profit (TP) to breakeven after a certain number of bars.
- Only One Symbol if Grid Reaches this Level [0-disabled] - this option allows you to temporarily reduce the "Maximum Symbols at a Time" to one if an open grid reaches the specified level.
- Fixed problems with news filter and automatic GMT detection.
- Added a new backup URL for the news filter and GMT detection: http://valerytools.com
Please allow web requests to it here: Tools -> Options -> Expert Advisors -> Allow WebRequests for listed URL.
- Minor bug fixes.
- 'Allow sending SL & TP along with an order (for a non-ECN acc.)' - if true, then the EA will send SL & TP along with orders. If false, then SL & TP will be set after the order is sent and executed.
- 'Randomize TP/SL Levels' - if enabled, the EA will randomly slightly change the TP/SL levels. This option allows you to have a unique TP/SL.
- 'Max Random Delay before sending Orders, sec [0-disabled]' - maximum random delay in seconds before sending an order. Values over 15 seconds are not recommended.
- 'Trade on Monday/Tuesday/Wednesday/Thursday/Friday' - enable/disable trading on Monday/Tuesday/Wednesday/Thursday/Friday.
- 'Check Margin for all Grid Levels' - if true, the EA will check if there is enough free margin to open all grid levels at the same time. If not enough, the initial lot size will be reduced.
- 'Check Bars for Errors' - if true, the EA will check the relevance of historical data and bar opening time. Turn it off if your broker uses non-standard bar opening time (for example hh:02, hh:17, hh:32, hh:47).
- 'Show Stats' - show a panel with statistics.
- 'Font Size (1...8)' - reduce this value if you're having trouble with the info panel.
- 'Disable Automatic GMT Detection' - set it to 'true' to disable automatic GMT detection. You can use the GMT Test/Manual' and 'DST Test/Manual' parameters to manually set the GMT offset in live trading.
- 'GMT(DST) Test/Manual' - GMT offset in winter and DST in Tester.
- 'News Filter Enabled' - on/off News Filter.
- 'Wait Minutes Before/After Event' - suspend trading before/after the news.
- 'Disable Trading on Holidays' - enable/disable trading on bank holidays according to the real-time Economic Calendar (https://www.investing.com). This filter is currency-specific. For example, with it, EA won't take trades on USD pairs during bank holidays in the USA. It also works in Strategy Tester.
- 'Medium Impact News' - enable/disable news events with medium impact (2 stars news).
- 'Low Impact News' - enable/disable news events with low impact (1 star news).
- 'Speaks' - if false, then the EA will not take into account news events marked as Speeches/Speaks.
- 'News List Refresh Rate' - news events list update frequency (selection from the drop-down list).
- 'Show News List' - displays a list of upcoming news events to the right of the info panel.
- 'Disable Built-in News Filter Settings' - disables the built-in news filter settings, allowing you to fine-tune the news filter.
- 'Custom Events (separated by a comma, disabled if empty)' - custom rules allowing you to fine-tune the news filter.
Format: Key[-Currency pair],Key[-Currency pair],.........,Key[-Currency pair]
Key – the currency of the news event or keyword in the news header. You can use multiple currencies without a separator, for example, USDAUDGBP.
If you specify a keyword, the letter case does not matter. For example, FOMC.
[-Currency pair] - optional parameter specifying which currency pair the rule applies to. For example -EURUSD.
USD, - takes into account all news events for USD on all currency pairs
AUDGBP-GBPUSD-NZDUSD, - takes into account all news events for AUD and GBP on GBPUSD and NZDUSD currency pairs
CHFEUR-EURUSD, - takes into account all news events for CHF and EUR on the EURUSD currency pair
FOMC, - takes into account news events with the word (or part of the word) FOMC in the header on all currency pairs
Rate-AUDCAD - takes into account news events with the word (or part of the word) Rate in the header on AUDCAD currency pair
Each rule must be separated by a comma. if 'Disable Built-in News Filter Settings'=false, then the custom rules are in addition to the built-in ones. The built-in settings are as follows:
- 'Stock Market Crash Filter Enabled' - enable/disable the stock market crash filter.
- 'Stock Market Symbol' - symbol name of the S&P500 stock index of your broker. It is usually called something like US500 or SPX500 (press Ctrl+U to see all symbols).
- 'Filter Period' - period of the stock market crash filter.
- 'Max Historical Volatility (HV)' - max. annualized standard deviation of H1 returns (HV in %).
- 'Block Trading for the Entire Day' - prohibits opening new trades throughout the day if HV hits the specified level just once at any moment during the day.
- 'Check for Instances of the EA' - checks that only one instance of the EA is running at a time. If EA detects other instances with the same UID, trading will be disabled.
- 'Symbol Suffix' - here you can specify a symbol suffix if your broker uses one.
- 'Max Open Lots (Filter)' - the EA will not send new initial orders if the volume of all positions opened by the EA exceeds the specified value.
- 'Max Daily Drawdown Limit % FTMO Rules' - maximum daily drawdown limit, calculated according to the FTMO rules. Non-trading operations (like withdrawals) during the day are not taken into account.
- 'Max Daily Drawdown Limit in Money FTMO Rules [0-disabled]' - maximum daily drawdown limit in MONEY, calculated according to the FTMO rules. Non-trading operations (like withdrawals) during the day are not taken into account.
- 'Max Daily Drawdown Reset Hour FTMO Rules (Broker time)' - hour to reset the max. drawdown with the prop firm.
- 'Handle Max Drawdown Events on Every Tick' - enable/disable drawdown event handling on every tick (instead of once a minute which is used by default, it may consume more CPU resources).
- 'Minutes to Start Trading' - minutes to start trading (for initial orders only).
- 'Minutes to Stop Trading' - minutes to stop trading (for initial orders only).
- 'Allow Manual Trading Buttons' - enable/disable manual trading buttons that allow you to manually open an initial trade: the EA will pick up the manually opened trade and manage it as usual. The buttons are affected by the following parameters: Symbols, Maximum Spread, and Maximum Symbols at a time.
- 'Rounding Method' - allows you to choose the method of rounding fractional lots to calculate trading lot sizes.
- 'Rollover Start Hour' - rollover start hour.
- 'Rollover Start Minutes' - rollover start minutes.
- 'Rollover End Hour' - rollover end hour.
- 'Rollover End Minutes' - rollover end minutes.
- 'Send Orders During Rollover Time' - enable/disable sending orders (including grid trades) during rollover time.
- 'Remove TakeProfit During Rollover' - removes TP for all orders at the specified rollover time. This option helps to avoid closing trades via TP during bad trading conditions since slippage can turn a profitable trade into a losing one.
- 'Custom Symbol Multipliers separated by comma' - here you can set multipliers to calculate trading lots for each pair, for example, 1.0,0.7,0.9. This means that the first pair (specified in the 'Symbols separated by comma' parameter) will be open normally, but the second and third will have smaller lots, multipliers 0.7x and 0.9x.
- 'Working TF for BB and RSI' - allows you to set working TF for BB and RSI indicators.
- 'Percentage Pips Mode' - enable/disable percentage pips mode. 1 percentage pip = 0.0001 * Current Price.
- 'Custom Multipliers sep. by comma' - custom multipliers for each GRID step separated by a comma, for example - 1,2,4,8,12,18,27,41. This parameter has a higher priority.
- 'Trailing SL Size, in pips [0-disabled]' - trailing stop in pips based on the grid breakeven point (=weighted average entry price of all orders including SWAPs and commissions).
- 'Trailing SL Start, in pips' - number of pips in profit at which the trailing SL is activated.
- 'Tester Withdrawal (Tester only)' - the withdrawal will take place if the account equity exceeds the specified value.
- 'Withdrawal Amount (Tester only)' - amount to withdrawal.
Fixed problems with commission for some brokers.
Added new parameters and features by request of customers:
- 'TF for OPO method' - timeframe for the 'Use OPO method to handle TP' feature: the EA will close trades using open prices only on the TF of your choosing;
- 'Break Even after this Level' - break even feature after the specified Grid level is reached;
- 'TakeProfit for Grid' - now it allows any value including zero and negative. The weighted TP can be set with a separate 'Weighted TakeProfit' option;
- 'Do not adjust TP unless new grid level opened' - if true, the EA will adjust TP of open positions only when a new grid level is opened. The user can manually set their own TP, which will stay current until the EA opens a new grid level;
- 'Fixed Initial Deposit (Tester only)' - lot size will be calculated based on the initial deposit, new profits will not be taken into account;
- 'HourToStartTrading' - hour to start trading;
- 'HourToStopTrading' - hour to stop trading;
- 'Keep Original Profit Level & Lot Size' - when skipping grid level, the EA will keep profit target from the original (standard) strategy. It helps boost performance. The EA still needs 'marker orders'. A feature that allows skipping levels without such orders will be added later.
Minor bugs fixed.
Fixed bug related to displaying Info Panel
- Added a new button to the information panel: "New grids (NOT) allowed". It allows you to prohibit opening new grids. The button does not affect already open grids. Green button means that EA works as usual, red button means that opening new grids is prohibited. Button duplicates the 'Allow Opening a new Grid' parameter, but in a more visualized manner. This feature was added by a customer's request
- Added "Auto Split" option allowing the EA to trade with any lot size/volume without limits. Most brokers have a limit of 100 lots per order, so if the option is enabled, the EA will automatically split a large trading volume (e.g. 10000 lots) into multiple smaller orders (not more than 100 lots per the child order). It is intended to be used in tester to allow testing the EA on all the available history
- Added new parameter: "Use OPO method to handle TP". If enabled, the EA will use a virtual TP handled only when a new bar opens. It will sometimes allow the EA to catch more profit from a trade. This feature was added by a customer's request, but I won't use it on my accounts
- Added new feature: "Smart TakeProfit". If enabled, the TP will be based on the current volatility, with the first 2 trades having different TP levels. It increases EA results in tester due to more trades being opened. However, default version of the EA (the one working from 2018) won't use it. This feature was added by a customer's request
- Added new feature 'Manual Trading Buttons'. It allows you to manually open an initial trade: the EA will pick up the manually opened trade and manage it as usual. The buttons are affected by the following parameters: Symbols, Maximum Spread, Maximum Symbols at a time.
- Added new parameters:
Minimum Free Margin % - if Free Margin% falls below the specified value, the EA will not place new pending orders and will cancel already placed ones.
Hide TakeProfit - allows you to hide take profit.
Grid Level to Start - allows you to skip a certain number of grid levels, trading will start from the specified level. To calculate entries correctly, the EA opens "marker" orders at skipped levels with a minimum lot size.
- Several small improvements that do not affect performance.
Bug fix release
- Added new feature 'Max Floating Drawdown in Money'. If the floating drawdown in money exceeds the specified value, the EA will perform actions specified in the 'Max Drawdown Action' parameter.
- Added new parameter 'Max Drawdown Action' which allows specifying actions to be taken after the max. drawdown is reached (in money or %):
'Close trades & stop trading for 24h' - the EA will close all open trades/grids and will not open new ones for 24 hours;
'Close trades & stop trading until restart' - the EA will close all open trades/grids and will not open new ones until the EA/MT restarts;
'Prohibit opening new trades' - new grids will be prohibited as long as the floating drawdown is above a specified value;
'Prohibit opening new trades until restart' - new grids will be prohibited until the EA/MT restarts.
- Added new parameter 'Max Drawdown Calculation' allowing specify how the maximum drawdown is calculated:
'The account' - takes into account all positions opened on the account, including trades opened manually or by other EAs;
'This strategy' - takes into account only positions opened by this EA.