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

 
traveller00:
Sì, ho copiato dai parametri e ho visto quale modulo si aspetta di vedere. Ma non è molto conveniente gestire tali valori. Ecco perché ho chiesto se è possibile introdurre lì il supporto per i formati di data, come nel sorgente.

La persona sta modificando i file del set?


Se i datetime sono visualizzati (set-files, CTRL+C tester, tpl-files e probabilmente qualcos'altro) come una stringa invece di un numero, l'intera convenienza di analizzare questi dati crollerà.

Ora ci sono solo tre tipi di dati di input: doppio, lungo e stringa. I primi due sono sempre numeri. Questo include non solo datetime, ma anche color, enum e tutto tranne le stringhe. Questo è super conveniente!


Creare un'entità in più, rendendo così inutilizzabile un sacco di codice, non è molto sensato. Ci sono commenti. Ecco un esempio di un set generato automaticamente.

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

Librerie: TesterCache

fxsaber, 2019.11.11 04:45

; saved on 2019.11.13 19:40:01
; Experts\Examples\MACD\MACD Sample LImitTP.ex5
; EURUSD
; 2019.09.01 - 2019.11.13
; 479, 10, Max, 47.92, -253.60
;
InpLots=0.1
InpTakeProfit=200||10||5||500||Y
InpTrailingStop=290||30||10||300||Y
InpMACDOpenLevel=5||5||5||200||Y
InpMACDCloseLevel=180||5||5||200||Y
InpMATrendPeriod=8||1||1||200||Y
;
; Pass = 1838
; initial_deposit = 10000.0
; withdrawal = 0.0
; profit = 479.15
; grossprofit = 479.15
; grossloss = 0.0
; maxprofit = 99.8
; minprofit = 0.0
; conprofitmax = 479.15
; maxconprofit = 479.15
; conlossmax = 0.0
; maxconloss = 0.0
; balance_min = 10000.0
; maxdrawdown = 0.0
; drawdownpercent = 0.0
; reldrawdown = 0.0
; reldrawdownpercent = 0.0
; equity_min = 9997.700000000001
; maxdrawdown_e = 253.6000000000004
; drawdownpercent_e = 2.457388152985982
; reldrawdown_e = 253.6000000000004
; reldrawdownpercnt_e = 2.457388152985982
; expected_payoff = 47.91500000000001
; profit_factor = 1.797693134862316 e+308
; recovery_factor = 1.889392744479493
; sharpe_ratio = 1.069726339729858
; margin_level = 1.797693134862316 e+308
; custom_fitness = 0.0
; deals = 15
; trades = 10
; profittrades = 10
; losstrades = 0
; shorttrades = 6
; longtrades = 4
; winshorttrades = 6
; winlongtrades = 4
; conprofitmax_trades = 10
; maxconprofit_trades = 10
; conlossmax_trades = 0
; maxconloss_trades = 0
; avgconwinners = 10
; avgconloosers = 0
; 
; version = 515
; copyright = Copyright 2000-2019, MetaQuotes Software Corp.
; name = TesterOptCache
; header_size = 2526
; record_size = 328
; expert_name = MACD Sample LImitTP
; expert_path = Experts\Examples\MACD\MACD Sample LImitTP.ex5
; server = MetaQuotes-Beta
; symbol = EURUSD
; (ENUM_TIMEFRAMES)period = PERIOD_M1
; date_from = 2019.09.01 00:00:00
; date_to = 2019.11.13 00:00:00
; date_forward = 1970.01.01 00:00:00
; opt_mode = 1
; ticks_mode = 4
; last_criterion = 0
; msc_min = 501
; msc_max = 2342
; msc_avg = 801
; group = demo (netting)
; trade_currency = USD
; trade_deposit = 10000
; trade_condition = 0
; trade_leverage = 100
; trade_hedging = 1
; trade_currency_digits = 2
; trade_pips = 0
; parameters_size = 28
; parameters_total = 6
; opt_params_size = 40
; opt_params_total = 5
; dwords_cnt = 0
; snapshot_size = 0
; passes_total = 0
; passes_passed = 2510

Non so gli altri, ma io trovo comodo quando il file del set contiene tutte le informazioni. Si fa presto a capire cos'è, da dove viene e quanto.


Non è abbastanza?


ZZY Si dovrebbe ricordare che datetime e ottimizzato, è possibile impostare Start, Step, Stop. Dove Step, ovviamente, anche nella GUI è impostato in secondi.

 
Intendevo copiare nel buffer con CTRL+C per lasciare il numero com'era. Ma l'incollaggio con CTRL+V dovrebbe essere esteso per capire sia il vecchio formato (essenzialmente ulong) che il nuovo formato di stringa. Questo non dovrebbe rompere nulla, ma lo espanderà per coloro che vogliono specificare una stringa invece di un numero.
 
traveller00:
Intendevo copiare nel buffer con CTRL+C per lasciare il numero com'era. Ma per estendere l'incolla con CTRL+V per capire sia il vecchio formato (essenzialmente ulong) che il nuovo formato di stringa. Questo non dovrebbe rompere nulla, ma lo espanderà per coloro che vogliono specificare una stringa invece di un numero.

Buon chiarimento. Non romperà davvero nulla. Davvero, non conosco persone che usano CTRL+V per impostare la data.

 
fxsaber:

Tuttavia, non conosco persone che usano CTRL+V per impostare la data.

Si tratta piuttosto di impostare non la data, ma i parametri in generale, compreso il luogo in cui si trova la data. In primo luogo, per renderlo coerente, dato che mql stesso mantiene il formato della data, e in secondo luogo, per renderlo chiaro, per non moltiplicare i commenti. Per i miei test, genera i parametri di input, che dovrebbero essere valutati a occhio, e poi posso aggiungerli.

Slava:
Forse. Lo faremo.

Possiamo allo stesso tempo supportare l'inserimento (tramite CTRL+V) di parametri di input per Expert Advisor? Per i test, è inserito perfettamente in Parameters. Tuttavia, quando non si tratta di testare ma semplicemente di aggiungere un EA a un grafico, la scheda Input Parameters non sembra supportare l'incollaggio e devo compilare gli stessi parametri manualmente. Grazie.

 
traveller00:

Possiamo anche supportare l'inserimento (tramite CTRL+V) di parametri di ingresso per l'EA? È inserito perfettamente per i test in Parametri. Tuttavia, quando non si tratta di testare ma semplicemente di aggiungere un EA a un grafico, la scheda Input Parameters non sembra supportare l'incollaggio e devo compilare gli stessi parametri manualmente. Grazie.

E CTRL+C.

 

Sviluppatori, ciao!

Per qualche ragione, questo controllo in OnTimer non funziona sempre nello strategy tester quando si esegue l'EA (non so cosa c'entri):

    if (MQLInfoInteger(MQL_PROFILER) == 0 && MQLInfoInteger(MQL_TESTER) == 0) {
        Print("You can't use this version of EA in trade mode!");
        return;
    }

