Une question pour les connaisseurs de MQL

 
Bonne journée à tous !
Ma question est la suivante : comment puis-je faire en sorte qu'un indicateur ne se recalcule pas plus souvent qu'un certain nombre de fois par seconde, par exemple pas plus de 2 fois.
Lafonction de veille ne fonctionne pas dans les indicateurs.
 
Debugger писал(а) >>
Bonne journée à tous !
Ma question est la suivante : comment puis-je faire en sorte qu'un indicateur ne se recalcule pas plus souvent qu'un certain nombre de fois par seconde, par exemple pas plus de 2 fois.
La fonction de veille ne fonctionne pas dans les indicateurs.


Pourquoi ?
 
L'algorithme prend beaucoup de temps à calculer.
 
Debugger писал(а) >>
L'algorithme prend beaucoup de temps à calculer.


Peut-être que vous devriez d'abord optimiser l'algorithme. Bien qu'un calcul toutes les secondes ou toutes les 10 secondes puisse être effectué.
On sauve le dernier temps de calcul.
Aux ticks suivants, nous vérifions le nombre de secondes qui se sont écoulées.
Si c'est plus que le temps spécifié, il est calculé, sinon nous sortons sans calcul.
 
Vous pouvez mesurer entre les ticks en millisecondes avec ceci :
int GetTickCount();
// Функция GetTickCount() возвращает количество миллисекунд, прошедших с момента старта системы.
// Счетчик ограничен разрешающей способностью системного таймера. Так как время хранится как беззнаковое целое, то он переполняется каждые 49.7 дней. 
 
Vadim, tu m'as encore aidé. Énormément de respect !!!!
 
Bonjour, pourriez-vous revoir le code et expliquer pourquoi cet indicateur est en retard pour les sociétés de courtage qui donnent des cotations à 5 chiffres et fonctionne bien pour les sociétés de courtage qui donnent des cotations à 4 chiffres. Je me demande s'il est possible de le corriger d'une manière ou d'une autre pour qu'il fonctionne avec les sociétés de courtage à 5 chiffres. Si vous avez des doutes sur l'exactitude des informations, n'hésitez pas à contacter votre société de courtage.
Dossiers :
 

Oui, en effet. Au niveau des 5 chiffres, la dinde ralentit.

Je ne sais pas pourquoi. Tout va bien dans le code...

 
rid >>:

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

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

La fréquence des citations est probablement plus élevée que sur le 4.

Comparez les volumes des ticks.

----- et un nouveau calcul et une nouvelle cotation doivent être effectués lorsqu'il y a un changement "significatif" du prix.

La "matérialité" devrait probablement figurer dans les paramètres. 5-7 pips sur un marqueur de 5 ne changeront pas le temps.

;)

 
FreeLance >>:

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

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

Dans ce cas, le calcul peut être effectué tous les 3 ou 5 tics à 5 chiffres.

Ou généralement par les barres formées.

 

Bon après-midi.

Il existe un indicateur dans la section Code Base - https://www.mql5.com/ru/code/8752.

Selon la description, il montre sur l'historique dans sa fenêtre l'équité d'une position ou la somme de plusieurs positions. Sur une certaine période de l'histoire.

Je ne peux pas le faire fonctionner, même pour une devise !

"Avant d'installer l'indicateur, créez au moins une ligne verticale sur le graphique avec les paramètres suivants :
La position de la ligne openN (où N est un numéro de série du paquet) fixe l'heure d'ouverture du paquet
".

J'ai créé une ligne verticale. Mais je ne comprends pas - quel est le paramètre openN (il n'est pas présent dans les propriétés) et où N est défini ?

Plus loin :

"Les positions de l'indicateur ne sont définies qu'avec des lignes de tendance d'une certaine couleur sur le graphique de l'instrument.
La position de la ligne détermine l'heure d'ouverture et de fermeture du paquet."

Je ne sais pas comment dessiner un segment limité de la ligne de tendance. Il semble qu'il s'agisse d'un rayon sans fin dans une seule direction, tout le temps.

Veuillez me conseiller.