超初心者向けEAプログラミング入門②|MT4で実際にソースコードを書いて動かそう

EA作成入門
記事内に商品プロモーションを含む場合があります
スポンサーリンク

🔰 はじめに|MT4のMetaEditorで新規作成ソースコードにプログラムを書こう

今回は、EAプログラミング未経験や超初心者のあなたに向けて、MT4のMetaEditorで新規作成されたソースコードに実際にプログラムを書いていく手順を解説します。

ここでは、『簡単な文字をチャートに表示させるEAを作り、動かすこと』までが分かればOKです。

最初は単純ですが、ここがプログラミングの第一歩!
自分の書いたコードが目に見えて動くのは楽しいですよ

🔗 前回の記事:
▶ 超初心者向けEAプログラミング入門①|MT4の基本ソースコードを1行ずつ読み解こう

ソースコードを書く

MetaEditorの「OnTick()」関数内(たとえば34行目あたり)に、以下の1行を書いてみましょう。

   Comment("EAテスト");

このコードは「チャート左上に”EAテスト”という文字を表示する」というシンプルな命令です。

書くときの注意点は以下の通りです。

  • 半角英数字で書くこと(”EAテスト”の中は全角OK)
  • スペースは半角であること
  • 文の最後には「;」を忘れずに
  • Commentの「C」は大文字にする
31行目:void OnTick()
32行目:  {
33行目://---
34行目:    Comment("EAテスト"); 
35行目:  }

このように書き込めたら次は「コンパイル」です。

★書き込んだもの(正解)がこちら

//+------------------------------------------------------------------+
//|                                                         test.mq4 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
     Comment("EAテスト");
  }
//+------------------------------------------------------------------+

スポンサーリンク

コンパイル(EA化)する方法

コンパイルとは「書いたソースコードをEAとして実行可能なファイルに変換する」作業です。

MetaEditorの上部にある「コンパイル」ボタンをクリックするだけでOK。

コンパイルに成功するとEAのexeファイルが出来上がります。めちゃくちゃ簡単でしょ!?

ただし、黄色枠の箇所のようになっている(2行目の最初が 0 error(s)となっている)必要があります。

以下の画像は、わざと;を消した悪い例になります。

※「;」は日本語で言うところの「。」のようなものなのでプログラムを書いたら原則つけるようにしましょう

このようになるとエラーですのでEAのexeファイルは出来上がりません。自分で書いたソースコードを見直して正しいソースコードに直しましょう。

EAをMT4で動かして確認する

それでは、実際に出来上がったEAの動きを確認してみましょう。

動きといっても今回作成したEAはチャートの左上に「EAテスト」と出るだけのものです。

が、これも立派なプログラム。これができたらあなたはもうプログラマーです!どんな授業や本でも初めはこの文字を出すという所から始まります。私も初めは学校で文字を出す所から始まったのを覚えています!

あと、このタイミングでEAが自動売買できるようMT4の設定も行いましょう!

MT4の自動売買設定

まず、MT4の画面でメニューバーの「ツール」→「オプション」をクリックします。

次に、オプション画面の「エキスパートアドバイザ」タブを開き、「自動売買を許可する」 「DLLの使用を許可する」にチェックを入れて「OK」をクリックします。

最後に、MT4にある自動売買ボタンが「停止状態」か確認し、停止状態ならクリックして「実行状態」にしましょう。

これで、MT4でEAを使えるようにする設定は完了です。

スポンサーリンク

EAをチャート上に適用する

まず、チャートがMT4の画面上に表示されているかを確認してください。以下みたいに何も表示されていない場合は、「気配値表示」でチャートを表示したい通貨を右クリックし「チャート表示」をクリックします。

次に、MT4の画面を見てナビゲーターの、以下赤枠の箇所のエキスパートアドバイザーの先頭部の+をクリックしてください。コンパイルしたEAを含め3つが出てくると思います。

※注意 上記画像のようにチャートは必ず表示させておいてください
(EAは現在表示させているチャート上で動いていく形になります)
  • MACD Sample (MT4に最初から入っているサンプル)
  • Moving Average (MT4に最初から入っているサンプル)
  • test  (自分で名前を付けたものが表示されます)
    ※testが無い場合は、赤枠内で右クリック→「更新」をクリックしてみてください
    ※更新をクリックしても無い場合は、コンパイルがしっかりできていない可能性が高いのでコンパイルできているか確認しましょう

