This expert is a free copy of the DailyTrader EA and it was created for the purposes of a quick and easy evaluation of the product.
Indeed, when tested within the Strategy Tester, it operates on bar open prices.
This greatly facilitates the backtesting because the much faster Open prices only mode can be used in the Strategy Tester.
Please, notice that this free version can only be used within the Strategy Tester.
Obviously, "Open price only" mode results are not as accurate as with real ticks in "Every tick" mode (they are generally worse), but they are qualitatively similar to the real ticks results and can provide a preliminary indication of the DailyTrader profitability and effectiveness with a given instrument and settings.
See the screenshots made for GBPUSD and EURUSD during 2015, to compare results in "Open prices only" mode with real ticks in "Every Tick" mode.
All reported backtests were done on M1 with fixed spread = 10 points, unless stated otherwise.
Visit regularly the DailyTrader comments page!
- Maximum_Spread: if the spread gets higher than this limit (in pips) then the trading is suspended. The EA will wait for ten minutes before checking again the spread level to re-activate trading.
- TrailingStop_Mode: In FIXED_TRAILING_STOP mode (default) the following two parameters determining the trailing-stop behavior are read from the pips-expressed version, while in the ATR_TRAILING_STOP mode they are read from the ATR-expressed version (so the behavior is more dynamic).
- TrailingStop_Distance: the initial distance of the stop-loss (in pips or as ATR-factor).
- TrailingStop_Min_Profit: the minimum profit (in pips or as ATR-factor) at which the stop-loss starts to move.
Recall that on 5-digits brokers 1 pip = 10 point, while on 4-digits brokers 1 pip = 1 point
The following time management parameter is useful to avoid broker spread expansion time
- Trading_Time_Slots: the EA is allowed to trade only between each (comma-separated) pair of times given in the form hh:mm,hh:mm,...
- Risk_Management_Enabled: if true then the lots are automatically determined so to fit the required single trade risk.
- Fixed_Lot: fixed order lot when risk management is disabled ( Risk_Management_Enabled = false).
The next 3 parameters are ignored if Risk_Management_Enabled = false.
- Single_Trade_Risk_Percentage: the maximum admitted loss in a single trade (as a percentage of the equity). If the minimum amount of a lot permitted by the broker is too high to satisfy this constraint then trading is suspended (no new order is placed).
- Martingale_Factor: (1=no martingale) factor multiplying the Single_Trade_Risk_Percentage at each trade as long as a drawdown is occurring.
- Martingale_MAX_RISK: The maximum value the single trade risk can achieve when the martingale is active.
- Min_Free_Margin_For_Trading: the minimum amount of free margin (as a percentage of the equity) to allow DT to trade. When the free margin drops below this value, trading is suspended.
- Max_Free_Margin_Per_Trade: the maximum percentage of the free margin that DT can allocate to place an order. This poses a limit to the maximum lot amount.
- Minimum_Equity_For_Trading: trading is suspended when the equity drops below this value.
- Strategy_Tester_Working_Mode: "Open Prices Only". This is the only Strategy Tester mode available for this free version of the EA.
- Commission_Per_Lot: broker commission (if any) for one lot order. The total amount of commissions is calculated and subtracted from the gross profit and the result is returned by the OnTester function. Thus, DT can be optimized taking commissions into account, by selecting "Optimized parameter: Custom" in the "Testing" tab of the "Expert Properties" window.
- Magic_Number: number identifying orders.
- Order_Comment: Optional comment added to each order.
- Trading_Text_Color: the color of the "Trading is OK" on chart message.
- Warning_Text_Color: the color of the "Trading is OFF" on chart message.
WARNING: take into account the GMT offset of the downloaded bars data in order to set properly the Trading_Time_Slots parameter!
For example, if with your broker server the proper trading time is from 8 a.m. to 8 p.m., the broker is at GMT+2 time zone and the downloaded bars data refer to a GMT-5 time zone, then the trading should start at 8 - (+2) + (-5) = 1 a.m. and should stop at 20 - (+2) + (-5) = 13 = 1 p.m., i.e. the trading time must be expressed in the downloaded data time zone. Thus Trading_Time_Slots = "1,13"
- Trading on Monday can be enabled/disabled
- Control on "not enough money" condition implemented
See https://www.mql5.com/en/blogs/post/687318 blog on how to optimize the EA.
- Trailing_stop algorithm improved: now it can be ATR-driven
- Maxspread parameter introduced.
- Trading time is expressed in time_slots.
- Now pending orders are deleted when "Trading is OFF" and when the EA is de-initialized.
- Risk of pending orders is checked and possibly delete orders if the risk has increased
- Pending orders are placed only if the market price gets close to the resistance/support levels and they are deleted when it moves away
- High spread state reduced to 5 mins.
- Spread taken into account in the RS levels calculation
- Risk correctly displayed when the automatic risk management is disabled
- Small bug fixed in profit factor evaluation