見出し画像

【応援企画】初心者でもできるEA開発-ツールを利用した開発フローを限定公開♪

はじめまして、創哉(twitter:@soya24ea)といいます。
本業の傍ら、FXの自動売買(EA)を利用したトレードやEA開発をボチボチやってます。

本稿では、「負けるな!おうち時間応援企画」ということで、EA開発初心者からよく質問される開発フローを期間限定で公開したいと思います。

ぜひ外出自粛に協力して感染拡大を防ぐとともに、EA開発を通じて「おうち時間」を充実したものにしましょう!

【対象読者】
・MT4とEAを使ったことがある人
・MT4でバックテストができる人
・EA開発 未経験~初学者(特に挫折したことがある人)

【免責事項】
・本稿は、自作EAを作成するまでの開発フローの一例を紹介するもので、FXトレードでの利益を保証するものでも、製品開発に向けた堅固なシステム構築(フェールセーフなど)の内容を含むものでもありません。
・本稿およびサンプルプログラムに基づく行為の結果発生した障害、損失などについて著者は一切の責任を負いません。
・本稿に記載されているURLなどは予告なく変更される場合があります。
・本稿に記載されている会社名、製品名は、それぞれ各社の商標および登録商標です。

【開発環境】
・MetaTrader4 Version:4.00 build 1260(24 Jan 2020)
・EAつくーる version:1.87
・Tick Data Suite Version 2.2.35.0
・MT4BackTester version 2.2.0
・QuantAnalyzer Free version 4.7.0(31 Jan 2020)

【履歴】
2020年5月5日 初版公開
   5月8日 初版2刷
2021年6月26日 初版補訂

はじめに

まずは簡単に自己紹介をします。

改めまして、創哉(SO-YA)といいます。
FX(外国為替証拠金取引)の経験は10年近くになりますが、当初取り組んだ裁量トレードは本業があってトレード時間の確保ができず、なかなか上達せず、市場から退場したり、再入場したりの成績が続いていました。

そんなときに自動売買(EA)に出会って「なんて便利なツール(機能)なんだ!」と感動するとともに、コンスタントに成績が出るようになってきました。

ただ欲は出るもので、今度は市販EAの購入代金がもったいなくなり、また、「なんでここでエントリーするんだ??」とブラックボックスな市販EAロジックにも不満と大事な資金を預ける不安が募るようになってきました。

そこで自分でもEAを開発しようと色々な参考書やスクール(塾)の門を叩いたのが2017年で、今は本業の傍ら、自分で使うEAや人づてに依頼があったEAをボチボチ開発する日々を送っています。

モンスター級の利益を上げる有名なEA開発者と比べると全くの無名ですが、EAサイトで成績ランキング上位に入ったり、某EAスクール(塾)サポーターを担当していた経験があります(一応...)。

画像1

本稿では、このような経験に基づいて、EA開発初心者からよく質問される開発フロー、特にツールを利用した一例をご紹介したいと思います。

「ツールで作成」と聞くとごく簡単なものしかできないイメージもありますが、結構複雑な機能が実装できたり、コードを一から書くより効率的に開発できるので便利です。

特に使ってみたいロジックがあるとき、まずツールでプロトタイプを作成して市場に対するエッジ(優位性)が確認できたら、その後にコードをゴリゴリ書いてみるといった無駄のない開発ができるようになります。

なお、本稿は「MT4とEAを使ったことがある人」「MT4でバックテストができる人」を想定していますので、基本操作の説明は割愛しています。

もし不明な点等があれば、ぜひググって調べる練習もしてみてください。
上達係数が飛躍的に上がります♪

でも、もし分からないときは、遠慮なくTwitter等でお尋ねください。

■ハッシュタグ「#EAつくーる」
・EAつーるで開発に取り組んでいる人同士で繋がりましょう!
・ぜひTwitterで「#EAつくーる」を付けてつぶやいてください。

■このハッシュタグでできること
・EAつくーるの使い方、開発情報、疑問点の共有
・定期的に確認させていただき、リプやRTなどサポートします。

第1章 プロトタイプの作成

1-1.今回作成するロジック

今回作成するEAの基本ロジックは次のとおりです。

【エントリー】
・短期(14)移動平均線(SMA)が長期(50)移動平均線(SMA)を上抜け(ゴールデンクロス)で「買い」、下抜け(デッドクロス)で「売り」

【エグジット】
・ドテン売買(エントリー時に、現在のポジションを手仕舞い、新たに間逆のポジションを仕掛ける)

あまりにもシンプル過ぎるロジックで驚きませんでしたか?

一見複雑なロジックこそ勝てるEAが開発できると思いがちですが、複雑なロジックになればなるほど過剰最適化(オーバーフィッティング)のリスクも増え、将来の相場で通用しないことも少なくありません。

”Simple is best !(シンプルが最善の方法!)”

これはEA開発でもいえることです!

「でも、本当にこんな簡単なロジックで利益が出るの?」

