MAインジケーターの作成 その4 | メタトレーダー4でプログラムを作ってみよう

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

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

次に start です。



今回は説明を1つの記事に詰め込むのは難しいので、

主に流れを説明して、次回以降にさらに細かく分けて説明していきます。(^_^;)


1から3行目initと同様にコメント行で、作成した時点で自動的に挿入されます。


4行目で start 関数の宣言をしています。


6行目

   int    counted_bars=IndicatorCounted();

で、このように設定するものを変数と呼びます。

変数は数字を入れる箱のようなもので、入れた数字を覚えていて、

必要に応じて計算したり、数字を入れ替えたりします。

宣言項目のところでバッファーを設定しましたが、

バッファーは箱の中が小さく分かれていて、沢山の数値を管理することができますが、

変数に入れることができるのは1つだけです。\(゜□゜)/

最初の方にある int は、変数の種類で、整数を扱う設定です。


counted_bars が変数の名前です。

変数に使用できる名前には少し制限があります。


IndicatorCounted() は変化していないローソク足の数を数えるコマンドです。

チャートには通常、複数のローソク足が表示されています。

例えば100本のローソク足が表示されていても、過去の足の値は変わることはなく、

変わるのは一番新しいローソク足だけです。

毎回全てのローソク足に対して再計算をし直すと、処理がとても重くなってしまうため、

最新のローソク足だけを計算するために用意されたコマンドです。


= の意味は、= の右側の数値を、左側に代入するという意味です。

この行では、counted_bars という整数の変数を用意して、

IndicatorCounted の値を代入すると言う命令になります。


8行目は、

   int limit=Bars-counted_bars-1;

で、Bars は表示されているローソク足の数です。

この行では、limit という整数の変数を用意して、

ローソク足の数 - 変化していないローソク足の数 - 1 を計算して代入するという命令になります。


9行目

   for(int i=0; i<limit; i++)

で、繰り返しの命令となります。

for(初期値;条件式;後処理) と記述します。

条件式が条件を満たしていると、次の行以下の処理を行い、

それが終わった後に後処理を行い、条件式の判定をします。

条件式を満たさなくなった時点で終了します。


10行目
    
ExtMapBuffer1[i]=iMA(NULL,0,10,0,MODE_SMA,PRICE_CLOSE,i);


で、バッファーにiMAの値を代入しています。

見るとなんとなくわかると思いますが、iMAは移動平均線の計算をするコマンドです。

iMA(通貨ペア、時間足、移動平均の期間、移動平均線をシフトする数、移動平均線の種類、
価格種類、ローソク足の位置)

となっています。

この例では、10本のローソク足の終値で単純移動平均線を計算します。

バッファーに入った数値は自動的にチャートに描写されます。


13行目は、

   return(0);

で、initのところでも説明しましたが、おまじないなのでそう書いておいてください。



今回のプログラムは、

ローソク足の数を数えて、最新の移動平均線を計算する。

という流れです。

start はチャートのティックが変わるたびに、{}の中身を最初から最後まで実行し、

常に新しい移動平均線を計算しています。


今回は、新しい言葉が色々出てきてよくわからなかったと思いますので、

次回以降に詳しく説明していきたいと思います。(*^ー^)ノ