チャートに矢印とラインを表示するインジケーターの作成 その4 | メタトレーダー4でプログラムを作ってみよう

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

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

前回の記事で start を作成しましたが、

for 文の中身を ++ のバージョンでやりました。

実は -- を使う方がすっきりするので修正します。

なら先にそっちでやれよ!って感じですが・・・( ̄Д ̄;;

++ と -- の処理の違いは、こちらで説明しています。

では、以下のように修正してください。

int limit=Bars-counted_bars-1;
for(int i=limit; i>=0; i--)
{
   ExtMapBuffer1[i]=iBands(NULL,0,Band_Period,Deviation,0,PRICE_CLOSE,MODE_UPPER,i);
   ExtMapBuffer2[i]=iMA(NULL,0,Band_Period,0,MODE_SMA,PRICE_CLOSE,i);
   ExtMapBuffer3[i]=iBands(NULL,0,Band_Period,Deviation,0,PRICE_CLOSE,MODE_LOWER,i);

   if(ExtMapBuffer3[i+1]>Close[i+1] && ExtMapBuffer3[i+2]<Low[i+2])
   {
      ExtMapBuffer4[i]=Close[i];
      ExtMapBuffer5[i]=0;
   }
   else if(ExtMapBuffer1[i+1]<Close[i+1] && ExtMapBuffer1[i+2]>High[i+2])
   {
      ExtMapBuffer4[i]=0;
      ExtMapBuffer5[i]=Close[i];
   }
   else
   {
      ExtMapBuffer4[i]=0;
      ExtMapBuffer5[i]=0;
   }





こっちの方がすっきりしてますね~

前回のように、0 の現在の足から始めて過去の足にさかのぼって行くように計算した場合、

1本過去や2本過去の足の指標は計算できていません。


ですので、前回の通り ++ で ExtMapBuffer1 等を使って処理をしてしまうと、

矢印の表示がうまく出来ません。


今回のように、一番過去から現在に向かって -- で計算してくると、

過去の値は計算してあるので、ExtMapBuffer1 等の値が使用できます。



この過去から現在に向かって計算したり、

現在から過去に向かって計算したしするのは、

私はなかなか理解できなかったので、

まわりくどいですが何度かこのような説明をさせてもらおうと思います。

ではまた~(^-^)ノ~~