複数の色でラインを描写するインジケーター その3 | メタトレーダー4でプログラムを作ってみよう

メタトレーダー4でプログラムを作ってみよう

無料のトレードソフトであるメタトレーダー4のプログラムを作るコツをアップします。初心者がインジケーターとEAのプログラムを作成できるのを目指します。

それでは start をプログラムします。

以下を追加してください。

int limit=Bars-counted_bars-1;
for(int i=limit; i>=0; i--)
{
   ExtMapBuffer1[i]=iMA(NULL,0,ma_Period,0,MODE_SMA,PRICE_CLOSE,i);

   if(ExtMapBuffer1[i]>ExtMapBuffer1[i+1]
    && ExtMapBuffer1[i+1]>ExtMapBuffer1[i+2])
   {
      ExtMapBuffer2[i]=ExtMapBuffer1[i];
   }
   else if(ExtMapBuffer1[i]<ExtMapBuffer1[i+1]
    && ExtMapBuffer1[i+1]<ExtMapBuffer1[i+2])
   {
      ExtMapBuffer3[i]=ExtMapBuffer1[i];
   }
   else
   {
      ExtMapBuffer2[i]=EMPTY_VALUE;
      ExtMapBuffer3[i]=EMPTY_VALUE;
   }
}



まず最初に、ExtMapBuffer1 で移動平均線を計算しておきます。

次に、if文で条件を設定します。

1つ目に、現在の足の ExtMapBuffer1 の値と、

1本過去の ExtMapBuffer1 の値を比べ、

現在の足の ExtMapBuffer1 の値が大きいか確認します。

同様に、1本過去の足 ExtMapBuffer1 の値と、

2本過去の ExtMapBuffer1 の値を比べ、

1本過去の足 ExtMapBuffer1 の値が大きいか確認します。

どちらの条件にも当てはまる場合、

過去2本連続して移動平均線が大きくなっていることになり、

この場合を上昇しているとみなすことにします。

この時、ExtMapBuffer2 に ExtMapBuffer1 を代入します。


下降している場合は、小さいかどうかを比べます。

過去2本連続して移動平均線が小さくなっている時に、

ExtMapBuffer3 に ExtMapBuffer1 を代入します。

それ以外の時は、

ExtMapBuffer2 と ExtMapBuffer3 にEMPTY_VALUE を代入します。

EMPTY_VALUE は数値なし、という意味です。

チャートに表示するインジケーターの場合、

0 を代入してしまうと、

画面表示範囲外の 0 の値まで垂直の線が引かれてしまいますので、

EMPTY_VALUE を使用します。

入力が終わったら、コンパイルしてチャートにセットしてみてください。

カラフルに表示されればOKです。



上昇トレンドは赤、下降トレンドは青、それ以外が黄色の表示です。


今回、if文の条件を書くのに、&& のところで改行しています。(&&の説明

1行の長さが長くなる時に、意味がわかる区切りなら、

今回の例のように途中で改行する場合もあります。

また、説明しますので、今回はその様なこともあると覚えておいてください。

ばいちゃ~。(*゜▽゜ノノ゛☆