Servizi, nuove funzionalità nell'architettura MT5, il funerale di MT4 è proprio dietro l'angolo. - pagina 6

 
Petros Shatakhtsyan:


Sì, ma devi anche considerare che c'è solo un timer, non così, così VC++, e se hai molti controlli di temporizzazione, potresti perdere molti tick, e tutto diventerà una poltiglia.

Non è un problema. Solo in un timer si fa un controllo ogni volta che il timer parte e gli altri X secondi dopo l'ultimo controllo rilevante.
 
Alexey Kozitsyn:
Non è un problema. È solo che in un timer si fa un controllo ad ogni esecuzione del timer, e gli altri X secondi dopo l'ultimo controllo rilevante.


Non capisco. Sapete quanto costa far funzionare un timer. È possibile eseguirlo più di 1 volta.

Ho detto che ogni tick è importante e tu stai parlando di secondi. Dovrebbero lavorare tutti in parallelo, indipendentemente l'uno dall'altro.

 
Petros Shatakhtsyan:


Io no. Sapete quanto costa far funzionare il timer. È possibile eseguirlo più di 1 volta.

Ho detto che ogni tick è importante e tu stai parlando di secondi.

Far funzionare il timer costa esattamente quanto è necessario per il compito, se non può essere fatto altrimenti. Non ha bisogno di essere eseguito molte volte, basta fare un controllo 3 volte su 3 corse e un altro 1 volta su 3. Spero che l'idea sia chiara ora.

 
Petros Shatakhtsyan:


Sarebbe inefficiente se EA gestisse ogni tick, anche se i millisecondi sono usati nel timer.

Serve un modo più semplice per ottenere tutti i tick direttamente dalla panoramica del mercato.

Non è possibile un OpTisk passante, perché funziona solo quando il prossimo tick arriva dove si trova l'EA.


La variante è quella di eseguirlo sul simbolo più volatile. Certo, ci sarà qualche perdita... ma ci sarà una perdita di velocità di esecuzione della logica per l'intero EA
 
Maxim Dmitrievsky:

Beh, come un'opzione eseguita sul simbolo più volatile. naturalmente ci sarà qualche perdita ... ma ci sarà anche una perdita di velocità di esecuzione di tutta la logica EA


Ecco perché ti ho detto di fare un altro OnTick che riceverà i tick da tutti i simboli che sono attualmente disponibili nella panoramica del mercato. Una variante semplice e veloce.

E non solo. Dovreste anche avere una funzione che restituisce la leva reale che ha ogni simbolo.

 
Petros Shatakhtsyan:


E così ha detto di fare un altro OnTick, che ha ottenuto i tick da tutti i simboli attualmente disponibili nella panoramica del mercato. Un'opzione semplice e veloce.

In realtà, OnTick() salta i tick. Anche OnCalculate() salta i tick. Inoltre, le zecche possono arrivare in branco. Quindi, il timer non è qualcosa di molto costoso, tanto più quando si analizzano molti personaggi. La cosa principale è rendere il calcolo conveniente.
 
Alexey Kozitsyn:
In realtà, OnTick() salta i tick. Anche OnCalculate() salta i tick. Inoltre, le zecche possono venire in branco. Quindi, il timer non è qualcosa di molto costoso, tanto più quando si analizzano molti personaggi. La cosa principale è fare un calcolo economico.

Beh, si può fare anche attraverso un timer. La cosa buona è che abbiamo EventSetMillisecondTimer ma è male che inizia anche OnTimer. Avremmo dovuto aggiungere OnMillisecondTimer.
 
Petros Shatakhtsyan:

Beh, si può fare con un timer. È bene che esista EventSetMillisecondTimer, ma è male che avvii anche OnTimer. Avresti dovuto aggiungere OnMillisecondTimer.

Cosa ti impedisce di fare così?

void OnTimer()
{
if( condition1 )
   {...копируем тики...}
if( condition2 )
   {...иной расчет, который не нужно запускать так часто, как condition1...}
}
E nel complesso, sarebbe bene aggiungere il campo simbolo come gestore di OnBookEvent().
 
Alexey Kozitsyn:
In realtà, OnTick() salta i tick. Anche OnCalculate() salta i tick. Inoltre, le zecche possono venire in branco. Quindi, il timer non è qualcosa di molto costoso, tanto più quando si analizzano molti personaggi. La cosa principale è fare un calcolo economico.

Il timer salterà anche i tick, se avete bisogno di contarli fino al tick, dovete contarli per il volume del tick lì... ma non vi salverà nemmeno... i tick possono venire molto rapidamente e in lotti, sì
 
Maxim Dmitrievsky:

il timer mancherà anche, se avete bisogno di andare direttamente alla zecca è necessario tenere traccia di loro, dal volume della zecca lì... ma non salverà nemmeno... le zecche possono venire molto rapidamente e molto, sì
Niente può salvarlo. Non si può elaborare assolutamente ogni tick.