![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
Come si fa?
Ha solo riprodotto i freni quando 6/8 agenti erano in funzione.
Ha solo riprodotto i freni quando 6/8 agenti erano in funzione.
Cioè il problema quando la CPU viene caricata.
MQ-Demo, 20 grafici, b2656. Solo Terminal è in esecuzione sulla macchina, Tester non è in esecuzione.
Ha solo riprodotto i freni quando 6/8 agenti erano in funzione.
Cioè il problema è quando la CPU viene caricata.
È un'informazione nuova per te?
È un'informazione nuova per te?
Non capisco bene perché sia impossibile aggirare questi ritardi di carico della CPU. Probabilmente è incompetente a farlo.
Tuttavia, di seguito è riportato un test pulito che mostra il problema della rilevanza dei dati di prezzo in MT5. Ho fornito il codice con i commenti. In breve, i tick sono presi tramite SymbolInfoTick/stack e controllati tra loro. In particolare, per evitare lacune e grandi ritardi tra tick identici provenienti da fonti diverse.
Risultato (solo un MT5-b2656 in esecuzione sulla macchina, carico della CPU intorno a zero, un grafico, Tester non utilizzato).
Si prega di confermare la riproduzione.
Un totale intermedio per una macchina che si scarica velocemente.
Domanda agli sviluppatori.
Supponiamo che SymbolInfoTick sia stato eseguito per 5 ms. Il tick corrisponderà all'ora corrente o a 5 ms prima?
I freni di SymbolInfoTick sono chiusi. Il risultato è questo.
Se la CPU è sovraccarica (come Optimize non anche su tutti i core), SymbolInfoTick può richiedere fino a decine di millisecondi per essere completato. Non c'è una risposta al perché questa funzione più popolare del Terminale non scatti regolarmente. Se possibile, fate delle istantanee. E non dimenticate che anche a carico zero della CPU la funzione OnTick può funzionare decine di millisecondi dopo un tick che arriva al terminale.
Tutto sommato, abbastanza triste, ma non può preoccupare chi commercia in modo primitivo.
I freni di SymbolInfoTick sono chiusi. Il risultato è questo.
Se la CPU è sovraccarica (come Optimize non anche su tutti i core), SymbolInfoTick può richiedere fino a decine di millisecondi per essere completato. Non c'è una risposta al perché questa funzione più popolare del Terminale non scatti regolarmente. Se possibile, fate delle istantanee. E non dimenticate che anche a carico zero della CPU la funzione OnTick può funzionare decine di millisecondi dopo un tick che arriva al terminale.
Tutto sommato, abbastanza sfortunato, ma non può infastidire coloro che commerciano in modo primitivo.
Per chi commercia "non primitivo": l'hardware deve essere all'altezza del compito.
"non anche su tutti i core" - stai parlando di "6/8"? cioè 6 processi, e ognuno di loro carica al 100% un core della CPU per la durata del test? E ci sono solo 4 core fisici? E sinceramente sorpreso che su tale sfondo il test "ritardi"?
Se questo è davvero il suo livello di comprensione, allora: "Impara, impara e impara ancora".
Se volete violentare la CPU con 16-20 threads - comprate una CPU con 20 core fisici almeno.
Per chi commercia "non primitivo": l'hardware deve essere all'altezza del compito.
"non anche su tutti i core" - stai parlando di "6/8"? Voglio dire 6 processi, e ognuno di loro carica al 100% un core della CPU per tutto il tempo del test? E ci sono solo 4 core fisici? E sinceramente sorpreso che su tale sfondo il test "ritardi"?
Se questo è davvero il suo livello di comprensione, allora: "Impara, impara e impara ancora".
Se volete violentare la CPU con 16-20 threads - comprate una CPU con 20 core fisici almeno.
Sono sicuro di poter dimostrare che ottenere i vostri prezzi attuali viene attuato molto lentamente. Il carico della CPU crea tale lentezza solo a causa di una scorretta implementazione della funzione più importante in MQL5.
Sono sicuro di poter dimostrare che la tua implementazione per ottenere i prezzi attuali è molto lenta. Il carico della CPU crea solo tali rallentamenti a causa della scorretta implementazione della funzione principale in MQL5.
Codice di prova:
Provalo.