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

 

Riproduzione del bug di reset dell'input durante la compilazione.

EA

input int inRange = 0;

void OnInit() {}

1. impostare inRange = 25 ed eseguire un solo passaggio

2. CTRL+V nella scheda Tester Settings della riga successiva

inRange=123

3. Ricompilare EA.

4. Vedete che l'inRange è resettato a 25. Avrebbe dovuto essere 123.

 
Slava:

Nel timer del Tester o tramite Sleep spostato di 0,5 secondi. Come identificare ciò che è successo? TimeTradeServer non mostra dati inferiori al secondo.

 
fxsaber:

Riproduzione del bug di reset dell'input durante la compilazione.

EA

1. impostare inRange = 25 ed eseguire un singolo passaggio

2. CTRL+V nella scheda Tester Settings della riga successiva

3. Ricompilare EA.

4. Vedete che l'inRange è resettato a 25. Avrebbe dovuto essere 123.

Non è un bug.

Come progettato. Finché non viene premuto il pulsante di prova, i parametri attuali non vengono scritti nel <nome_esperto>.set corrente

Quando si ricompila, se la composizione dei parametri non è cambiata, i loro valori sono ripristinati dall'insieme corrente

 
Slava:

Non è un bug.

Come progettato. Finché non si preme il pulsante di prova, i parametri attuali non vengono scritti nell'attuale <nome_esperto>.set

Quando si ricompila, se la composizione dei parametri non è cambiata, i loro valori sono ripristinati dall'insieme corrente

Non lo è. Se si scrive a mano 123, la compilazione non cambierà il valore.

 
Ho giàscritto anchesu questo argomento, ma non c'è stata risposta. In effetti, diventa impossibile eseguire il debug con parametri personalizzati. Perché il debug ricostruisce ogni volta, anche se non è stato cambiato nulla. Rebuild resetta i parametri. Dovrò uscire dall'equazione cambiando l'Expert Advisor e inchiodando i parametri, il che non è molto conveniente.
Новая версия платформы MetaTrader 5 build 2190
Новая версия платформы MetaTrader 5 build 2190
  • 2019.11.25
  • www.mql5.com
В пятницу 18 октября 2019 года будет выпущена обновленная версия платформы MetaTrader 5...
 
Andrey Khatimlianskii:

Qualcosa che hai ottimizzato troppo con iTime:


Lavorare sulla M5:


Questo è un bug di vecchia data.

Apparso su tick reali EURUSD esattamente in questa gamma di test

Corretto.

 
traveller00:
Ho anchescritto su questo argomento, ma non c'è stata alcuna risposta. Di fatto, diventa impossibile eseguire il debug con parametri personalizzati. Perché il debug ricostruisce ogni volta, anche se non è stato cambiato nulla. Rebuild resetta i parametri. Dovrò uscire dall'equazione cambiando l'Expert Advisor e inchiodando i parametri, il che non è molto conveniente.

Non hai detto nulla sui passi per riprodurre il problema che descrivi.

Personalmente non sono riuscito a riprodurlo.

C'è solo un caso di ripristino dei parametri di ingresso a quelli di default. Quando si cambia la composizione dei parametri di questo EA

 
fxsaber:

I prezzi nella storia del Terminal non sono stati normalizzati!

I prezzi per MQ-Demo e MQ-Beta sono stati normalizzati al 12.12.2019.

 

Viene utilizzata una build di 2280. Prende un simbolo e un punto quando non c'erano citazioni. In questo caso si tratta di borsa valori, broker Otkritie, simbolo UCAD-12.19, periodo 01.09.2019-03.09.2019. Un semplice Expert Advisor è in esecuzione (sotto). Se lo fai correre un passaggio alla volta, va bene, dice solo che non c'è storia, 0 barre e 0 tick. Se eseguo l'ottimizzazione, non importa se è genetica o piena, il log conterrà un sacco di errori

genetic pass (0, 504) tested with error "critical runtime error 517 in OnInit function (module Experts\test.ex5 exception 0xc0000005)" in 0:00:00.041
input int test=1;

double OnTester()
{
  return 0;
}

void Test(const MqlTick &Tick)
{
}

void OnInit()
{
  MqlTick OldTicks[];
  int OldTicksCount=CopyTicks(_Symbol,OldTicks,COPY_TICKS_ALL);
  while(OldTicksCount>=1000)
    OldTicksCount=CopyTicks(_Symbol,OldTicks,COPY_TICKS_ALL,OldTicks[OldTicksCount-500].time_msc);
  for(int i=0;i!=ArraySize(OldTicks);++i)
    Test(OldTicks[i]);
}

Sembra essere una risposta per accedere all'arrayOldTicks, ma non so perché. Sostituire il risultato del ritorno della funzione con la dimensione dell'array non aiuta. Cosa fare al riguardo, sconosciuto.

 

Costruire 2280. Perché quando si esegue un'ottimizzazione, ad esempio l'ottimizzazione genetica, tutti i campi nella scheda Impostazioni diventano grigi e non possono essere modificati, ma il campo per cui si sta ottimizzando (come Criterio massimo personalizzato) rimane attivo? Il criterio può essere cambiato nel mezzo dell'ottimizzazione o è un bug?

P.S. Hm, non sembra che si ripeta sempre.

P.P.S. Ho capito come ripetere. Inizialmente, dopo aver eseguito il test, il pulsante va in uno stato di disabilitazione. Ma ho la finestra delle impostazioni inferiori un po' compressa in altezza, di conseguenza c'è uno scorrimento verticale. Se si scorre verso l'alto che il criterio non è più visibile, e poi si scorre di nuovo verso il basso, si può trovare di nuovo denudato.
Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...