This EA can be used with a large number of sets of settings.
The type of the basic strategy is selected by switching the "Breach_else_Channel" parameter: channel breakout or trading withing the channel. The basic strategy is divided into two blocks (A and B) with different filters and logic for performing trades. They can be used both in conjunction and separately. You can perform the optimization for any instruments and trading hours. It is possible to consider the economic news in testing, since the EA contains them (from January 1, 2015 to December 31, 2017). The "Pass_of_News_else_Trade_at_News" parameter determines the trading logic during the release of economic news: do not trade at the specified time intervals during the news release, or trade only at the specified intervals during the news release.
The full list of parameters can be found in the blog: https://www.mql5.com/en/blogs/post/695169
While testing or at real work, use the sets of settings from Сomments.
Highlights to pay attention to
1. During live operation of the expert the GMT offset parameter is determined automatically based on local time of the computer (GMT_Offset_AUTO=true).
This parameter provides synchronization of the expert settings with the MetaTrader 4 server time.
To ensure the correctness of settings it is necessary:
- to compare the GMT time in expert information area on the chart of currency pair, to which the expert is attached, with http://time.is/GMT (or other reliable source).
- If the values do not match, then set GMT_Offset_AUTO=false and set a value of GMT_Offset_Manual according to the instructions in https://www.mql5.com/en/blogs/post/682539
2. In order to activate the News filter function, enable "Allow WebRequest" and add https://sslecal2.forexprostools.com/ to the URL list for WebRequest.
To do this, open Tools > Options > Expert Advisors. Check the option "Allow WebRequests for listed URL:". Add https://sslecal2.forexprostools.com/ and click OK.
The EA contains a news archive (01.01.2015 - 31.12.2017), which is used for testing.
3. By default, in the EA settings, the risk per trade is set to 1% of balance.
After testing on real accounts this parameter can be changed depending on your preferences. I recommend using a fixed lot (Use_Fix_Lots) or a recovery money management.
4. The expert works on any timeframe equally well, as it automatically takes the necessary data from multiple timeframes.
As the expert uses multiple timeframes for the analysis, it is necessary for the quotes of all timeframes (M1, M15, M30, H1, H4) to be downloaded in the terminal for testing. At the same time, the testing itself can be performed on any timeframe (when using the test model: "Every tick").
5. For brokers with the rule "First In First Out" enable the parameter FIFO_MODE = true.
6. The EA logs information on spread, slippage and other useful information when performing trades, and also when it is possible to make trades.
To write this information, set the parameter Record_Deals = true;
To view this information:
- go to MQL4/Files in the terminal folder and open the corresponding file (this action can be made in time which is not coinciding with time of opening of transactions by the expert and when there is no open transactions of the expert);
- after viewing, close the file (so that the expert could write down information further).
7. If you use an expert on different currency pairs, then there is no need to change the magic numbers ("magics"), since the expert identifies the transactions simultaneously by magic number and by currency pair.
2) The history of news for the strategy tester is updated to December 31, 2017 ("NewsFilter").
==== STRATEGY ====
Breach_else_Channel - if "true", then the "Breach" strategy is used; if "false", then the "Channel" strategy is used;
Use_Block_A - enable/disable block A;
Parametr_A_1 - parameter A1 for optimizing block A (range of values: from 1 to 25);
Parametr_A_2 - parameter A2 for optimizing block A (range of values: from 1 to 25);
Use_Block_B - enable/disable block B;
Parametr_B_1 - parameter B1 for optimizing block B (range of values: from 1 to 25);
Parametr_B_2 - parameter B2 for optimizing block B (range of values: from 1 to 25);
==== TIMING ====
GMT_Open_Trade_Hour - hour to start opening trades, GMT;
GMT_Open_Trade_Minute - minute to start opening trades, GMT;
Period_Open_in_minute - time duration for opening trades in minutes;
GMT_Open_Pause_Hour - hour to start a pause in opening trades, GMT;
GMT_Open_Pause_Minute - minute to start a pause in opening trades, GMT;
Period_Pause_in_minute - pause duration in minutes
Sunday_Trade - enable trading on Sunday;
Monday_Trade - enable trading on Monday;
Tuesday_Trade - enable trading on Tuesday;
Wednesday_Trade - enable trading on Wednesday;
Thursday_Trade - enable trading on Thursday;
Friday_Trade - enable trading on Friday;
2. Loaded a news archive (01.01.2015 - 20.08.2017) for testing with the news filter enabled:
Use_NewsFilter - use the news filter;
Pass_of_News_else_Trade_at_News - if "true", do not open trades in the specified time intervals with news; if "false", open trades only at the specified time intervals with news;
2) Field for entering dates for skipping.