【MQL4テクニック】ヒゲの長さを取得する方法。関数コピペですぐ使える!

MQL4テクニック

陰線か陽線かを判断して高値から終値などを引いたり… というのは大変面倒なので、ヒゲの長さを簡単に取得できるように関数をご用意しました。

ヒゲの長さを用いてエントリーを制御したい際などに是非ご活用ください。

ヒゲを長さ取得する関数

double getHige(int mode, int timeframe, int shift){
   
   if (mode == MODE_UPPER){
      double bodyTop = MathMax(iClose(Symbol(), timeframe, shift), iOpen(Symbol(), timeframe, shift));
      return NormalizeDouble(iHigh(Symbol(), timeframe, shift) - bodyTop, Digits);
   }
   
   if (mode == MODE_LOWER){
      double bodyBottom = MathMin(iClose(Symbol(), timeframe, shift), iOpen(Symbol(), timeframe, shift));
      return  NormalizeDouble(bodyBottom - iLow(Symbol(), timeframe, shift), Digits);
   }
   
   return 0;
}

引数は以下の通りです。

引数名説明
mode 取得したいヒゲを指定します。
『MODE_UPPER』:上ヒゲ
『MODE_LOWER』 :下ヒゲ
timeframe時間軸を指定します。
shiftバーのシフト数を指定します。
今足の場合は『0』です。

サンプルコード

//5分軸今足の上ヒゲを取得
double price = getHige(MODE_UPPER, PERIOD_M5, 0);

//1時間軸前足の下ヒゲを取得
double price = getHige(MODE_LOWER, PERIOD_H1, 1);

実体の長さを取得する関数もご用意しています。合わせてご参考ください。

POINT

こちらの記事で悩みが解決されない場合は、
MQL4 User Community に参加してお気軽にご質問ください。

MQL4初心者の方や開発に行き詰った方の悩みを、 様々なソフトウェアやツールを開発してきた経験豊富なエンジニアたちが解決いたします。