![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Se è così, non capisco bene frasi come "Test sullo strumento EURUSD dal grafico GBPUSD". Quale simbolo in questo caso serve come sorgente di segnale e quale ha un gestore di segnale collegato ad esso?
Dalle opzioni disponibili, è logico supporre che il primo simbolo stia lavorando, e che il secondo riceva i segnali e faccia un trade.
Dovete prendere in considerazione un possibile ritardo nella gestione degli eventi, o anche una possibile PERDITA di un evento.
Naturalmente, anche questo deve essere preso in considerazione. In un programma progettato per fare trading automatico, tutto deve essere preso in considerazione. Almeno il più possibile. Al momento ci sono due modalità: Ritardo normale e Arbitrario. Gli sviluppatori hanno già annunciato che porteranno gradualmente il processo di test più vicino alla realtà. Questo è incoraggiante. Le illusioni devono essere tagliate alla radice.
I risultati mostrati sono stati ottenuti in modalità normale. Per questo test, questo è quello che serviva.
papaklass
Dai codici dati non è chiaro come si aprono le posizioni (ordini pendenti o dal mercato). Guarda il tempo di apertura e chiusura delle posizioni nei tuoi test e rispettivamente il prezzo di apertura/chiusura. Presumo che saranno diversi. Questa è la ragione della divergenza dei risultati.
Le posizioni sono aperte dal mercato. La tua ipotesi sarebbe corretta se nessuno dei metodi avesse risultati identici. Ma sul timer i risultati coincidono esattamente.
Yedelkin
Come, il secondo simbolo è la fonte del segnale, sulla base del quale il gestore del segnale negozia? Ma poi si confrontano i segnali provenienti da simboli diversi. Di che tipo di risultati commerciali identici stiamo parlando?
No. La frase "Test su EURUSD dal grafico GBPUSD" significa che sto facendo trading suEURUSD, ma il mio Expert Advisor è sul graficoGBPUSD. Tutti i risultati sono suEURUSD, sono solo passato da un simbolo all'altro.
-----
I dati sono gli stessi, le condizioni non sono cambiate, i parametri sono gli stessi, le modalità di prova sono le stesse. I risultati dovrebbero essere gli stessi. L'unica differenza è su quale strumento è l'Expert Advisor. Abbiamo solo bisogno di implementare il metodo che eseguirà correttamente il test. Ce n'è uno. Questa è la funzione OnTimer() con l'intervallo minimo. Ma è il più lungo. Il prossimo in priorità è OnChartEvent(). Ma produce risultati errati. Forse sto usando questo metodo in modo sbagliato. Qual è il modo giusto allora? Guardando il codice tutto sembra logico, ma non funziona.
tol64:
...... Avete solo bisogno di implementare un metodo che esegua correttamente il test. Ce n'è uno. È la funzione OnTimer() con intervallo minimo. Ma è il più lungo.
Mi sembra che 10 secondi siano un intervallo troppo breve. Se solo le barre generate sono di interesse, l'intervallo dovrebbe essere di almeno un minuto.
Non ha senso accorciarlo, un minuto è un intervallo minimo ragionevole.
La non coincidenza dei risultati quando si aprono posizioni a barre e la coincidenza dei risultati quando si aprono posizioni con il timer, al contrario, conferma la mia ipotesi. Quando si aprono posizioni con il timer (soprattutto dal mercato, piuttosto che con ordini pendenti a un prezzo fisso), il tempo di apertura delle posizioni coincide, e quindi il prezzo coincide. Se aprite le posizioni per barre, allora a causa del fatto che il tempo di formazione delle barre non è lo stesso in diversi grafici, lo spostamento temporale si verifica quando aprite le posizioni. Significa che c'è anche un cambiamento di prezzo. Questo spostamento dà una divergenza di risultati. Confrontate il tempo di apertura delle posizioni e il prezzo al quale sono aperte. Vedrete la differenza.
Questo ha senso.
Ho un'idea in mente: perché non suggeriamo di aggiungere una modalità di test del"prezzo di chiusura" alle meta-quotazioni?
Questo risolverebbe il problema della sincronizzazione delle quotazioni quando si testa su barre formate (non su tick).
Tutto questo è comprensibile.
Ho un pensiero in relazione a tutta questa epopea: dovremmo suggerire di aggiungere una modalità di test del"prezzo di chiusura" alle meta-quotazioni?
Questo risolverebbe i problemi con la sincronizzazione delle quote quando si testa su barre formate (non tick).
No.
Come fareste nella vita reale (non nel tester) a determinare: "Ecco il momento della chiusura della barra"?
No.
Come fareste nella vita reale (non nel tester) a determinare: "Ecco il momento in cui la barra si chiude"?
E non discutere con me - rovinerai solo il tuo karma. ;)
La differenza tra il test con il timer e il test "con i prezzi di chiusura" sarà solo che il campionamento del tempo (e l'omissione dei fine settimana e delle vacanze) può essere eseguito solo una volta - alla generazione del file FXT, dopo di che tutte le ottimizzazioni saranno eseguite utilizzando punti di tempo già pronti che non devono essere calcolati in un timer durante ogni esecuzione.
Dovresti farlo - anche solo per amore della bellezza!
Mi sembra che 10 sec. siano un intervallo troppo breve. Se siete interessati solo alle barre formate, l'intervallo non dovrebbe essere inferiore a un minuto.
Non ha senso accorciarlo, solo per rallentarlo.
Sì, sono d'accordo. Ma sono sceso a 10 secondi passando attraverso le opzioni dell'intervallo D1 (86400 secondi). Qualsiasi cosa sopra i 10 secondi mostrava una discrepanza, più grande era l'intervallo. Per me ho bisogno della massima precisione. Come se la stessa copia dell'Expert Advisor fosse contemporaneamente su tutti i simboli. In linea di principio, si può commerciare così nella vita reale. Ma prima di iniziare a fare trading, devo testare adeguatamente tutto. Prima, mentre scrivevo il sistema in MQL4, stavo testando ogni simbolo separatamente e i dati venivano esportati in Excel. Tutti i calcoli e l'analisi dei risultati ottenuti sono stati eseguiti in Excel. Purtroppo, oggi il terminale non permette di analizzare completamente i risultati ottenuti. Ecco perché ho fatto tutto in Excel.
Questo è, per esempio, ciò di cui ho bisogno per stimare correttamente i risultati dei test:
E poi i risultati di tutti gli strumenti vengono visualizzati su un altro grafico dove posso vedere il risultato aggregato.
E alla fine si applica il sistema di gestione del capitale:
E i parametri possono essere cambiati e il risultato può essere aggiornato. In altre parole, il sistema di gestione del denaro è personalizzabile. E tutto questo in Excel.
Dopo di che ho iniziato a studiare MQL5, perché tutto può essere fatto più velocemente. )) Vorrei che gli sviluppatori del terminale implementassero una tale rappresentazione dei risultati dei test. Sarebbe una piattaforma di trading super globale allora)).
A ore. E non discutere con me - rovinerai solo il tuo karma. ;)
Cosa c'è di sbagliato nell'aprire la prossima barra allora?
La non coincidenza dei risultati quando si aprono posizioni per barra e la coincidenza dei risultati quando si aprono posizioni per timer, al contrario, conferma la mia ipotesi. Quando si aprono posizioni con il timer (soprattutto dal mercato, piuttosto che con ordini pendenti a un prezzo fisso), il tempo di apertura delle posizioni coincide, e quindi il prezzo coincide. Se aprite le posizioni per barre, allora a causa del fatto che il tempo di formazione delle barre non è lo stesso in diversi grafici, lo spostamento temporale si verifica quando aprite le posizioni. Significa che c'è anche un cambiamento di prezzo. Questo spostamento dà una divergenza di risultati. Confrontate il tempo di apertura delle posizioni e il prezzo al quale sono aperte. Vedrete una discrepanza.