MQL言語入門|EAの基本構造と書き方を理解しよう!

MQL言語入門|EAの基本構造と書き方を理解しよう

せっかくMT4(MetaTrader4)を使うのなら、あなたオリジナルのEA(Expert Advisor)やインジケーターを自作してみませんか!?

初心者向けに、MQL言語を使ったプログラミングについて解説しています。

 

今回は、MT4専用のテキストエディタ「MetaEditor」の起動から、MT4のサンプルEAを使ってEAの基本構造と書き方を解説します。

EAの自作はけして難しいものではありません。簡単ですから、ぜひ挑戦してみましょう♪

 

スポンサーリンク

MetaEditor の起動

まず、EAやインジケーターを書くための専用のテキストエディタ「MetaEditor」を起動します。

「MetaEditor」は、MT4と同時にインストールされています。

テキストエディタとは、基本的にはWindowsの「メモ帳」と同じテキストファイルを扱うソフトウェアなのですが、プログラムの作成・編集・保存により特化したものになっています。

MT4の「メタクォーツ言語エディタ」をクリックします。

メタエディター起動

 

「Experts」のツリーから「MACD Sample.mq4」をダブルクリックすると、ソースコードが開きます。
MACDサンプル起動

 

それでは、ソースコードを見ながらEAの基本構造と書き方を解説していきます。

 

スポンサーリンク

//:コメント

1行目から5行目、15行目から17行目など、「//」で始まる行がたくさんあります。

「//」は「コメント」と言い、後で編集するときのためのメモなどを残しておくために使います。

「//」はプログラムでは読み込まれません。

 

スポンサーリンク

#property:プログラムプロパティ

6行目から7行目は「#property」で始まっています。

「#property」は、EAに関する情報を表示するために使う命令です。

例えば、作成者名、作成者のサイトURL、プログラムのバージョン情報など。

情報は、MT4画面左側の「ナビゲーター」からEA名をダブルクリックすればそのEAのサブウィンドウが開きますが、そのバージョン情報タブに表示されます。

 

スポンサーリンク

input:外部パラメーター

9行目から14行目は「input」で始まっています。

EAを作るとき、テクニカルインジケーターのパラメーター、取引ロット数、マジックナンバーなど、作成者としては、自分で設定しておきたい数値があります。

このような場合に、「input」の後にこれらの数値を変数(データを一時的に入れておく箱)として宣言すれば、外部パラメーターとして利用できます。

外部パラメーターの数値は、そのEAのサブウィンドウからユーザーが自由に変更できます。

 

スポンサーリンク

void OnTick(void) {}:メイン処理関数

18行目以降の「void OnTick(void){}」(OnTick関数)は、メインプログラムのためのイベント処理関数です。

ここには、EAの中身そのもの、例えば、エントリーやエグジットの条件、新規注文や決済注文の命令などの各種処理を記述します。

OnTick関数は、チャートにレートが配信されるタイミングで実行します。

基本的に、プログラムは、上から順に動作していくので、イベントを起こしたい順番に上から記述していきます。

 

スポンサーリンク

int OnInit() {}:初期化処理関数

サンプルプログラムに記述はありませんが、MetaEditorで新規作成を選ぶと13行目に出てきます。

「int OnInit() {}」(OnInit関数)は、初期化処理をするためのイベント処理関数で、EAをチャートに適用したときに1度だけ実行します。

記述場所は、OnTick関数の上と決まっています。

なお、OnInit関数を使わない場合は記述不要です。

 

スポンサーリンク

void OnDeinit() {}:終了処理関数

こちらもサンプルプログラムに記述はありませんが、MetaEditorで新規作成を選ぶと23行目に出てきます。

「void OnDeinit() {}」(OnDeinit関数)は、終了処理をするためのイベント処理関数で、EAをチャートから削除したときに1度だけ実行します。

記述場所は、OnInit関数とOnTick関数の間と決まっています。

なお、OnDeinit関数を使わない場合は記述不要です。

 

スポンサーリンク

まとめ

今回は、MT4のサンプルEAを使ってEAの基本構造と書き方を解説しました。

EAの自作はけして難しいものではありません。

一見難しそうに感じるかもしれませんが、簡単ですから、ぜひ挑戦してみましょう♪

コメント

タイトルとURLをコピーしました