![見出し画像](https://assets.st-note.com/production/uploads/images/25434440/rectangle_large_type_2_21b511a932dc168b57a13abfb12b53cd.png?width=1200)
【第2弾】初心者でもできるEA開発-ツールを利用した開発フロー(逆張りロジック編)
こんにちは、創哉(twitter:@soya24ea)です。
前作が思った以上に好評で、他のロジック開発も知りたいというリクエストがありましたので第2弾としてボリンジャーバンドを利用した逆張りロジック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月11日 初版公開
2021年6月26日 初版補訂
はじめに
まずは簡単に自己紹介をします。
改めまして、創哉(SO-YA)といいます。
FX(外国為替証拠金取引)の経験は10年近くになりますが、当初取り組んだ裁量トレードは本業があってトレード時間の確保ができず、なかなか上達せず、市場から退場したり、再入場したりの成績が続いていました。
そんなときに自動売買(EA)に出会って「なんて便利なツール(機能)なんだ!」と感動するとともに、コンスタントに成績が出るようになってきました。
ただ欲は出るもので、今度は市販EAの購入代金がもったいなくなり、また、「なんでここでエントリーするんだ??」とブラックボックスな市販EAロジックにも不満と大事な資金を預ける不安が募るようになってきました。
そこで自分でもEAを開発しようと色々な参考書やスクール(塾)の門を叩いたのが2017年で、今は本業の傍ら、自分で使うEAや人づてに依頼があったEAをボチボチ開発する日々を送っています。
モンスター級の利益を上げる有名なEA開発者と比べると全くの無名ですが、EAサイトで成績ランキング上位に入ったり、某EAスクール(塾)サポーターを担当していた経験があります(一応...)。
本稿では、このような経験に基づいて、EA開発初心者からよく質問される開発フロー、特にツールを利用した一例をご紹介したいと思います。
「ツールで作成」と聞くとごく簡単なものしかできないイメージもありますが、結構複雑な機能が実装できたり、コードを一から書くより効率的に開発できるので便利です。
特に使ってみたいロジックがあるとき、まずツールでプロトタイプを作成して市場に対するエッジ(優位性)が確認できたら、その後にコードをゴリゴリ書いてみるといった無駄のない開発ができるようになります。
なお、本稿は「MT4とEAを使ったことがある人」「MT4でバックテストができる人」を想定していますので、基本操作の説明は割愛しています。
もし不明な点等があれば、ぜひググって調べる練習もしてみてください。
上達係数が飛躍的に上がります♪
でも、もし分からないときは、遠慮なくTwitter等でお尋ねください。
■ハッシュタグ「#EAつくーる」
・EAつーるで開発に取り組んでいる人同士で繋がりましょう!
・ぜひTwitterで「#EAつくーる」を付けてつぶやいてください。
■このハッシュタグでできること
・EAつくーるの使い方、開発情報、疑問点の共有
・定期的に確認させていただき、リプやRTなどサポートします。
第1章 プロトタイプの作成
1-1.今回作成するロジック
今回作成するEAの基本ロジックは次のとおりです。
【エントリー】
・ローソク足(終値)が、下側のボリンジャーバンド(期間:14、偏差:2.0)を下抜いたら「買い」、上側のボリンジャーバンドを上抜いたら「売り」
【エグジット】
・ドテン売買(エントリー時に、現在のポジションを手仕舞い、新たに間逆のポジションを仕掛ける)
前作と同じくシンプルなロジックで右肩上がりのEAを狙っていきましょう!
一見複雑なロジックこそ勝てるEAが開発できると思いがちですが、複雑なロジックになればなるほど過剰最適化(オーバーフィッティング)のリスクも増え、将来の相場で通用しないことも少なくありません。
”Simple is best !(シンプルが最善の方法!)”
これはEA開発でもいえることです!
「でも、本当にこんな簡単なロジックで利益が出るの?」
はい、さすがに爆益は難しいですが、市場に対してエッジ(優位性、正の期待値)を見つけることができれば、十分リターンを見込むことができますし、これをベースに作り込んでいけば市販EAに負けないEA開発も夢ではないかも??(あくまで、「かも」です。笑)
(完成予想図)
1-2.ソースコード(MQL4)のコーディング
自動売買システム作成ソフト「EAつくーる」を起動して、次のとおり初期設定を行います。
「EAつくーる」をお持ちではない方は、「1年版14,800円(税込)」または「1か月版1,980円(税込)」を購入してください。
※ どちらも機能の違いはありません。
※ 「EAつくーる」に関する質問は「GogoJungle LABO」が便利です!
※ 「1か月版」は、ゴゴジャンからいつでも解約できます。
マイページ【利用する】→【デジタルコンテンツ】と進み
商品名右横の【購読停止】ボタンをクリックすれば解約完了です。
1-2-1.基本設定
●全ポジション一括設定
・ストップロス 0pips(※ 使用しない)
・テイクプロフィット 0pips(※ 使用しない)
1-2-2.オプション機能
●ドテン機能
・チェックを入れます。
●一本のローソク足でのエントリー回数制限
・チェックを入れます。
1-2-3.ロジック・コーディング
「ポジション1」タブを開いてロジックをコーディングしていきます。
売却条件を入力したら、上部の「売却条件を追加」ボタンを押します。
※ 不要タブを削除するときは「売却条件を削除」ボタンを押します。
(ここがポイント!)
プログラムでは、今動いているチャート(ローソク足)を「0本前」と数えるので、直近の確定足は「1本前」、その1つ前の確定足は「2本前」となり、「上抜け」「下抜け」は次のとおり表現します。
【買いエントリー】
●ローソク足(終値)が、下側のボリンジャーバンド(期間:14、偏差:2.0)を下抜いたら「買い」
↓↓↓
●売買条件1
・2本前のローソク足終値 > 2本前の期間14のボリンジャーバンド -2.0
かつ(and)
●売買条件2
・1本前のローソク足終値 < 1本前の期間14のボリンジャーバンド -2.0
【売りエントリー】
・ローソク足(終値)が、上側のボリンジャーバンド(期間:14、偏差:2.0)を上抜いたら「売り」
↓↓↓
●売買条件3
・2本前のローソク足終値 < 2本前の期間14のボリンジャーバンド +2.0
かつ(and)
●売買条件4
・1本前のローソク足終値 > 1本前の期間14のボリンジャーバンド +2.0
■売買条件1 : 2本前のローソク足終値 > 2本前の期間14のボリンジャーバンド -2.0の場合、買いエントリー
■売買条件2 : 売買条件1に加えて1本前のローソク足終値 < 1本前の期間14のボリンジャーバンド -2.0
■売買条件3 : 2本前のローソク足終値 < 2本前の期間14のボリンジャーバンド +2.0の場合、売りエントリー
■売買条件4 : 売買条件3に加えて1本前のローソク足終値 > 1本前の期間14のボリンジャーバンド +2.0
以上でロジックのコーディングは終了です!
「あれっ?エグジットは??」と思った人も多いですよね?
実は今回作成するEAは、ドテン売買(エントリー時に、現在のポジションを手仕舞い、新たに間逆のポジションを仕掛ける)なので、オプションで「ドテン機能」にチェックを入れれば、売買条件にエグジットをコーディングする必要はないんです!! ちょー楽ちん♪
1-2-4.MQL4ファイルの書き出し
ロジックのコーディングが終わったので、MQL4ファイルを書き出しますが、その前に「セーブ」ボタンを押して作業ファイル(*.ini)を適当な場所に名前を付けて保存します。
次に「EA作成」ボタンを押してMQL4ファイル(*.mq4)も適当な名前を付けて保存します。
このとき、保存する場所を開発環境のMT4のデータフォルダにある「¥MQL4¥Experts¥」にすると「MetaEditor」でコンパイルする際に便利です。
※ データフォルダの場所は、MT4の「ファイル(F)」「データフォルダを開く(D)」で確認できます。
1-2-5.MQL4ファイルのコンパイル
開発環境の「MetaEditor」を起動し、上部の「コンパイル」ボタンを押して先ほど保存したMQL4ファイルをコンパイルします。
あっという間にコンパイルが完了し、「プロトタイプEA」は無事完成です!
自分で一からコードを書くと、かなりの頻度でエラーが出ることもあるので、本当にツールは便利で助かります♪
よかったらサポートお願いします! いただいたサポートは活動費として有意義に使いたいと思います♪