Errori, bug, domande - pagina 1943

 
Anton Ohmat:

2 domande.

1. Come visualizzare i valori di stop in MT5 come era in MT4. È diventato molto scomodo. Dal momento che non posso nemmeno vedere la cronologia delle fermate per un accordo. Sono solo visualizzati separatamente negli ordini, posso controllarli in qualche modo?

2. Quali quotazioni usa l'agente durante il test - il mio terminale o le mie quotazioni scaricate dal simbolo? Lo chiedo perché ho notato spesso delle differenze tra i risultati del test dell'agente e quelli del mio PC

1. Non c'è storia di modifica di TakeProfit e StopLoss. Il valore corrente di TakeProfit e StopLoss è sempre visualizzato. Se vuoi vedere come si sono mossi TakeProfit e StopLoss, fallo tu stesso. Grazie al cielo ci sono le proprietàPOSITION_REASON,DEAL_REASON eORDER_REASON

Lo Strategy Tester utilizza la cronologia delle transazioni dal server delle transazioni a cui si è connessi nel terminale.


Anton Ohmat:
E una domanda. È possibile specificare qualcosa nell'EA durante il test in modo che il backtest selezioni subito, per esempio, l'uscita degli ordini e delle operazioni per default. Non è conveniente dover cliccare 100-200 volte all'ora durante il debug.

No, non potete.

Anton Ohmat:

