CopyXXX ha la stessa velocità delle funzioni iClose/iOpen/iXXXX. Solo iXXX restituisce un elemento alla volta, mentre CopyXXX ne restituisce molti ed è quindi più efficiente e veloce.
Probabilmente, non consideri che MT4 copia forzatamente _tutta_ la storia del grafico locale nell'ambiente di mercato locale (cache) dell'EA prima di ogni avvio del tick handler. E questo è molto costoso, anche se abbiamo un metodo per l'aggiornamento economico di queste informazioni. La funzione speciale RefreshRates in MQL4 causa il refresh forzato delle cache e della storia del grafico locale.
Chiamare CopyXXX è molto più efficiente, con un meccanismo molto preciso e accurato per la cache dei dati precedentemente richiesti. Per esempio, non c'è bisogno di ri-richiedere la storia profonda ad ogni tick, ma immagazzinarla/scriverla localmente e accedervi il più rapidamente possibile.
Se confrontiamo i vecchi metodi di accesso "diretto" (in realtà non accesso diretto) Open/High/Low/Close e il lavoro con l'array locale doppio locale[xxxx], quest'ultimo è molte volte più veloce. Pertanto, è meglio copiare su se stessi localmente e poi avere un accesso locale veloce ai dati ripetutamente interrogati.
Cosa si intende per "tick handler" - funzioni personalizzate come OnTick? Perché volete copiare l'intera cronologia e non solo i dati che appaiono?
C-4: Cosa si intende per "tick handler" - funzioni personalizzate come OnTick? Perché è necessario copiare tutta la storia e non solo i dati che sono apparsi?
Sì, OnTick/OnStart.
Prendo come una rivelazione per molti che l'accesso diretto al grafico locale in MT4 non è veramente diretto. C'è il doppio del consumo di memoria e delle perdite di sincronizzazione.
Fortunatamente, il refresh della cache è economico, ma causa comunque dei costi di sistema. In MT5 ci siamo completamente liberati della cache locale e l'overhead di sistema prima della chiamata di OnTick/OnStart è minore.
Prendo come una rivelazione per molti che l'accesso diretto al grafico locale in MT4 non è veramente diretto. C'è il doppio del consumo di memoria e delle perdite di sincronizzazione.
Fortunatamente, abbiamo un aggiornamento della cache parsimonioso, ma dà ancora costi di sistema. In MT5 ci siamo liberati completamente della cache locale e l'overhead di sistema prima della chiamata OnTick/OnStart è minore.
Un anno fa stavamo discutendo delle prestazioni dei tester MT4/MT5. L'EA standard "MovingAverage" in MT4 ha eseguito una singola esecuzione in un minuto in condizioni di test simili, mentre in MT5 lo ha fatto in 2:34. Perché questa differenza di scala temporale? La prima cosa che viene in mente è la "modularità" di MT5 e il grande volume di ambiente di trading che MT5 deve tirare durante la corsa.
C-4: Un anno fa abbiamo discusso delle prestazioni dei tester MT4/MT5. L'EA standard "MovingAverage" in MT4 ha eseguito una singola esecuzione in un minuto in condizioni di test simili, mentre in MT5 ha impiegato 2:34. Perché questa differenza di scala temporale? La prima cosa che viene in mente è la "modularità" di MT5 e il grande volume di ambiente di trading che MT5 deve tirare durante la corsa.
Modularità, processo esterno e migliore modellazione dell'ambiente, su misura per l'esecuzione multivaluta.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
CopyXXX ha la stessa velocità delle funzioni iClose/iOpen/iXXXX. Solo iXXX restituisce un elemento alla volta, mentre CopyXXX ne restituisce molti ed è quindi più efficiente e veloce.
Probabilmente, non consideri che MT4 copia forzatamente _tutta_ la storia del grafico locale nell'ambiente di mercato locale (cache) dell'EA prima di ogni avvio del tick handler. E questo è molto costoso, anche se abbiamo un metodo per l'aggiornamento economico di queste informazioni. La funzione speciale RefreshRates in MQL4 causa il refresh forzato delle cache e della storia del grafico locale.
Chiamare CopyXXX è molto più efficiente, con un meccanismo molto preciso e accurato per la cache dei dati precedentemente richiesti. Per esempio, non c'è bisogno di ri-richiedere la storia profonda ad ogni tick, ma immagazzinarla/scriverla localmente e accedervi il più rapidamente possibile.
Se confrontiamo i vecchi metodi di accesso "diretto" (in realtà non accesso diretto) Open/High/Low/Close e il lavoro con l'array locale doppio locale[xxxx], quest'ultimo è molte volte più veloce. Pertanto, è meglio copiare su se stessi localmente e poi avere un accesso locale veloce ai dati ripetutamente interrogati.
Questo non è un indicatore.
Cosa si intende per "tick handler" - funzioni personalizzate come OnTick? Perché è necessario copiare tutta la storia e non solo i dati che sono apparsi?
Sì, OnTick/OnStart.
Prendo come una rivelazione per molti che l'accesso diretto al grafico locale in MT4 non è veramente diretto. C'è il doppio del consumo di memoria e delle perdite di sincronizzazione.
Fortunatamente, il refresh della cache è economico, ma causa comunque dei costi di sistema. In MT5 ci siamo completamente liberati della cache locale e l'overhead di sistema prima della chiamata di OnTick/OnStart è minore.
Sì, OnTick/OnStart.
Prendo come una rivelazione per molti che l'accesso diretto al grafico locale in MT4 non è veramente diretto. C'è il doppio del consumo di memoria e delle perdite di sincronizzazione.
Fortunatamente, abbiamo un aggiornamento della cache parsimonioso, ma dà ancora costi di sistema. In MT5 ci siamo liberati completamente della cache locale e l'overhead di sistema prima della chiamata OnTick/OnStart è minore.
Un anno fa abbiamo discusso delle prestazioni dei tester MT4/MT5. L'EA standard "MovingAverage" in MT4 ha eseguito una singola esecuzione in un minuto in condizioni di test simili, mentre in MT5 ha impiegato 2:34. Perché questa differenza di scala temporale? La prima cosa che viene in mente è la "modularità" di MT5 e il grande volume di ambiente di trading che MT5 deve tirare durante la corsa.
Modularità, processo esterno e migliore modellazione dell'ambiente, su misura per l'esecuzione multivaluta.