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

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

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

次にinitです。


1から3行目はコメント行です。

作成した時点で自動的に挿入されます。

init が initialization の略だとわかります。


4行目

int init()

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

関数を設定したら {} で囲んで、その中にコードを記述します。

関数は自分で作成することができますが、

init
deinit
start


はメタトレーダーで使用するように予約されていますので、それ以外で名前をつけます。


7行目

   SetIndexStyle(0,DRAW_LINE);

で、チャートウインドウに描写する物の種類を設定します。

カッコの中ですが、最初の はラインの設定番号です。

作成した ma01 をチャートにドラッグした時に設定画面が出ます。

色の設定」タブをクリックすると下のようになります。



この時の # の番号が、この設定番号になります。


プログラムでは通常0番から数えるようになっています。

メタトレーダーでも0番から数えることが他にもあり、

最初は戸惑いますが、そういうルールなので慣れるしかありません。


しかしながら、その2で説明した宣言項目の色の設定では、

#property indicator_color1 Red

で、0番の設定が、color1となっていて非常に紛らわしいです。

宣言項目の1番が、initの0番に対応すると覚えてください。

init の2番は、宣言項目では3番になります。

どちらかというと宣言項目の番号の付け方が特殊なのですが、ここは慣れるしかありません。


次のDRAW_LINEは、線を引くという設定です。

他にもヒストグラムを描写したり、矢印や点のような図形を描写する設定もありますが、そのうち説明します。


8行目

   SetIndexBuffer(0,ExtMapBuffer1);

で、0番を描写するのにどのバッファーを使用するかを設定します。

今回は、0番に
ExtMapBuffer1 を使用します。


10行目

   return(0);

で、関数を呼び出した際に()内の 0 を返しますというコマンドです。

関数を呼んだ際に、関数内で計算を行って、出た結果を返す場合に、

()内に返す数値を入れておく、という使い方をしますが、

今回はただ設定をしただけで返す数値がありませんので、

おまじないとして 0 を返すように記述しています。



今回は、0から数え始めるものと、1から数え始めるものがあり、わかりにくかったと思います。

しかし、そういうルールの元に成り立っていますので、ルールに慣れていただくしかありません。

この先何度も作っていれば慣れてくると思いますので、気楽にやっていきましょう。(*^-^)b