MetaTrader 5 Strategy Tester: bug, errori, suggerimenti per il miglioramento - pagina 75

 

In queste due modalità di visualizzazione dei risultati dell'ottimizzazione

non fanno nulla di utile poiché non ci sono tooltip con il risultato quando si passa il mouse sulla cella/punto pertinente.


Si prega di finalizzare queste due modalità come implementate nella modalità top/default "Grafico con risultati".

 
Si è verificata una situazione in cui l'agente locale selezionato (segnato in grassetto nell'elenco degli agenti) è in stato disabilitato. Tuttavia, il singolo passaggio era in esecuzione su un altro agente. Mentre il singolo passaggio era in esecuzione, l'agente disabilitato non poteva essere abilitato - ho cliccato su Enable, ma non è successo nulla.
 
Probabilmente non ha senso per il Tester creare file opt che hanno 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 non seleziona gli ordini dalla data in cui sono stati cancellati/riempiti, ma dalla data in cui sono stati inseriti. Il che, ovviamente, non è corretto. Funziona correttamente nel terminale. Insetto sgradevole.

La stringa di ricerca: Oshibka 008.

 
Questo Expert Advisor non può essere ottimizzato da tutti i simboli di Market Watch.
double OnTester() { return(0); }

Richiede parametri di input. Ma i parametri di input non sono necessari per questo tipo di ottimizzazione. Si prega di notare.

 
se nel tester la storia dei tick non è sincronizzata nella modalità tick reale, il tester inizia a funzionare nella modalità tick generata!

molte volte sono stato gravemente deluso dopo, dopo i risultati del graal

Già diverse volte il mio monitor è miracolosamente sopravvissuto alla mia ira funesta. build 2340.
Алгоритм генерации тиков в тестере стратегий терминала MetaTrader 5
Алгоритм генерации тиков в тестере стратегий терминала MetaTrader 5
  • www.mql5.com
В составе клиентского терминала MetaTrader 5 есть встроенная среда программирования для разработки полностью автоматических стратегий (торговых роботов), которые могут торговать без вмешательства человека.  Другое название торговых роботов - эксперты.  Эксперты и технические индикаторы для терминала MetaTrader 5 пишутся на языке MQL5, в котором...
 
Andrey Dik:
se nel tester, la storia dei tick non è sincronizzata nella modalità tick reale, il tester inizia a lavorare nella modalità tick generata!

ha già avuto molte volte di essere gravemente frustrato dopo, dopo i risultati del graal

Già diverse volte il mio monitor è miracolosamente sopravvissuto alla mia ira funesta. build 2340.

Forum sul trading, sistemi di trading automatico e test di strategia

MetaTrader 5 build 2430: servizio di sottoscrizione, miglioramenti dell'interfaccia e caratteristiche di MetaEditor

fxsaber, 2020.05.17 00:38

quando la cronologia delle barre sul server non corrisponde alla cronologia dei tick. Allora non è possibile utilizzare il simbolo originale in Tester. Questa limitazione è aggirata solo attraverso simboli personalizzati.

Usate sempre e solo quelli personalizzati. Non ci sarà alcun problema. In altre parole.

 
2470, questi messaggi appaiono durante l'ottimizzazione.
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
Cosa significa questo? C'è molta memoria libera.
 

Se c'è un simbolo sul server commerciale che non ha storia, l'esecuzione del tester su di esso causa un'attesa infinita.

Questo, in particolare, rende impossibile l'ottimizzazione per tutti i simboli del Market Watch.

 

Aggiungete il nome del server a questa linea.