はい、さすがに爆益は難しいですが、市場に対してエッジ(優位性、正の期待値)を見つけることができれば、十分リターンを見込むことができますし、これをベースに作り込んでいけば市販EAに負けないEA開発も夢ではないかも??(あくまで、「かも」です。笑)

(完成バックテスト予想図)

画像40

1-2.ソースコード(MQL4)のコーディング

自動売買システム作成ソフト「EAつくーる」を起動して、次のとおり初期設定を行います。

「EAつくーる」をお持ちではない方は、「1年版14,800円(税込)」または「1か月版1,980円(税込)」を購入してください。
※ どちらも機能の違いはありません。
※ 「EAつくーる」に関する質問は「GogoJungle LABO」が便利です!
※ 「1か月版」は、ゴゴジャンからいつでも解約できます。
  マイページ【利用する】→【デジタルコンテンツ】と進み
  商品名右横の【購読停止】ボタンをクリックすれば解約完了です。

1-2-1.基本設定

●全ポジション一括設定
 ・ストップロス 0pips(※ 使用しない)
 ・テイクプロフィット 0pips(※ 使用しない)

画像3

1-2-2.オプション機能

●ドテン機能
 ・チェックを入れます。
●一本のローソク足でのエントリー回数制限
 ・チェックを入れます。

画像4

1-2-3.ロジック・コーディング

「ポジション1」タブを開いてロジックをコーディングしていきます。
売却条件を入力したら、上部の「売却条件を追加」ボタンを押します。
※ 不要タブを削除するときは「売却条件を削除」ボタンを押します。

(ここがポイント!)
 プログラムでは、今動いているチャート(ローソク足)を「0本前」と数えるので、直近の確定足は「1本前」、その1つ前の確定足は「2本前」となり、「上抜け」「下抜け」は次のとおり表現します。

【買いエントリー】
●短期(14)移動平均線(SMA)が長期(50)移動平均線(SMA)を上抜け(ゴールデンクロス)で「買い」
  ↓↓↓
●売買条件1
 ・2本前の期間14の単純移動平均線 < 2本前の期間50の単純移動平均線
 かつ(and)
●売買条件2
・1本前の期間14の単純移動平均線 ≧ 1本前の期間50の単純移動平均線

【売りエントリー】
・短期(14)移動平均線(SMA)が長期(50)移動平均線(SMA)を下抜け(デッドクロス)で「売り」
  ↓↓↓
●売買条件3
 ・2本前の期間14の単純移動平均線 > 2本前の期間50の単純移動平均線
 かつ(and)
●売買条件4
・1本前の期間14の単純移動平均線 ≦ 1本前の期間50の単純移動平均線

■売買条件1 : 2本前の期間14の単純移動平均線 < 2本前の期間50の単純移動平均線の場合、買いエントリー

画像5

■売買条件2 : 売買条件1に加えて1本前の期間14の単純移動平均線 ≧ 1本前の期間50の単純移動平均線

画像6

■売買条件3 : 2本前の期間14の単純移動平均線 > 2本前の期間50の単純移動平均線の場合、売りエントリー

画像7

■売買条件4 : 売買条件3に加えて1本前の期間14の単純移動平均線 ≦ 1本前の期間50の単純移動平均線

画像8

以上でロジックのコーディングは終了です!

「あれっ?エグジットは??」と思った人も多いですよね?

実は今回作成するEAは、ドテン売買(エントリー時に、現在のポジションを手仕舞い、新たに間逆のポジションを仕掛ける)なので、オプションで「ドテン機能」にチェックを入れれば、売買条件にエグジットをコーディングする必要はないんです!! ちょー楽ちん♪

1-2-4.MQL4ファイルの書き出し

ロジックのコーディングが終わったので、MQL4ファイルを書き出しますが、その前に「セーブ」ボタンを押して作業ファイル(*.ini)を適当な場所に名前を付けて保存します。

画像9

次に「EA作成」ボタンを押してMQL4ファイル(*.mq4)も適当な名前を付けて保存します。

このとき、保存する場所を開発環境のMT4のデータフォルダにある「¥MQL4¥Experts¥」にすると「MetaEditor」でコンパイルする際に便利です。
※ データフォルダの場所は、MT4の「ファイル(F)」「データフォルダを開く(D)」で確認できます。

画像10

1-2-5.MQL4ファイルのコンパイル

開発環境の「MetaEditor」を起動し、上部の「コンパイル」ボタンを押して先ほど保存したMQL4ファイルをコンパイルします。

画像11

あっという間にコンパイルが完了し、「プロトタイプEA」は無事完成です!

画像12

自分で一からコードを書くと、かなりの頻度でエラーが出ることもあるので、本当にツールは便利で助かります♪

ここから先は

8,429字 / 28画像
この記事のみ ¥ 2,980

よかったらサポートお願いします! いただいたサポートは活動費として有意義に使いたいと思います♪