足が変わった時に1回だけ実行する その3 | メタトレーダー4でプログラムを作ってみよう

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

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

前回の修正では足が変わった時音を1回だけ鳴らすように変更しました。

今回は、音だけではなく矢印を表示するのも1回だけにしてみます。

start を以下のように修正してください。

if(oldtime!=Time[i])
{
   if(ExtMapBuffer1[i+1]<Lower_Alert && ExtMapBuffer1[i+2]>=Lower_Alert)
   {
      ExtMapBuffer2[i]=ExtMapBuffer1[i];
      ExtMapBuffer3[i]=0;
      if(oldtime!=0) Alert("Upper");
   }
   else if(ExtMapBuffer1[i+1]>Upper_Alert && ExtMapBuffer1[i+2]<=Upper_Alert)
   {
      ExtMapBuffer2[i]=0;
      ExtMapBuffer3[i]=ExtMapBuffer1[i];
      if(oldtime!=0) Alert("Lower");
   }
}



今回の修正では、矢印の判断全体の部分を、

if(oldtime!=Time[i])

の { } で囲っています。

これにより、判断そのものを足が変わった時にだけ行います。

しかし、チャートにセットした時に、

音は鳴らしたくないけど、矢印の描写はしたいので、

oldtime!=0

は、削除しています。

そして、Alert の処理の時に、

oldtime!=0

の条件をつけて、音だけ鳴らさないようにしています。

前回までは矢印を同じ足で書き直していましたが、

今回ように、矢印の描写と音の処理部分を

if(oldtime!=Time[i])

で判断することにより、書き直しの処理を減らしています。

そうして余計な処理が減ったぶん、メタトレーダーの動きが軽くなります。

今回の例ですと大した違いはありませんが、

これが大きなプログラムや、複数のチャートで動作させる場合は、

効果がある場合がありますので、頭の隅の方に覚えておくと、

得する時があるかもしれません。

まあ、ないかもしれませんが・・・