Domande su MQL4. - pagina 8

 
Figura 6
File:
zigtester.jpg  16 kb
 
ANK:
Chi sa se questo è corretto?
un file non può essere incluso più di una volta nel codice.
quindi deve essere così:
- o fare diversi file con diversi nomi di variabili globali e funzioni (questa è una versione più debole =)
- o progettare la logica in modo che non ci sia sovrapposizione quando si chiama da funzioni diverse (questo può richiedere un po' di lavoro, ma è una buona soluzione ;)

E non si può dire qualcosa di più esatto senza esempi, descrizioni di errori o codice completo (meglio di tutti) =)
 
L'Expert Advisor e lo script in loop sono in esecuzione nella finestra allo stesso tempo.
È corretto assumere che mentre l'Expert Advisor aspetta che il server risponda a un'operazione di compravendita
lo script continua a lavorare come al solito senza arresti e ritardi, esegue i suoi calcoli (non le operazioni di trading)?
 
SKif:
L'Expert Advisor e lo script in loop sono in esecuzione nella finestra allo stesso tempo.
È corretto assumere che mentre l'Expert Advisor aspetta che il server risponda a un'operazione di compravendita
lo script continua a eseguire il suo corso senza fermate e ritardi, esegue i suoi calcoli (non le operazioni di trading)?
Sì.
sia l'Expert Advisor che lo script lavorano nei loro propri thread.
 
OK, grazie.
Dobbiamo considerare normale quando il tempo di avvio dell'indicatore e dell'EA non corrisponde quando il pulsante dell'EA è acceso?
Forse sto fraintendendo qualcosa o facendo qualcosa di sbagliato, ma ho capito che la differenza di tempo può essere più di 250ms.

Anche. Lo stato del pulsante EA ha qualche effetto sul funzionamento dell'indicatore?
È possibile seguire lo stato di questo pulsante dall'indicatore?
 
Ho fatto una piccola ricerca...

Messo un indicatore nella finestra:
int start() { GlobalVariableSet(GV_Tick, 1); return; }

Metti un EA nella finestra:
int start() { GlobalVariableSet(GV_Knopka, 1); return; }

E uno script con uno snippet come questo:
... T_Tick=0; T_Knopka=0; while (Tick==0 || Knopka==0 ) // Ждём тика и разреш. кнопки советн. { Tick = 0; Knopka = 0; Tick = GlobalVariableGet(GV_Tick ); Knopka = GlobalVariableGet(GV_Knopka ); if (Tick>0 && T_Tick==0)T_Tick=GetTickCount(); if (Knopka>0) { T_Knopka=GetTickCount(); Alert("T_Tick=",T_Tick, " T_Knopka=",T_Knopka, " Запазд= ",T_Knopka-T_Tick); } } ... GlobalVariableSet(GV_Knopka, 0 ); // Обнуляем прошлые события GlobalVariableSet(GV_Tick, 0 ); // Обнуляем прошлые события


Ed ecco i risultati:
Durante il periodo evidenziato in rosso, il mouse si è semplicemente mosso in un cerchio di 50 mm di diametro a 3 giri al secondo.
Non c'è stato alcun impatto sul terminale.

Si scopre che durante un periodo di calma "normale" il ritardo è circa. 20-60 ms, e ancora di più durante il periodo in cui l'utente è in contatto con il terminale.
Inoltre, ho scoperto che la start() dell'indicatore viene avviata nel periodo di ridimensionamento della finestra e quando si passa da una finestra all'altra.
---------------
Mi interessa soprattutto la legalità di questo ritardo, "normale" e "insolito".
E mi piacerebbe avere qualche commento dagli sviluppatori - quanto sia appropriato all'intenzione.
File:
1.png  21 kb
 
Eseguirò io stesso i test e riferirò i risultati.
 
OK.
In assenza di qualsiasi altra opzione, sono stato guidato dalla possibilità di misurare il tempo di ritardo dei segnali EA e degli indicatori, al fine di giudicare se il pulsante EA era spento. Questo tempo doveva essere molto breve. Ma varia troppo.

È molto interessante quello che scoprirete.
(In generale, ho bisogno di tutta questa cucina per rispondere a una semplice domanda: lo stato del pulsante EA)
 
Gli esperti lavorano nei propri thread indipendentemente dagli altri compiti.
Si scopre che il carico della CPU è causato dal movimento del mouse, quando centinaia di comandi di movimento del mouse vengono inviati in massa. Tra questi comandi "mouse" ci sono anche comandi per aggiornare gli EA, il che porta a ritardi.
 
Quindi, dovremmo supporre che il funzionamento non simultaneo dello script, dell'indicatore e dell'Expert Advisor sia un fenomeno comune?
Allora... come si vive nel mondo?