// Définir les macros de séquencement de la boucle OnCalculate #ifdef __MQL4__ // pour MQL4 (sous forme de séries) #define MOnCalcNext( _index ) ( _index-- ) #define MOnCalcBack( _index, _offset ) ( _index + _offset ) #define MOnCalcCheck( _index ) ( _index >= 0 ) #define MOnCalcValid( _index ) ( _index < rates_total ) #define MOnCalcStart \ ( rates_total - ( prev_calculated < 1 ? 1 : prev_calculated ) ) #else // pour MQL5 (en tant que variable non sérielle) #define MOnCalcNext( _index ) ( _index++ ) #define MOnCalcBack( _index, _offset ) ( _index - _offset ) #define MOnCalcCheck( _index ) ( _index < rates_total ) #define MOnCalcValid( _index ) ( _index >= 0 ) #define MOnCalcStart \ ( prev_calculated < 1 ? 0 : prev_calculated - 1 ) #endif
Pourquoi n'utilisez-vous pas la fonction `ArraySetAsSeries()` ? Cela permettrait d'utiliser les mêmes macros pour les deux versions du langage.
Ce n'est pas une critique, c'est juste par curiosité.
J'imagine que c'est simplement plus pratique pour vous.
Je choisis d'utiliser des macros afin que la décision soit prise au moment de la compilation, plutôt que d'utiliser ArraySetAsSeries(), qui s'effectue au moment de l'exécution, dans un souci d'efficacité supplémentaire.
Dans ce cas précis, étant donné qu’il s’agit d’un indicateur très simple, cela ne fait pas vraiment de différence, mais pour des indicateurs beaucoup plus complexes, cela peut en faire une.
Je préfère utiliser des macros afin que la décision soit prise au moment de la compilation, plutôt que d'utiliser la fonction ArraySetAsSeries(), qui s'exécute au moment de l'exécution, dans un souci d'efficacité supplémentaire.
Dans ce cas précis, étant donné qu’il s’agit d’un indicateur très simple, cela ne fait pas vraiment de différence, mais pour des indicateurs beaucoup plus complexes, cela peut en faire.
Merci !
De rien !
Je cherchais à savoir comment sont effectués les calculs pour le Heiken-Ashi. Concernant les valeurs maximales, ils expliquent qu’il s’agit de « la valeur maximale parmi le plus haut, le cours d’ouverture ou le cours de clôture de la période actuelle » et, « pour les valeurs minimales », de « la valeur minimale parmi le plus bas, le cours d’ouverture ou le cours de clôture de la période actuelle ». N’est-ce pas la même chose que de dire que les plus hauts et les plus bas coïncident avec les barres ? Si tel est le cas, votre idée de les représenter sous forme de lignes est à la fois simple et brillante : on peut voir la tendance du Heiken-Ashi au premier coup d’œil sans renoncer aux chandeliers classiques.
Traduction automatique appliquée par le modérateur. Sur le forum anglais, veuillez écrire en anglais.
La plupart du temps, oui, mais lorsque l'ouverture Heikin Ashi (moyenne mobile) dépasse le plus haut ou le plus bas de la bougie normale, c'est alors ce niveau qui devient le plus haut ou le plus bas Heikin Ashi.
Je m'excuse, mais je n'ai pas bien compris le sens de votre message. Pourriez-vous m'en dire plus ?
Je trouve que votre code est très bon et très performant. Je n’ai pas téléchargé le fichier mq5.
Avec le code pour MT4 que vous avez partagé, je n’ai eu qu’à le copier-coller dans MetaEditor MQL5 et à l’enregistrer au format mq5, et tout fonctionne parfaitement.
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
Heikin Ashi Lines:
Une façon plus simple d'afficher Heikin Ashi
Author: FMIC