Oncalculate et for - Quel type ?

 

Bonjour 
Comment allez vous ?
Question

Très souvent dans oncalculate on utilse une boucle "for" pour lire les données de quelque chose


for ( int i = limit; i < rates_total && i >= prev_calculated 

je trouve que ce "int" est "too much"

On aura jamais une valeur qui ira de -2 Millions à +2 millions à cet endroit ? c'est une question !

je pense qu'un "ushort" ferait largement l'affaire, non ? Ca va de 0 à + 65.000. Ca semble largement suffisant, non ?

il y aurait une petite économie de mémoire, mais je pense que la rapidité de calcul peut être important

Mais faut être sûr de ne pas dépasser ces bornes car si on met un "if" pour contrôler la plage, on va perdre le gain


Qu'en pensez vous ? ushort ou int dans les boucle de parcours dans oncalculate ?

Bon weekend 


 

Ce n'est pas exact.

Un chart peut contenir bien plus que 65000 barres. Je travaille régulièrement avec des centaines de milliers de barres voir des millions (en M1).

Un int est donc nécessaire.

Veuillez noter que la valeur maximale d'un int est 2 milliards et quelques, et non pas 2 millions. Évidemment on ne travaillera jamais avec des milliards de barres mais comme il n'y a pas d'intermédiaire entre int et short...

Quoi qu'il en soit économiser 2 bytes de mémoire à l'heure actuelle est un peu dérisoire ne croyez-vous pas ?

 
Alain Verleyen #:

Ce n'est pas exact.

Un chart peut contenir bien plus que 65000 barres. Je travaille régulièrement avec des centaines de milliers de barres voir des millions (en M1).

Un int est donc nécessaire.

Veuillez noter que la valeur maximale d'un int est 2 milliards et quelques, et non pas 2 millions. Évidemment on ne travaillera jamais avec des milliards de barres mais comme il n'y a pas d'intermédiaire entre int et short...

Quoi qu'il en soit économiser 2 bytes de mémoire à l'heure actuelle est un peu dérisoire ne croyez-vous pas ?

Hello.
Vos remarques sont bonnes. Je suis en D1, très loin du M1. 
Comme vous je ne pense pas que cela représente beaucoup pour la mémoire, par contre pour le calcul.... 

Moi je ne développe qu'avec des valeurs pour for positives. Un uint ne doit pas non plus retenir votre attention donc ?
A plus
 

@ William210

Tout à fait d'accord avec toi, toute économie (de mémoire ou autres) est bon à prendre, 


Je suis encore dans l'apprentissage du language MQL5, je me suis déjà posé cette question de quel choix faire pour mes variable, après il faut être sûre de son code et ne pas faire d'erreurs ..., 


Peut-être utiliser un int au debut pour évité les problèmes, puis pour du perfectionnement du code dans le futur il faudra changer ça,


@ Alain Verleyen

vous poser une bonne problématique, peut-on mesurer le temps que fait une boucle, J'en ai pas encore besoin mais je serais curieux de pouvoir mesurer le temps que mon code prend ou ma boucle ?

William210
William210
  • 2023.04.30
  • www.mql5.com
Profil du trader
 
ZeroCafeine #:

@ William210

Tout à fait d'accord avec toi, toute économie (de mémoire ou autres) est bon à prendre, 


Je suis encore dans l'apprentissage du language MQL5, je me suis déjà posé cette question de quel choix faire pour mes variable, après il faut être sûre de son code et ne pas faire d'erreurs ..., 


Peut-être utiliser un int au debut pour évité les problèmes, puis pour du perfectionnement du code dans le futur il faudra changer ça,


@ Alain Verleyen

vous poser une bonne problématique, peut-on mesurer le temps que fait une boucle, J'en ai pas encore besoin mais je serais curieux de pouvoir mesurer le temps que mon code prend ou ma boucle ?

Vous pouvez utiliser GetMicrosecondCount().
Raison: