超初心者向けEAプログラミング入門②

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

はじめに

ここではEAプログラミング未経験者や超初心者といった方向けに、MT4のMetaEditorで新規作成から表示されたソースコードに対して、実際にプログラミングしていきます。

  • ソースコードの書き方
  • コンパイルする
  • EAを動かして確認する

この記事の最後にはめちゃくちゃ簡単なものですがEAが出来ちゃいます!MT4の画面上に自分の書いたことが目に見えてわかるので、面白いと思いますよ!

ここでは、『EAを作って動かす』までが分かればOKです。

前回の記事

前回は、ソースコードの読み方を学びました。まだの方は是非こちらもご確認下さい。

ソースコードを書く

さて、それでは実際にソースコードを書いてみましょう。書く場所は、もちろん前回説明した 「OnTick()」の34行目です。では、34行目に以下の1文を書いてみてください。

   Comment("EAテスト");

これは、EAテストという文字をチャートの左上に表示するといういたってシンプルなソースコードになります。以下の点に注意してください。

  • 半角英数で書いていること ※”で囲んでいるEAテストは全角文字でもOK
  • スペースは半角スペースであること
  • 最後に;があること
  • CommentのCは大文字であること
31行目:void OnTick()
32行目:  {
33行目://---
34行目:    Comment("EAテスト"); 
35行目:  }

こんな感じになりましたでしょうか。ソースコードが書けたら次はコンパイル(ソースコードをexeファイルに変換する作業)です。

スポンサーリンク

コンパイルする

コンパイルという作業は、例えると原稿を本にするみたいな感じです。ソースコードをEAにします。

コンパイルなんですが、めちゃくちゃ簡単です。まずは以下の赤枠の部分の『コンパイル』をクリックしてください。

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

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

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

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

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

EAを動かして確認する

それでは、実際に出来上がった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テスト」と出てきます!

EAを終了したい場合

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

スポンサーリンク

違った文字を出してみる

さて、文字が出た!という感動冷めやまぬうちに次に行ってみましょう。今度はEAテストという決まった文字ではなくもう少し流動的な文字にしてみます。 先ほどのMetaEditorに戻って頂いて、”EAテスト”と書いていた箇所をAskに書き換えて「コンパイル」をクリックしてください。

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

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

先ほどEAテストと出ていた箇所に、ドル円の値が出てきます。しかもチャートの値が変わる度に連動して変わっていることが確認できると思います。どうでしょうか、一気にプログラミングっぽくなりませんか?先ほど書き直した「Ask」というコードは現在の買値を勝手に反映してくれるMQL4に備わっているコードになります。こういった便利コードを沢山駆使してEAをどんどん作り上げていくわけですね。

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

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

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

最後に

お疲れ様でした。簡単ではありましたが、これがEAの作成と動作確認になります。

今はまだ文字を出すことしかできませんが、これも立派なプログラミングです。文字を出せたらドル円を買う事も売る事も出来たも同然です。言ってしまえばComennt(Ask)をOrderSend(・・・)に書き換えるだけでドル円を売ったり買ったりできます。
※値動きがあるたびに買ったり売ったりしちゃいますが・・・

プログラミングというと小難しく聞こえますが、要点を抑えてしっかりと理解すれば全然難しいものではありません。

次回、入門③では条件分岐(if文)について書いています。
※値動きがあるたびに買ったり売ったりしないように条件を付けるわけです!

※プログラミング知識が無くてもEAが作れる!


※オンラインレッスン

コメント