次にtest(自分で付けた名前)を「右クリック」→「チャートに表示」をクリックしてください。すると以下の画面が出ますので「全般」タブをクリックしてください。

test 1.00となっていますが、これは 入門①で説明した#property version の値が出ています。また、Copyright 2020, mef Software. も #property copyright の値が出ていますね。

全般タブの以下赤枠の部分を確認し、自動売買を許可するにチェックが入っていない場合はチェックを入れてください。チェックが入っているのを確認した後、「OK」ボタンをクリックしてください。

「OK」ボタンをクリックしたあと、まずはチャートの右上を見てください。

適用したEA名称+ニコニコマークが出ていると思います。この状態になっていればEAは正常に適用されたことになります。

ニコニコマークではない場合

上記のようにニコニコマークではなく、残念な顔になっている場合はEAが正常に適用されていないため、もう一度「MT4の設定」と「EAをチャート上に適用する」のところで、自動売買を許可する関連の設定がしっかりできているか見直しましょう。

EAの動きを確認する

最後に、チャートの左上をみてください。今回の、EA「test」は単純に文字を表示するだけのEAなので、黄色枠のところに「EAテスト」と出ていればOKです!※表示しているチャートの値が変わったら出てきますでの休みの日のような値が動いてない時は表示されません

※取り合えず休日にどうしても動きを確認したい場合、思い出してください。値動きしなくても初回に1回だけ実行される所がありましたね!そう、「int OnInit()」です。16行目に上記と同じようにComment(“EAテスト”);と書いてコンパイルしてもう一度チャートを見てください。そうすれば「EAテスト」と出てきます!

★書き込んだもの(正解)がこちら

//+------------------------------------------------------------------+
//|                                                         test.mq4 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("EAテスト");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
     Comment("EAテスト");
  }
//+------------------------------------------------------------------+

EAを終了させる方法

EAを終了したい場合は、ニコニコマークを右クリックし、「エキスパートアドバイザ」→「削除」をクリックすることで終了できます。
※EA名称+ニコニコマークが消えます

スポンサーリンク

違う文字を表示させてみる

さて、文字が出た!という感動冷めやまぬうちに次に行ってみましょう。試しに「EAテスト」の部分を「Ask」に書き換えてコンパイルしてみましょう。

31行目:void OnTick()
32行目:  {
33行目://---
34行目:    Comment(Ask); 
35行目:  } 

エラーが出てないことを確認して、MT4の画面を見て頂くとこんな感じになっていますでしょうか。

「Ask」は現在の買値を表す組み込み変数です。

チャートの値動きに合わせて左上に価格が表示されるようになり、一気にプログラミングっぽくなります!

他の通貨ペアで表示させたい場合は、その通貨ペアのチャートを開いてEAを適用すればOKです。

別通貨の値を出したい場合

ドル円じゃなくてユーロ円の値を出したいんだけどという場合・・・簡単です。ユーロ円のチャートをMT4画面上に表示させた後、EAをチャート上に適用するだけでOKです。

EAはチャートに連動するので、ユーロ円でEAを動かしたい場合はユーロ円のチャートを表示させてEAをチャート上に適用するといった形にします。最初は勘違いしがちですが、プログラムでドル円を取引するとかユーロ円を取引するとかを書くわけではないんですね。ユーロドル等も同じ要領です。

✅ まとめ|動かして理解するEAプログラミングの第一歩

  • MetaEditorの「OnTick()」に1行書くだけでEAが作れる
  • コンパイルはボタンひとつで簡単
  • MT4で自動売買設定を忘れずに
  • EAをチャートに適用し、動作を確認しよう
  • 「Comment(“文字列”)」でチャートに文字が出せる
  • 組み込み変数を使うと値動きに連動した表示も可能

これでEAプログラミングの第一歩が踏み出せました。

次回は「条件分岐(if文)」を使って、より複雑な動きをプログラムしていきます。

▶ 次回予告

次回はプログラミングに必須の知識「if文」の使い方を解説します。


✅EA開発初心者の方はこちらもチェック!

MT4やMQL4の知識がなくても大丈夫!
当サイトでは、プログラミング未経験者でも分かるEA開発の基本から、サンプルコードを使った実践的なチュートリアルまで多数ご用意しています。

ChatGPTやEAつくーるでのEAの作り方に興味がある方は是非参考にしてください。

コメント