MetaTrader 5 Strategy Tester: bugs, bugs, suggestions for improvement - page 75

 

In these two modes of displaying Optimisation results

do not do anything useful as there are no tooltips with the result when hovering the mouse over the relevant cell/point.


Please finalise these two modes as implemented in the top/default "Graph with results" mode.

 
A situation has arisen where the selected local Agent (marked in bold in the agent list) is in disabled state. However, the single pass was running on another Agent. While the single pass was running, the disabled Agent could not be enabled - I clicked Enable, but nothing happened.
 
It probably doesn't make sense for the Tester to create opt files that have Header.passes_passed == 0.
 
Bug HistorySelect in Tester.
#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

#define  Ask SymbolInfoDouble( _Symbol, SYMBOL_ASK )

void OnTick()
{
  if (!OrderSelect(0, SELECT_BY_POS))                                            // Если нет текущих ордеров,
          OrderSend( _Symbol, OP_BUYSTOP, 0.1, Ask * 2, 0, 0, 0);                // выставляем.
  else if ((TimeCurrent() - OrderOpenTime() > 60) && OrderDelete(OrderTicket())) // Если текущий ордер живет дольше минуты - удаляем.
  {
//    if (HistorySelect(OrderOpenTime() + 1, INT_MAX))
    if (HistorySelect(TimeCurrent() - 10, INT_MAX))  // После удаления отступаем 10 секунд от текущего времени и берем историю.
      Print(HistoryOrdersTotal());                   // Видим, что в истории удаленного ордера нет - 0.
            
    if (HistorySelect(OrderOpenTime(), INT_MAX))     // Теперь берем историю от времени постановки удаленного ордера.
      Print(HistoryOrdersTotal());                   // Видим, что в истории удаленный ордер есть - 1.

    ExpertRemove();                                  // Вышли.
  }
}

HistorySelect does not select orders from the date they were deleted/filled, but from the date they were placed. Which, of course, is incorrect. It works correctly in the terminal. Unpleasant bug.

The search string: Oshibka 008.

 
This Expert Advisor cannot be Optimized by all symbols from Market Watch.
double OnTester() { return(0); }

Requires input parameters. But input parameters are not needed for this type of Optimisation. Please note.

 
if in the tester the tick history is not synchronized in the real tick mode, the tester starts running in the generated tick mode!

many times I have been severely disappointed afterwards, after grail results

Several times already my monitor has miraculously survived my righteous wrath. build 2340.
Алгоритм генерации тиков в тестере стратегий терминала MetaTrader 5
Алгоритм генерации тиков в тестере стратегий терминала MetaTrader 5
  • www.mql5.com
В составе клиентского терминала MetaTrader 5 есть встроенная среда программирования для разработки полностью автоматических стратегий (торговых роботов), которые могут торговать без вмешательства человека.  Другое название торговых роботов - эксперты.  Эксперты и технические индикаторы для терминала MetaTrader 5 пишутся на языке MQL5, в котором...
 
Andrey Dik:
if in the tester, the tick history is not synchronized in the real tick mode, the tester starts working in the generated tick mode!

already had many times to be hard hit later after a grail results

Several times already my monitor has miraculously survived my righteous wrath. build 2340.

Forum on trading, automated trading systems and strategy testing

MetaTrader 5 build 2430: Subscription Service, Interface Improvements and MetaEditor Features

fxsaber, 2020.05.17 00:38

when the bar history on the server does not match the tick history. Then you cannot use the original symbol in Tester at all. This limitation is bypassed only through custom symbols.

Always use only custom ones. There will be no problem at all. In other words.

 
2470, these messages pop up during Optimisation.
2020.05.30 11:49:55.216 Core 2  genetic pass (15, 313) returned result 0 in 0:00:04.146
2020.05.30 11:49:55.575 Core 1  genetic pass (15, 283) returned result 0 in 0:00:04.907
2020.05.30 11:49:56.241 Core 3  genetic pass (15, 375) returned result 0 in 0:00:04.537
2020.05.30 11:49:56.269 Core 6  genetic pass (15, 495) returned result 0 in 0:00:04.413
2020.05.30 11:49:57.497 Core 4  genetic pass (15, 419) returned result 1908.000000 in 0:00:04.873
2020.05.30 11:49:58.528 Core 6  genetic pass (15, 497) returned result 0 in 0:00:00.135
2020.05.30 11:49:58.528 Core 6  genetic pass (15, 502) returned result 0 in 0:00:02.122
2020.05.30 11:49:58.824 Core 4  genetic pass (15, 428) returned result 0 in 0:00:00.291
2020.05.30 11:49:58.824 Core 4  genetic pass (15, 429) returned result 0 in 0:00:01.035
2020.05.30 11:49:59.178 Core 4  genetic pass (15, 433) returned result 0 in 0:00:00.352
2020.05.30 11:49:59.178 Core 2  2 rejected passes returned to queue
2020.05.30 11:49:59.178 Core 3  2 rejected passes returned to queue
2020.05.30 11:49:59.178 Core 4  genetic pass (15, 345, 1) started
2020.05.30 11:49:59.660 Core 2  genetic pass (15, 327) returned result 0 in 0:00:04.443
What does this mean? There is plenty of free memory.
 

If there is a symbol on the trade server which has no history, running the tester on it causes an endless wait.

This, in particular, makes it impossible to optimise for all symbols in Market Watch mode.

 

Please add the name of the server to this line.