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

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

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

それでは start をいじっていきます。

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

int limit=Bars-counted_bars-1;
for(int i=0; i<limit; i++)
{
   double fast_ma0=iMA(NULL,0,ma1_Period,0,MODE_SMA,PRICE_CLOSE,i);
   double fast_ma1=iMA(NULL,0,ma1_Period,0,MODE_SMA,PRICE_CLOSE,i+1);
   double slow_ma0=iMA(NULL,0,ma2_Period,0,MODE_SMA,PRICE_CLOSE,i);
   double slow_ma1=iMA(NULL,0,ma2_Period,0,MODE_SMA,PRICE_CLOSE,i+1);

   if(fast_ma0>slow_ma0 && fast_ma1<slow_ma1)
   {
      ExtMapBuffer1[i]=Close[i];
      ExtMapBuffer2[i]=0;
   }
   else if(fast_ma0<slow_ma0 && fast_ma1>slow_ma1)
   {
      ExtMapBuffer1[i]=0;
      ExtMapBuffer2[i]=Close[i];
   }
   else
   {
      ExtMapBuffer1[i]=0;
      ExtMapBuffer2[i]=0;
   }



なにやらごちゃごちゃしております。(^▽^;)

fast_ma で期間の短い方の移動平均線を計算し、

slow_ma で期間の長い方の移動平均線を計算します。

それぞれ、0 と 1 で現在の足と1本過去の足の移動平均線を計算します。

そして、現在の足と過去の足の移動平均線の位置関係から、

クロスしたかどうかを判定しています。


この、クロスという考え方が慣れるまで難しいので、

次回以降に詳しく説明したいと思います。


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



こんな感じで表示されていればOKです。

移動平均線はMovingAverageをチャートに2本セットして表示させています。

クロスしたところにうまい具合に矢印が出ていると思います。

次回以降これを元にして色々いじっていきます。