Top Page

直近のローソク足6本の高値と安値にラインを引く |
直近の6本のローソク足の高値と安値に水平線を引く処理です。 見てみましょう。 |
見たとおりです。 赤い水平線が2本引かれています。 ◎解説 [1]メイン処理 //変数初期化 WK_DBL_HIGH =0; WK_DBL_LOW =9999; for(int i=0;i<6;i++) { WK_DBL_LOW = MathMin(WK_DBL_LOW,Low[i]); WK_DBL_HIGH = MathMax(WK_DBL_HIGH,High[i]); } ここで直近6本の高値と安値を算出しています。 作業用変数の高値と安値に最小値を設定し(安値の場合は逆に大きい値の9999を設定)、 6本分のローソク足の高値と安値と比較して、より高い(安い)値を変数に設定します。 それを6本分繰り返すと6本分の高値・安値が算出できます。 ◎以下、プログラム //+----------------------------------------------------------------------------+ //| インジ 1-4 直近のローソク足6本の高値と安値にラインを引く | //+----------------------------------------------------------------------------+ //---------------- //プロパティの設定 //---------------- //インジケーターをチャートウィンドウに表示する #property indicator_chart_window //---------------- //定数の定義 //---------------- #define OBJ_RANGE_HIGH "OBJ_RANGE_HIGH" //オブジェクト名 #define OBJ_RANGE_LOW "OBJ_RANGE_LOW" //オブジェクト名 //+----------------------------------------------------------------------------+ //| 初期処理関数 | //+----------------------------------------------------------------------------+ //プログラム起動時に1回だけ呼び出される関数 //今回は特に処理なし int init() { return(0); } //+----------------------------------------------------------------------------+ //| 終了処理関数 | //+----------------------------------------------------------------------------+ //プログラム終了時に呼び出される関数 int deinit() { //オブジェクト削除 ObjectDelete(OBJ_RANGE_HIGH); ObjectDelete(OBJ_RANGE_LOW); return(0); } //+----------------------------------------------------------------------------+ //| メイン処理関数 | //+----------------------------------------------------------------------------+ //価格が更新される度に呼び出される関数 int start() { double WK_DBL_LOW =0; //節目 安値 double WK_DBL_HIGH =0; //節目 高値 //オブジェクト削除 ObjectDelete(OBJ_RANGE_HIGH); ObjectDelete(OBJ_RANGE_LOW); //変数初期化 WK_DBL_HIGH =0; WK_DBL_LOW =9999; //オブジェクト作成 for(int i=0;i<6;i++) { WK_DBL_LOW = MathMin(WK_DBL_LOW,Low[i]); WK_DBL_HIGH = MathMax(WK_DBL_HIGH,High[i]); } ObjectCreate(OBJ_RANGE_LOW,OBJ_HLINE,0,0,WK_DBL_LOW); ObjectSet(OBJ_RANGE_LOW,OBJPROP_COLOR,Red); ObjectSet(OBJ_RANGE_LOW,OBJPROP_WIDTH,2); ObjectCreate(OBJ_RANGE_HIGH,OBJ_HLINE,0,0,WK_DBL_HIGH); ObjectSet(OBJ_RANGE_HIGH,OBJPROP_COLOR,Red); ObjectSet(OBJ_RANGE_HIGH,OBJPROP_WIDTH,2); return(0); } //+----------------------------------------------------------------------------+ |