un'altra domanda - ho capito che in MT5 il primo tempo di copia del buffer CopyClose dipende da:
1. se prima non ricevevi affatto le quotazioni di un ticker, non aprivi un grafico ecc. (dipende dal ping, dalla velocità di internet, dal disco rigido, dalla preparazione del file Bases/Broker/history/ticker/cache/)
2017.04.1111:27:38.828 время копирования буфера (EURUSD,M1) проход = 0 время= 83555812017.04.1111:27:38.828 время копирования буфера (EURUSD,M1) проход = 1 время= 1083
2. se le quotazioni sono state ricevute in precedenza e poi il terminale è stato ricaricato, sempre che non sia stato aperto nessun grafico di questo ticker (preparazione del file Bases/Broker/History/Ticker/Cache/)
2017.04.1111:29:14.672 время копирования буфера (EURUSD,M1) проход = 0 время= 5993962017.04.1111:29:14.734 время копирования буфера (EURUSD,M1) проход = 1 время= 259/////////////////////////////2017.04.1219:32:46.489 время копирования буфера (FULT,M5) проход = 0 время= 981672017.04.1219:32:46.557 время копирования буфера (FULT,M5) проход = 1 время= 1552017.04.1219:32:46.557 время копирования буфера (FULT,M5) проход = 2 время= 14
il tempo è 10-15 volte inferiore a p.1
per il confronto il tempo di accesso in МТ4 secondo il punto 2, cioè dopo il reset del terminale
2017.04.1219:30:38.831 время копирования буфера EURUSD,M1: проход = 2 время= 2762017.04.1219:30:38.831 время копирования буфера EURUSD,M1: проход = 1 время= 4342017.04.1219:30:38.831 время копирования буфера EURUSD,M1: проход = 0 время= 22602017.04.1219:30:38.816 время копирования буфера EURUSD,M1: initialized
2017.04.1219:30:38.666 время копирования буфера EURUSD,M1 inputs: Pair=USDCAD;
cioè il tempo dopo il riavvio del terminale MT4 è di qualche ordine di grandezza inferiore.
Questa volta ho controllato tutto su Windows, senza SSD!
Quando ho ottenuto le citazioni, il terminale non è stato riavviato, i dati sono stati acceduti
2017.04.1111:35:30.648 время копирования буфера (EURUSD,M1) проход = 0 время= 892017.04.1111:35:30.648 время копирования буфера (EURUSD,M1) проход = 1 время= 42
Ho capito bene che dopo aver caricato la cache, il terminale ha bisogno di molto meno tempo per ulteriori richieste (a partire dalla 2a richiesta)?
Possiamo in qualche modo ridurre il tempo della prima chiamata dopo il riavvio del terminale per renderlo come in MT4?
Il codice era in https://www.mql5.com/ru/forum/1111/page1870#comment_4856899
Ho un'altra domanda - ho capito che su MT5 il primo tempo di copia dello stesso buffer CopyClose dipende da:
Avete un metodo di prova molto sporco, poiché non c'è alcuna descrizione dell'ambiente e del metodo di riproduzione.
Non specificato:
limiti della barra nella finestra
volumi di dati effettivi nei database terminali
esattamente quale server, i database sono su disco? tutti i dati devono essere garantiti su disco.
piattaforma e bit rate di test (sotto wine? è necessario specificare nei dettagli)
finestre aperte
Senza questo le conclusioni sono infondate.
Per esempio guardate EURUSD M1 - MT5 ha più di 6 milioni di barre lì (se la modalità illimitata ai grafici), ma MT4 quante ne ha? Un paio di decine di migliaia di barre M1 nel database attuale?
Avete un metodo di prova molto disordinato, poiché non ci sono affatto descrizioni dell'ambiente e del metodo di riproduzione.
Non specificato:
limiti di barre nella finestra
volumi di dati effettivi nei database terminali
cos'è esattamente il server, le basi sono su disco? tutti i dati devono essere garantiti su disco.
piattaforma e bit rate di test (sotto wine? è necessario specificare nei dettagli)
disponibilità di finestre aperte
Senza questo le conclusioni sono infondate.
Mi è stata posta la maggior parte delle domande nel mio post, nessun problema, vi darò tutti i dati ora.
prima di tutto la risposta al
какой точно сервер, находятся ли базы на диске? все данные обязаны быть гарантированно на диске.
MQ-demo server, i dati vengono caricati, come stiamo parlando del punto 2 e del punto 3 nel post precedente. Con il punto 1 tutto è chiaro, e non ci sono domande - come è stato scritto - i dati vengono caricati, la cache si forma sul percorso specificato.
лимиты баров в окне
MT4
MT5
фактические объемы данных в базах терминалов
MT4
MT5
платформа и битность тестирования (под вайном? нужно указывать детально)
win XP 32bit, tutte le build di MT tutte le ultime
наличие открытых окон
MT4 - aprire 1 grafico, controllare con un altro simbolo
MT5 - 1 grafico aperto, controllare con un altro simbolo
ripetere, ricaricare il terminale, inviare lo script al grafico, selezionare ALTRO simbolo, i cui dati sono stati caricati PRIMA di ricaricare il terminale
MT4
2017.04.1221:18:31.575 время копирования буфера EURUSD,M1: проход = 2 время= 362017.04.1221:18:31.575 время копирования буфера EURUSD,M1: проход = 1 время= 2822017.04.1221:18:31.575 время копирования буфера EURUSD,M1: проход = 0 время= 18712017.04.1221:18:31.575 время копирования буфера EURUSD,M1: initialized
2017.04.1221:18:31.405 время копирования буфера EURUSD,M1 inputs: Pair=GBPUSD;
MT5
2017.04.1221:19:47.735 время копирования буфера (EURUSD,H1) проход = 0 время= 3039512017.04.1221:19:47.735 время копирования буфера (EURUSD,H1) проход = 1 время= 292017.04.1221:19:47.735 время копирования буфера (EURUSD,H1) проход = 2 время= 25
GBPUSD, solo M1, lo script è lanciato anche su di esso
solo GBPUSD, M1, lo stesso script viene lanciato su di esso
I risultati sono freddi, dopo l'avvio del terminale
#0 pass, 1000 records in680 msc
#1 pass, 1000 records in2 msc
#2 pass, 1000 records in2 msc
#0 pass, 1000 records in113497 msc
#1 pass, 1000 records in3 msc
#2 pass, 1000 records in3 msc
I risultati sono tiepidi, la seconda corsa subito dopo la prima
#0 pass, 1000 records in13 msc
#1 pass, 1000 records in2 msc
#2 pass, 1000 records in2 msc
#0 pass, 1000 records in14 msc
#1 pass, 1000 records in2 msc
#2 pass, 1000 records in2 msc
I file di prova sono allegati e tutti i tempi sono in microsecondi (non millisecondi, 1 millisecondo = 1000 microsecondi).
Ora le conclusioni:
L'unica differenza è la velocità di inizializzazione della cache dei grafici - 0,6 ms per MT4 contro 113 ms per MT5
Nessun problema qui - il sollevamento costa sempre risorse. Soprattutto quando si usano architetture concettualmente diverse: MT5 ha cache più complesse (i file cache\*.hc sono costruiti da *.hcc originali) per il bene della scalabilità + controllo obbligatorio della sincronizzazione completa con i dati del server (chunks *.hcc binari).
Richieste ripetute mostrano una velocità identica - 2-3 microsecondi per la copia dei dati
Non ci sono fallimenti nell'implementazione di entrambi i terminali e tutto funziona velocemente.
Nel complesso, i risultati sono quelli che ho mostrato nei miei post.
Ho fatto dei test su uno regolare.
Eppure i risultati tra MT4 e MT5 sono quasi 200 volte diversi (a causa di -deve controllare la sincronizzazione completa con i dati del server e il ping? ).
Mi sono abituato prima di postare qui che probabilmente è una caratteristica del terminale. Posso anche conviverci, ma è difficile in alcuni punti. Per esempio, i prezzi sono disponibili solo tramite CopyClose, non sono disponibili tramite SymbolInfoDouble o tramite MqlTick fino a quando il simbolo viene aggiunto al mercato che guarda, quindi questo script gira "all'infinito" molto dopo l'inizio del terminale. Questo è solo un esempio.
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.
un bug quando si usa uno styler?
Supponiamo di scrivere usando la scheda.
Non c'è nessun errore.
poi usiamo lo styler, otteniamo
cioè, lo styler cancella lo spazio traTWO_DIM(10000)
Risultato
Qual è il modo giusto?
1. se prima non ricevevi affatto le quotazioni di un ticker, non aprivi un grafico ecc. (dipende dal ping, dalla velocità di internet, dal disco rigido, dalla preparazione del file Bases/Broker/history/ticker/cache/)
2. se le quotazioni sono state ricevute in precedenza e poi il terminale è stato ricaricato, sempre che non sia stato aperto nessun grafico di questo ticker (preparazione del file Bases/Broker/History/Ticker/Cache/)
il tempo è 10-15 volte inferiore a p.1
per il confronto il tempo di accesso in МТ4 secondo il punto 2, cioè dopo il reset del terminale
cioè il tempo dopo il riavvio del terminale MT4 è di qualche ordine di grandezza inferiore.
Questa volta ho controllato tutto su Windows, senza SSD!
Quando ho ottenuto le citazioni, il terminale non è stato riavviato, i dati sono stati acceduti
Ho capito bene che dopo aver caricato la cache, il terminale ha bisogno di molto meno tempo per ulteriori richieste (a partire dalla 2a richiesta)?
Possiamo in qualche modo ridurre il tempo della prima chiamata dopo il riavvio del terminale per renderlo come in MT4?
Il codice era in https://www.mql5.com/ru/forum/1111/page1870#comment_4856899
Avete un metodo di prova molto sporco, poiché non c'è alcuna descrizione dell'ambiente e del metodo di riproduzione.
Non specificato:
Senza questo le conclusioni sono infondate.
Per esempio guardate EURUSD M1 - MT5 ha più di 6 milioni di barre lì (se la modalità illimitata ai grafici), ma MT4 quante ne ha? Un paio di decine di migliaia di barre M1 nel database attuale?
Avete un metodo di prova molto disordinato, poiché non ci sono affatto descrizioni dell'ambiente e del metodo di riproduzione.
Non specificato:
limiti di barre nella finestra
Senza questo le conclusioni sono infondate.
Mi è stata posta la maggior parte delle domande nel mio post, nessun problema, vi darò tutti i dati ora.
prima di tutto la risposta al
MQ-demo server, i dati vengono caricati, come stiamo parlando del punto 2 e del punto 3 nel post precedente. Con il punto 1 tutto è chiaro, e non ci sono domande - come è stato scritto - i dati vengono caricati, la cache si forma sul percorso specificato.
MT4
MT5
MT4
MT5
win XP 32bit, tutte le build di MT tutte le ultime
MT4 - aprire 1 grafico, controllare con un altro simbolo
MT5 - 1 grafico aperto, controllare con un altro simbolo
ripetere, ricaricare il terminale, inviare lo script al grafico, selezionare ALTRO simbolo, i cui dati sono stati caricati PRIMA di ricaricare il terminale
MT4
MT5
Ecco il mio test con più dettagli e più precisione:
I file di prova sono allegati e tutti i tempi sono in microsecondi (non millisecondi, 1 millisecondo = 1000 microsecondi).
Ora le conclusioni:
Nessun problema qui - il sollevamento costa sempre risorse.
Soprattutto quando si usano architetture concettualmente diverse: MT5 ha cache più complesse (i file cache\*.hc sono costruiti da *.hcc originali) per il bene della scalabilità + controllo obbligatorio della sincronizzazione completa con i dati del server (chunks *.hcc binari).
Non ci sono fallimenti nell'implementazione di entrambi i terminali e tutto funziona velocemente.
Grazie per la vostra risposta.
Nel complesso, i risultati sono quelli che ho mostrato nei miei post.
Ho fatto dei test su uno regolare.
Eppure i risultati tra MT4 e MT5 sono quasi 200 volte diversi (a causa di -deve controllare la sincronizzazione completa con i dati del server e il ping? ).
Mi sono abituato prima di postare qui che probabilmente è una caratteristica del terminale. Posso anche conviverci, ma è difficile in alcuni punti. Per esempio, i prezzi sono disponibili solo tramite CopyClose, non sono disponibili tramite SymbolInfoDouble o tramite MqlTick fino a quando il simbolo viene aggiunto al mercato che guarda, quindi questo script gira "all'infinito" molto dopo l'inizio del terminale. Questo è solo un esempio.