ありそうでないヒゲの計算
たまにヒゲの長さと実体の長さを仕掛けや手仕舞いの条件に使うことがあります。
ヒゲってベーシックなものだと思うのですが、残念ながらMT4の標準関数にはヒゲの長さを求める関数はありません。
今まで都度計算していたのですが、今後のことも考えて関数化しました。
ちなみに、実体は始値と終値を差し引くだけなので、関数化していません。
//+------------------------------------------------------------------+ //|【関数】ヒゲ取得 | //| | //|【引数】 IN OUT 引数名 説明 | //| --------------------------------------------------------- | //| ○ aHigeType ヒゲの種類 | //| 1:上ヒゲ | //| -1:下ヒゲ | //| ○ aOpen 始値 | //| ○ aHigh 高値 | //| ○ aLow 安値 | //| ○ aClose 終値 | //| | //|【戻値】ヒゲの長さ | //| | //|【備考】なし | //+------------------------------------------------------------------+ double getHige(int aHigeType, double aOpen, double aHigh, double aLow, double aClose) { double jittai = aClose - aOpen; // 陽線 if(jittai >= 0.0){ if(aHigeType == 1){ return(aHigh - aClose); }else if(aHigeType == -1){ return(aOpen - aLow); } // 陰線 }else{ if(aHigeType == 1){ return(aHigh - aOpen); }else if(aHigeType == -1){ return(aClose - aLow); } } return(0); }
使い方としては、最初の引数aHigeTypeで上ヒゲの長さを取得したいのか下ヒゲの長さを取得したいのかを指定します。あとは四本値を指定するだけです。