OnInit sembra funzionare sempre bene.

PS. Allo stesso tempo, il commercio non funziona sempre. Aggiungerò i log per le modalità di test sul perché il trading non è permesso. Un glitch fluttuante di qualche tipo.
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 

Ho affrontato il fatto che gli oggetti grafici in MT5 tester in modalità di visualizzazione non sono disegnati nel modo in cui pensavo sarebbero stati. Ho semplificato il test Expert Advisor al limite, dovrebbe costruire un rettangolo con coordinate prese sulla base della 50a e 45a barra. Il codice è nell'allegato, ma tutta la logica è in una linea:

if (!IsNewBar()) return;
RectangleCreate(0, "5BarZone", 0, iTime(NULL,0,50), iHigh(NULL,0,50), iTime(NULL,0,0), iLow(NULL,0,45), clrGreen, STYLE_SOLID, 1, true, true);
ChartRedraw(0);

L'EA dovrebbe ridisegnare tale canale su ogni nuova barra del TF corrente. L'immagine dovrebbe apparire così:


In realtà, il rettangolo si estende caoticamente sia in lunghezza che in larghezza e l'immagine appare così:


Il codice dell'EA funzionante contiene molti più oggetti e ognuno di essi è distorto ancora di più, risultando in un pasticcio.

Inoltre, se eseguiamo un test visivo dell'EA di prova a bassa velocità, il rendering è quasi sempre corretto. Quando eseguoun Expert Advisor di prova a velocitàmassima o quasi, o eseguo un EA reale con molti oggetti anche a velocità minima, ottengo le distorsioni sopra descritte.

