Una domanda per i conoscitori di MQL

 
Buona giornata a tutti!
La mia domanda è la seguente: come posso fare in modo che un indicatore si ricalcoli non più spesso di un certo numero di volte al secondo, per esempio non più di 2 volte.
Lafunzione Sleep non funziona negli indicatori.
 
Debugger писал(а) >>
Buona giornata a tutti!
La mia domanda è: come posso fare in modo che un indicatore si ricalcoli non più spesso di un certo numero di volte al secondo, per esempio non più di 2 volte.
La funzione Sleep non funziona negli indicatori.


Perché?
 
L'algoritmo richiede molto tempo per il calcolo.
 
Debugger писал(а) >>
L'algoritmo richiede molto tempo per il calcolo.


Forse dovreste ottimizzare prima l'algoritmo. Anche se il calcolo può essere fatto una volta ogni secondo o ogni 10 secondi.
Salviamo l'ultimo tempo di calcolo.
Ai tick successivi, controlliamo il numero di secondi che sono passati.
Se è superiore al valore impostato, viene calcolato, altrimenti si esce senza calcolo
 
Con questo potete misurare tra i tic in millisecondi:
int GetTickCount();
// Функция GetTickCount() возвращает количество миллисекунд, прошедших с момента старта системы.
// Счетчик ограничен разрешающей способностью системного таймера. Так как время хранится как беззнаковое целое, то он переполняется каждые 49.7 дней. 
 
Vadim, mi hai aiutato di nuovo. Enorme rispetto!!!!
 
Ciao, potresti per favore rivedere il codice e spiegare perché questo indicatore è in ritardo per le società di intermediazione che danno quotazioni a 5 cifre e funziona bene per le società di intermediazione che danno quotazioni a 4 cifre. Mi chiedo se può essere corretto in qualche modo per farlo funzionare con le società di intermediazione con 5 cifre. Se avete dei dubbi sulla correttezza, non esitate a contattare la vostra società di intermediazione.
File:
 

Sì, infatti. Al segno delle 5 cifre, il tacchino sta rallentando.

Non so perché. Tutto è a posto nel codice...

 
rid >>:

Да, действительно. На 5-ти знаке индюк тормозит.

А вот почему, не пойму. Вроде всё норм. в коде...

Probabilmente la frequenza delle citazioni è superiore a quella del 4.

Confrontare i volumi di tick.

----- e il ricalcolo e la rivalutazione dovrebbero essere fatti quando c'è un cambiamento "significativo" nel prezzo.

"Materialità" dovrebbe probabilmente essere messo nei parametri. 5-7 pips su un 5 marker non cambieranno il tempo.

;)

 
FreeLance >>:

Наверно частота котировок выше чем на 4-х.

Сравните тиковые объемы.

Se è così, il calcolo può essere fatto ogni 3 o 5 tick a 5 cifre.

O in generale dalle barre formate.

 

Buon pomeriggio.

C'è un indicatore nella sezione Code Base - https://www.mql5.com/ru/code/8752.

Secondo la descrizione, mostra sulla storia nella sua finestra il capitale di una posizione o la somma di più posizioni. Su un certo periodo storico.

Non posso farlo funzionare nemmeno per una moneta!

"Prima di installare l'indicatore, crea almeno una linea verticale sul grafico con i seguenti parametri:
La posizione della linea openN (dove N è un numero di serie del pacchetto) imposta il tempo di apertura del pacchetto
".

Ho creato una linea verticale. Ma non capisco - cos'è il parametro openN (non è presente nelle Proprietà) e dove è impostato N?

Più in là:

"Le posizioni nell'indicatore sono impostate solo con linee di tendenza di un certo colore sul grafico dello strumento.
La posizione della linea determina il tempo di apertura e chiusura del pacchetto".

Non so come disegnare un segmento limitato della linea di tendenza. Sembra essere un raggio infinito in una direzione per tutto il tempo.

Si prega di avvisare.

Motivazione: