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

この記事は約4分で読めます。

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

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

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

 

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

「プログラミングなんて自分にはとても無理だ」と思われるかもしれませんが、そんなことはありません。

実は超簡単なので、ぜひ挑戦してみましょう♪

 

スポンサーリンク

MetaEditor の起動

MT4には、EAやインジケーターを書くための専用のテキストエディタ「MetaEditor」が用意されていて、MT4と同時にインストールされています。

まず、この「MetaEditor」を起動します。

テキストエディタとは、基本的には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関数を使わない場合は記述不要です。

 

スポンサーリンク

まとめ

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

EAの自作はけして難しくはありません。

一見難しそうに感じるかもしれませんが、実は超簡単なので、あなたもぜひ挑戦してみましょう♪

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