【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);
実体の長さを取得する関数もご用意しています。合わせてご参考ください。