Top Page

【ローソク足の終値のラインを描画するインジケーター】 |
とにかく1つ、カスタムインジケーターを作ってみようということです。とりあえず、見てみましょう。 以下のプログラムは、ローソク足の終値を結ぶラインを引くインジケーターです。 このインジケーターをMT4のUSDJPYのローソク足1Hのチャートに挿入すると下の画像のようになります。 実用的ではありませんが、プログラムを覚えるために簡単なものにしました。 |
◎ここから下がプログラムです。 |
//+----------------------------------------------------------------------------+ //| とにかく1つ、カスタムインジケーターを作ってみる | //| ローソク足の終値のラインを描画するインジケーター | //+----------------------------------------------------------------------------+ //---------------- //プロパティの設定 //---------------- //インジケーターをチャートウィンドウに表示する #property indicator_chart_window //インジケーターを1つ作成する(最大8個まで) #property indicator_buffers 1 //-------------------- //グローバル変数の設定 //-------------------- //1つ目のインジケーター用の配列を定義する double Buffer1[]; //+----------------------------------------------------------------------------+ //| 初期処理関数 | //+----------------------------------------------------------------------------+ //プログラム起動時に1回だけ呼び出される関数 int init() { //1つ目のインジケーターのスタイルを線に設定する //注意しなければいけないのは、配列では1番目が0になるため //第1パラメーターは、1ではなく0になるということ SetIndexStyle(0,DRAW_LINE,EMPTY,5,Red); //1つ目のインジケーター配列に定義した Buffer1 を関連付ける //注意しなければいけないのは、配列では1番目が0になるため //第1パラメーターは、1ではなく0になるということ SetIndexBuffer(0,Buffer1); return(0); } //+----------------------------------------------------------------------------+ //| 終了処理関数 | //+----------------------------------------------------------------------------+ //プログラム終了時に呼び出される関数 //今回は特に処理なし int deinit() { return(0); } //+----------------------------------------------------------------------------+ //| メイン処理関数 | //+----------------------------------------------------------------------------+ //価格が更新される度に呼び出される関数 int start() { //インジケーターの計算範囲を求める //Bars変数は、チャートに表示されているローソク足の数 //IndecatorCounted()関数は、計算済みのローソク足の数を求める //次の計算式で、limit変数には、計算していないローソク足の本数が設定される int limit = Bars - IndicatorCounted(); //インジケーターの計算 //ローソクの終値の線を描画する for(int i=0; i<limit; i++) { Buffer1[i] = (Close[i]); } return(0); } //+----------------------------------------------------------------------------+ |