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

 

Il tester sui simboli personalizzati ha smesso di funzionare correttamente. Riproduzione.

Creare un simbolo.

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

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

fxsaber, 2020.02.11 01:58

sinput datetime inDateFrom = D'2020.01.01';

void OnStart()
{
  const string Name = "USDJPY_CUSTOM";                                                       // Имя кастомного символа
  const string SymbOrig = "USDJPY";                                                          // Имя оригинального символа

  MqlTick Ticks[];
  
  const int Size = CopyTicksRange(SymbOrig, Ticks, COPY_TICKS_ALL, (long)inDateFrom * 1000); // Считали USDJPY-тики.
    
  if ((Size > 0) && CustomSymbolCreate(Name, NULL, SymbOrig) && SymbolSelect(Name, true))    // Создали символ на основе USDJPY.
    CustomTicksReplace(Name, 0, LONG_MAX, Ticks);                                            // Поместили в него историю USDJPY.        
}


In Strategy Tester (modalità standard, non per pips) avvia questo Expert Advisor

#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

#define  Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnTick()
{
  static long Ticket = -1;
  
  if (Ticket == -1)
    Ticket = OrderSend(_Symbol, OP_BUY, 1, Ask, 0, 0, 0);
}

avendo impostato le valute uguali alla valuta del conto.


Dopo di che vedremo il profitto dell'affare.


Il profitto è 100 volte superiore a quello che dovrebbe essere. Questo non accadeva nelle build precedenti.

Stringa di ricerca: Oshibka 003.
 

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

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

fxsaber, 2020.01.28 14:07

Questa è la prima volta che ho incontrato una situazione con il mio EA in cui il risultato GA non coincide con un singolo passaggio. Tutti i passaggi sono diversi.

Il risultato della forza bruta completa è lo stesso. Costruire 2305.


Ho la sensazione che in opt at genetics i parametri di input di ogni passaggio non siano scritti correttamente.

La situazione si è ripetuta. È difficile capire le ragioni.

 
fxsaber:

La situazione si è ripetuta. È difficile capire le cause.

Ci sono valori di parametri nella linea del risultato dell'ottimizzazione.

In un singolo test i valori dei parametri sono necessariamente visualizzati nel log del tester.

I valori nella riga dei risultati dell'ottimizzazione e nel log del tester corrispondono?

 
Slava:

I valori dei parametri sono presenti nella barra dei risultati dell'ottimizzazione.

Se viene eseguito un singolo test, i valori dei parametri sono necessariamente emessi nel log del tester.

I valori nella linea dei risultati dell'ottimizzazione e nel log del tester coincidono?

Corrispondono. Questa è la prima cosa che ho controllato. Cercherò di tirare i passaggi di GA attraverso le cornici. E poi confrontare con quello che mostra il singolo.

Ho il sospetto che la stringa del parametro di input sia formata in modo errato. Cioè ho fatto un passaggio per un set, ma erroneamente ho prescritto un altro set in opt.


ZZZ non è riuscito a riprodurre la storia su un piccolo intervallo.

 

Il tester della strategia controlla i simboli originali e i simboli personalizzati per la correttezza (barre e tick corrispondenti) in modo diverso quando prepara i dati prima del passaggio.


Creiamo un simbolo personalizzato, non c'è un solo errore. Poi facciamo questi stessi dati lato server. E Tester dice che i dati sono un grande errore.

Una ragione in più per eseguire il tester solo su simboli personalizzati.

 
fxsaber:

Poi rendiamo quegli stessi dati i dati del server. E Tester dice che i dati sono un grande errore.

Forse c'è un problema con il formato dopo tutto?

 
Andrey Khatimlianskii:

Forse c'è un problema con il formato?

Controllato questo punto. Corrispondenza completa, incluso il volume dei tick, lo spread, ecc.

 
fxsaber:

Controllato questo punto. Corrispondenza completa, incluso il volume dei tick, lo spread, ecc.

Deve essere una protezione. Quindi non rimboccano niente.

 
Andrey Khatimlianskii:

Probabilmente la protezione. Quindi non manomettono nulla.

È solo che i dati del simbolo originale corrispondono perfettamente a quello personalizzato. Ma quello personalizzato passa senza errori, mentre quello originale no.

Su un server reale ho incontrato una situazione in cui lo stesso volume di tick del simbolo originale è un po' diverso da quello che è nella storia dei tick.

E lì è meglio non usare affatto Tester sui simboli originali. Altrimenti potreste imbattervi in zecche generate invece di quelle reali.

 
fxsaber:

La situazione si è ripetuta. Difficile immaginare come risolvere le cause.

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

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

fxsaber, 2020.01.28 14:07

Questa è la prima volta che ho incontrato una situazione con il mio EA in cui il risultato GA non coincide con un singolo passaggio. Tutti i passaggi sono diversi.

Il risultato della forza bruta completa è lo stesso. Costruire 2305.


Ho la sensazione che in opt durante la genetica i parametri di input di ogni passaggio non siano scritti correttamente.

Slava:

Ci sono valori di parametri nella linea del risultato dell'ottimizzazione.

Nel test singolo i valori dei parametri sono necessariamente scritti nel log del tester.

I valori nella linea dei risultati dell'ottimizzazione e nel log del tester coincidono?

Anch'io ho avuto una situazione simile, ho cercato di analizzarla ed è venuta fuori così,

I parametri nella linea del risultato dell'ottimizzazione sono corretti e coincidono con quelli nel log del tester, ma l'Expert Advisor inizia il test con parametri diversi.

Ho riavviato il terminale e cancellato tutte le cache, ma i parametri di ottimizzazione non sono stati comunque applicati all'Expert Advisor. Forse l'antivirus o il firewall hanno bloccato qualcosa.

Poi in qualche modo si è risolto e ha iniziato a funzionare normalmente. Controllate anche se il vostro firewall sta bloccando qualcosa.