Sembra che il problema sia che gli oggetti non vengono visualizzati sullo schermo durante un singolo test, solo durante la visualizzazione gli oggetti vengono visualizzati sullo schermo. Il terminale si è aggiornato oggi ((((((

Forse puoi testarlo di più prima di aggiornare il software. Mi ci sono volute un paio d'ore prima di pensare che fosse un difetto del terminale


Prima di chiamare qualcosa "glitch", dovresti leggere la documentazione(Caratteristiche dei test - Trading algoritmico, trading robot) - leggi tutta la sezione.

AntonOhmat:

Un problema comune. Quando 1-2 agenti si bloccano e non contano nulla. Mi sto stancando di questo problema - l'intero test si blocca, il che significa la perdita di tempo e denaro sul test(.

Sono davvero stufo di questo problema - c'è un modo per sistemarlo, per esempio, se un agente conta più lentamente di altri 200-300 agenti, allora o non aspettarlo o escluderlo completamente. I test falliscono su 500-600 corse.

Come via d'uscita dalla situazione - spegnere e riaccendere manualmente e tutto funziona fino a qualche agente lento e poi tutto da capo.

Lavora con il tuo codice - 99,9% - hai un registro pieno di errori come "nessun denaro per aprire una posizione".

Anton Ohmat:

Si prega di consigliare come setacciare i valori con grande drawdown dai risultati di ottimizzazione, come era in mt4


Strategy Tester -> scheda "Optimization" -> doppio clic sul titolo della riga "Drawdown, %" ordinerà i risultati del test per aumento/diminuzione del drawdown.

 
Anton Ohmat:

Un problema comune. Quando 1-2 agenti riagganciano e non contano nulla. Come risultato, l'intero test si blocca, rispettivamente, perdita di tempo e denaro sul test(.

Davvero stufo di questo problema - c'è un modo per risolverlo, per esempio, se un agente conta più lentamente di altri 200-300 agenti, allora o non aspetta o lo esclude completamente. I test si bloccano su 500-600 esecuzioni.

Come via d'uscita - spegnere e riaccendere manualmente e tutto funziona fino a qualche agente in ritardo e poi di nuovo tutto

Prova a fare OrderSend solo dopo cheOrderCheck ha avuto successo. Se non funziona, vai a SR.

 

L'Expert Advisor è compilato sotto 1641, che ha una storia di trading veloce.

È possibile durante l'ottimizzazione arrivare all'agente della build 1596, dove la cronologia funziona MOLTO lentamente, e quindi l'ottimizzazione viene rallentata molte volte?

 

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

Biblioteche: TesterBenchmark

fxsaber, 2017.07.24 14:13

Prendiamo l'EA dalla consegna ed eseguiamolo nel tester, ottenendo questi dati di performance

------
OnTesterInit
i = 0 Pass = 0 OnTester = 2.231 s.: Count = 3387955, 1518581.4 unit/sec, Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1641
i = 1 Pass = 1 OnTester = 2.214 s.: Count = 3387955, 1530241.6 unit/sec, Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1641
iMin = 1 Results[iMin] = 2.214 s.
iMax = 0 Results[iMax] = 2.231 s.
Amount = 2 Mean = 2.223 s. - 79.08%
OnTesterDeinit
------
Interval = 5.621 s., Count = 0, 0.0 unit/sec

Ora eseguiamo lo stesso EA, ma usando Trade.mqh

------
OnTesterInit
i = 0 Pass = 0 OnTester = 3.330 s.: Count = 3387955, 1017403.9 unit/sec, Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1641
i = 1 Pass = 1 OnTester = 3.475 s.: Count = 3387955, 974951.1 unit/sec, Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1641
iMin = 0 Results[iMin] = 3.330 s.
iMax = 1 Results[iMax] = 3.475 s.
Amount = 2 Mean = 3.402 s. - 89.73%
OnTesterDeinit
------
Interval = 7.584 s., Count = 0, 0.0 unit/sec

Si è scoperto che Trade SB è 1,5 volte più lento di MQL5 puro!

Ho pensato che questa fosse la ragione, così ho fatto una piccola correzione in Trade.mqh

//+------------------------------------------------------------------+
//| Access functions PositionSelect(...)                             |
//+------------------------------------------------------------------+
bool CPositionInfo::Select(const string & symbol)
  {
   return(PositionSelect(symbol));
  }

Ma il rallentamento della variante SB non è scomparso.

Dov'è la ragione della lentezza del SB?

 

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

Biblioteche: TesterBenchmark

fxsaber, 2017.07.24 14:24

Quella era la modalità di ottimizzazione. E ora QUESTO stesso EA, ma in modalità di esecuzione singola

Core 1  2017.07.21 23:59:59   Interval = 5.140 s., Count = 3387955, 659135.2 unit/sec
Core 1  EURUSD,M1: 3387955 ticks, 52608 bars generated. Test passed in 0:00:05.164.

L'esecuzione singola sull'agente locale è 2,3 volte più lenta che su QUESTO stesso agente, ma durante l'ottimizzazione!


Forse è la lentezza del tester, quindi vediamo cosa mostrerà il profiling di OnTick (i problemi di esecuzione e altri ambienti di trading non influiranno sul risultato) nelle modalità Optimization e Single Run.


Ottimizzazione

------
OnTesterInit
i = 0 Pass = 0 OnTester = 2.910 s.: OnTick Profiler: Count = 3387955, Interval = 0.969 s., 3496753.0 unit/sec , Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1641
i = 1 Pass = 1 OnTester = 2.862 s.: OnTick Profiler: Count = 3387955, Interval = 0.952 s., 3559797.1 unit/sec , Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1641
iMin = 1 Results[iMin] = 2.862 s.
iMax = 0 Results[iMax] = 2.910 s.
Amount = 2 Mean = 2.886 s. - 78.06%
OnTesterDeinit
------
Interval = 7.394 s., Count = 0, 0.0 unit/sec


Passaggio singolo

Core 1  2017.07.21 23:59:59   Interval = 6.149 s. (Profiler: Count = 3387955, Interval = 4.018 s., 843148.2 unit/sec)
Core 1  EURUSD,M1: 3387955 ticks, 52608 bars generated. Test passed in 0:00:06.162.


L'esecuzione netta di OnTick stesso è 4,2 volte più lenta in modalità Single Run che in modalità Optimize. E questo sullo stesso agente locale!

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

Biblioteche: TesterBenchmark

fxsaber, 2017.07.24 14:33

Stessa situazione anche in MT4. Probabilmente i freni in 4 sono dovuti alla formazione di tronchi durante il Single pass.

 

Se si applica un indicatore MT5 a un grafico che permette di selezionare i colori e poi lo si ricompila, i colori vengono riportati all'originale e le altre impostazioni rimangono.

Il motivo per cui i colori vengono azzerati è estremamente scomodo, soprattutto se l'indicatore è MTF e i colori sono legati al TF.

 
Lavora con il tuo codice - 99,9% - hai un registro pieno di errori come "nessun denaro per aprire una posizione".

Mi sono seduto e ho aspettato di vedere cosa avrebbe restituito l'agente lento. Alla fine ha restituito l'errore INIT_PARAMETERS_INCORRECT (nessuna operazione eseguita). Il che, nel mio caso, indica che i parametri di input non vanno bene. Quindi con 99 probabilità su 100 posso dire che qualcuno ha semplicemente inserito un vecchio portatile nel sistema. L'idea diventa senza senso per questo. Osservato in MQL5 Cloud USA


È nei registri

Passaggio genetico MQL5 Cloud USA (0, 206) testato con errore "parametri di input errati" a 0:00:00.359 (PR 142)

 

Domanda per gli sviluppatori (mi scuso se vi sto annoiando)

Non capisco - il mio algoritmo genetico dice 12000 passaggi, ma i miei agenti in realtà eseguono solo 9000 passaggi. - Cosa succede ad altri 3000 risultati?

 
Prima di chiamare qualcosa "glitch" si dovrebbe studiare la documentazione (Особенности тестирования - Алгоритмический трейдинг, торговые роботы) - leggere l'intera sezione.
Графические объекты при тестировании

Во время тестирования/оптимизации не осуществляется построение графических объектов. Таким образом, при обращении к свойствам созданного объекта во время тестирования/оптимизации эксперт получит нулевые значения.

Данное ограничение не распространяется на тестирование в визуальном режиме.
Quindi, come posso vedere se il robot ha messo bene gli stop sul grafico a parte la visualizzazione? La visualizzazione è lenta (
 
fxsaber:

L'Expert Advisor è compilato sotto 1641, che ha una storia di trading veloce.

È possibile durante l'ottimizzazione arrivare all'agente della build 1596, dove la cronologia lavora MOLTO lentamente, e quindi l'ottimizzazione viene rallentata molte volte?

No, i compiti non vengono distribuiti ai vecchi agenti nei cludi.