メタエディターの新規作成ボタンから、ウィザードを起動します。
カスタムインディケータを選択します。
名前欄に Indicators/line.mq4 と入力します。著作者、リンク、パラメータは、今回使わないので未入力でもOKです。
OnCalculateのみ選択された状態で次へ。
ラインを一本だけ描画するので追加ボタンを押します。プロット欄に一段追加されるのでラベル欄にcloseと入力し、タイプがLine なのを確認します。カラーは好きな色で、完了ボタンを押します。
ラインチャートのコード解説
メタエディターに自動入力された新規ファイルが開くので、int OnCalculate(){}
欄へ。{}欄の //---
と //--- return value of
(以下略)の間に下記コードを入力。
int i;
for(i=0;i<rates_total-prev_calculated;i++){
closeBuffer[i]=close[i];
}
↓貼り付けるとこんなカンジ↓
int OnCalculate(中略)
{
//---
int i;
for(i=0;i<rates_total-prev_calculated;i++){
closeBuffer[i]=close[i];
}
//--- return value of ...
for
ループで rates_total
(足の総数)から prev_calculated
(計算済みの足)を引いた分だけ回します。prev.. は、はじめ 0 なので相当数計算します。次回からは最新の足だけ計算します。今回は closeBuffer[]
に終値を入力していきます。
インディケータは時系列に沿って右から左へ、最新の足から過去の足へ 0, 1, 2, 3, .. と増えていきます。配列のインデックス、索引付けがこのようになっている MQL4 の仕様です。実データの配列を考えると混乱するので、「最新価格のインデックスが 0、右から左へ増えていく」コレだけをとりあえずは頭に入れておいてください。既存のインディケータを利用したカスタムインディケータを作る分には、これで十分です。
リアルもしくはヒストリーデータでデバックをスタートし、作成したインディケータをチャートに表示してみました。なお画像のラインは、見やすくするためパラメータを変更し太くしてます。