Per favore consigliatemi qual è il problema e se può essere risolto. Ho provato a cercare una risposta ma non ci sono riusciti.

Molto apprezzato qualsiasi aiuto in qualsiasi modo.

File:
 
Andrey Pogoreltsev:

Sviluppatori, ciao!

Per qualche ragione, il controllo OnTimer non funziona sempre nello strategy tester quando si esegue l'EA (non so cosa c'entri):

OnInit sembra funzionare sempre bene.

PS. Allo stesso tempo, il commercio non funziona sempre. Aggiungerò i log per le modalità di test sul perché il trading non è permesso. Un glitch fluttuante di qualche tipo.
Sostituire && con ||.
 
Grigori.S.B:

Ho affrontato il fatto che gli oggetti grafici in MT5 tester in modalità di visualizzazione non sono resi nel modo in cui pensavo sarebbero stati. Ho semplificato il test Expert Advisor al limite, dovrebbe costruire un rettangolo con coordinate prese sulla base della 50a e 45a barra. Il codice è nell'allegato, ma tutta la logica è in una linea:

L'EA dovrebbe ridisegnare tale canale su ogni nuova barra del TF corrente. L'immagine dovrebbe apparire così:


In realtà, il rettangolo si estende caoticamente sia in lunghezza che in larghezza e l'immagine appare così:


Il codice dell'EA funzionante contiene molti più oggetti e ognuno di essi è distorto ancora di più, risultando in un pasticcio.

Inoltre, se eseguiamo un test visivo dell'EA di prova a bassa velocità, il rendering è quasi sempre corretto. Tuttavia, quando eseguoun Expert Advisor di prova a velocitàmassima o quasi, o eseguo un EA reale con molti oggetti anche a velocità minima, ottengo le distorsioni sopra descritte.

Per favore consigliatemi qual è il problema e se può essere risolto. Ho provato a cercare una risposta ma non ci sono riusciti.

Molto apprezzato qualsiasi aiuto in qualsiasi modo.

Prova semplicemente a cambiare le coordinate di un oggetto creato una volta
 
Grigori.S.B:

Ho affrontato il fatto che gli oggetti grafici in MT5 tester in modalità di visualizzazione non sono resi come mi aspettavo. Ho semplificato il test Expert Advisor al limite, dovrebbe costruire un rettangolo con coordinate prese sulla base della 50a e 45a barra. Il codice è nell'allegato, ma tutta la logica è in una linea:

L'EA dovrebbe ridisegnare tale canale su ogni nuova barra del TF corrente. L'immagine dovrebbe apparire così:


In realtà, il rettangolo si estende caoticamente sia in lunghezza che in larghezza e l'immagine appare così:


Il codice dell'EA funzionante contiene molti più oggetti e ognuno di essi è distorto ancora di più, risultando in un pasticcio.

Inoltre, se eseguiamo un test visivo dell'EA di prova a bassa velocità, il rendering è quasi sempre corretto. Tuttavia, quando eseguo un Expert Advisor di prova a velocità massima o quasi, o eseguo un EA reale con molti oggetti anche a velocità minima, ottengo le distorsioni sopra descritte.

Per favore consigliatemi qual è il problema e se può essere risolto. Ho provato a cercare una risposta ma non ci sono riusciti.

Molto apprezzato qualsiasi aiuto in qualsiasi modo.

Controllare il codice per errori, molto probabilmenteERR_OBJECT_ALREADY_EXISTS.

O dovete cancellare l'oggetto prima di ricrearlo o

Slava:
Prova semplicemente a cambiare le coordinate di un oggetto una volta creato