インディケータ: Heikin Ashi Lines

 

Heikin Ashi Lines:

よりシンプルなヘイキン・アシの表示方法

Heikin Ashi Lines

Author: FMIC

 
   // OnCalculate ループのシーケンスマクロを定義する
      #ifdef __MQL4__   //MQL4用(シリーズとして)
         #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             //MQL5用(非シリーズとして)
         #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

なぜ ArraySetAsSeries() を使わないのですか?これを使えば、どちらの言語バージョンでも同じマクロを使えるようになります。

批判しているわけではなく、単に気になっただけです。

あなたにとっては、そのほうが便利なのでしょうね。

 
信じられないほど
削除済み  
Vladislav Boyko #: なぜ ArraySetAsSeries() を使わないのですか?これを使えば、言語の両方のバージョンで同じマクロを使えるようになるはずです。批判しているわけではなく、ただ気になっているだけです。あなたにとっては、そのほうが都合が良いのでしょうね。

私は、わずかな効率向上のために、実行時に処理されるArraySetAsSeries() ではなく、コンパイル時に決定が行われるように、マクロを使用することを選択しました。

今回のケースでは、非常に単純なインジケーターであるため、実際にはほとんど違いはありませんが、もっと複雑なインジケーターの場合、その差が顕著になる可能性があります。

削除済み  
Roberto Jacobs #: 信じられないほど

申し訳ありませんが、あなたの投稿の意味がちょっとよくわかりませんでした。もう少し詳しく説明していただけますか?

 
Fernando Carreiro #:

わずかな効率向上のために、実行時に実行されるArraySetAsSeries() ではなく、コンパイル時に処理が行われるように、マクロを使用することにしました。

この場合、非常に単純なインジケーターであるため、実際にはほとんど違いはありませんが、もっと複雑なインジケーターでは、その差が顕著になる可能性があります。

ありがとうございます!

 
フェルナンドさん、ありがとうございます。初心者にとって本当に助かりました。また、パブリックプロジェクトの ヒントもありがとうございました。そんな機能があることすら知りませんでした。どういうわけか、その機能を見落としていたようです。この機能の使い方を解説したドキュメントが見つかるといいなと思います。
削除済み  
Vladislav Boyko #: ありがとうございます!
linfo2#: フェルナンドさん、ありがとうございます 。初心者には本当に助かりました。パブリックプロジェクトの ヒントもありがとうございます。そんな機能があることすら知りませんでした。どういうわけか、その機能を見落としていたようです。この機能の使い方を解説したドキュメントが見つかるといいのですが。

どういたしまして!

 

ヘイケンアシの計算方法について調べていたところ、最高値については「当期間の高値、始値、または終値のうちの最大値」、最低値については「当期間の安値、始値、または終値のうちの最小値」と説明されていました。 これは、高値と安値がバーと一致しているということと同じではないでしょうか?もしそうであれば、それらを線として表示するというあなたのアイデアはシンプルかつ素晴らしいものです。通常のローソク足をそのまま使いながら、一目見ただけで平滑足(Heiken-Ashi)のトレンドを把握できるからです。

モデレーターによる自動翻訳が適用されています。英語フォーラムでは、英語で投稿してください。

削除済み  
@Daniel Eduardo San Martin #: それは、高値と安値がローソク足と一致しているということと同じではありませんか?

ほとんどの場合はそうですが、平金足(移動平均)の始値が 通常のローソク足の高値・安値を超えている場合は、その値が平金足の高値・安値 となります。

 
Fernando Carreiro #:

申し訳ありませんが、あなたの投稿の意味があまりよく理解できませんでした。もう少し詳しく説明していただけますか?

あなたのコードはとても優れていて強力だと思います。mq5はダウンロードしませんでした。
あなたが共有してくださったMT4用のコードを、MetaEditor MQL5にコピー&ペーストしてmq5として保存するだけで、すべてがスムーズに動作します。