Indicateurs: Heikin Ashi Lines

 

Heikin Ashi Lines:

Une façon plus simple d'afficher Heikin Ashi

Heikin Ashi Lines

Author: FMIC

 
   // 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.

 
Incroyablement
[Supprimé]  
Vladislav Boyko #: Pourquoi n'utilises-tu pas `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 toi.

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.

[Supprimé]  
Roberto Jacobs #: Incroyable

Je m'excuse, mais je n'ai pas tout à fait compris le sens de votre message. Pourriez-vous m'en dire plus ?

 
Fernando Carreiro #:

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 !

 
Merci Fernando, ça m'aide énormément en tant que débutant. Merci également pour l'astuce sur les projets publics. Je ne savais même pas que ça existait. Je ne savais pas que cette fonctionnalité existait. J'espère trouver de la documentation sur la manière de l'utiliser.
[Supprimé]  
Vladislav Boyko #: Merci !
linfo2 #: Merci Fernando, c'est extrêmement utile pour un débutant. Merci également pour l'astuce concernant les projets publics. Je ne savais même pas que cela existait. Je ne m'étais pas rendu compte de cette fonctionnalité. J'espère trouver de la documentation sur la manière de l'utiliser.

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.

[Supprimé]  
@Daniel Eduardo San Martin #: N'est-ce pas la même chose que de dire que les plus hauts et les plus bas coïncident avec les barres ?

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.

 
Fernando Carreiro #:

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.