作成したEAの検証方法を学ぼう
はじめに
GogoJungle / Skijan を運営しております、株式会社ゴゴジャンです。
今回は、EAつくーるの基本的な操作について理解した方向けに、作成したEAを検証して取引が正しく行われているかをチェックしする方法、もし正常に動かなければ条件を修正する方法について紹介していきたいと思います。
EAつくーるに初めて触れる方は、ぜひ下記リンクから過去の記事をご覧ください。
・EAつくーるの基本操作と使い方
・取引条件について徹底解説
・オプションについて知ろう
・ゴールデンクロスを用いた簡単なEAを作ろう
・MACDを使ってみよう
・ナンピン・ピラミッディングを使ってみよう
・カスタムインジケーターを用いたEAを作ろう
・半裁量EA・決済EAを作成しよう
・一目均衡表を用いたEAを作ろう
目次
・作成したEAをバックテストする
・想定通りの取引をしない場合には
・不等号の確認
・適用価格の確認
・ポジションの確認
・損切り、利食いの競合を確認
・エラーログの確認
・半角/全角の確認
・シンプルなロジックに分解して検証する
・その他Q&A
・おわりに
作成したEAをバックテストする
EAつくーるで作成したEAをバックテストする方法からご紹介します。
EAつくーるで作成したプログラムは、mq4,mq5形式で出力されます。
ダウンロードしたプログラムをダブルクリック、もしくはMetaTraderのメニューにある「ツール」→「メタエディター」(ショートカットキー:F4)から選択して開くことで、以下のMetaEditor画面が表示されます。
赤枠の「コンパイル」ボタンを押すことによって、このmq4,mq5のデータをそれぞれex4,ex5のデータに変換した状態でMetaTraderの「Expert」フォルダ内に自動で格納することができます。
その後、MetaTraderでストラテジーテスター(ショートカットキー:Ctrl+R)を開きます。
メニューから表示する場合は、下記画面のように「表示」→「ストラテジーテスター」とクリックすることによって、ストラテジーテスターの画面を表示することができます(以下の画像はMT4です)。
ウィンドウが最小化されている場合があるので、その場合はウィンドウ枠を適宜調節しましょう。
ストラテジーテスターの詳しい操作方法については「MT4 EAのバックテスト方法」の記事をご覧ください。
なお、パフォーマンス検証ではなく、作成したEAのロジックが正常に動作しているかどうかを確認するだけの場合は、バックテストのデータは短期間でも問題ありません。
短期間のデータでよければ、対象の通貨ペアのチャートを表示してMetaTraderを再起動すればデータが整います。
スタートボタンをクリックし、テストが完了すると、以下のようなテスト結果(ビジュアルモードに✔していない場合は、残高のグラフのみ表示)を確認することができます。
取引結果や残高のグラフなどをチェックすることによって、自身の作成したEAが想定通りに動作しているのか確認できます。
もし、取引が一切行われていなかったり、想定しない形でのエントリー・決済が行われていた場合には、以下の方法で設定を見直していきましょう。
想定通りの取引しない場合には
EAつくーるで作成したEAをテストする際、自分の想定した通りにEAが取引を実行してくれない場合があります。
明らかにエントリー回数が多すぎたり、または全くエントリーしなかったり、意図しない場面でエントリーしていることがあります。
こうした不具合は、主に手動で設定した条件のミスや機能の勘違いなどから発生することが多いです。
こうした問題を解決するために、以下の方法を試しましょう。
不等号の確認
まずは、自身が設定したい条件に対して、取引条件上で設定した項目が適切なものになっているかという点について確認してみましょう。
間違えやすい項目として、条件の不等号が挙げられます。
下図赤線内の不等号が逆向きになっていたりすることで、いつまでもエントリー条件が満たされず取引を行わないことがあります。
不等号について以下に説明します。
「=」: 等号
二つの値が等しいことを示します。
例えば、(a = b)は「aとbは等しい」という意味です。
「≠」: 不等号
二つの値が等しくないことを示します。
例えば、(a ≠ b)は「aとbは等しくない」という意味です。
「>」: 大なり記号
左側の値が右側の値より大きいことを示します。
例えば、(a > b)は「aはbより大きい」という意味です。
「<」: 小なり記号
左側の値が右側の値より小さいことを示します。
例えば、(a < b)は「aはbより小さい」という意味です。
「≧」: 大なりイコール記号
左側の値が右側の値以上であることを示します。
例えば、(a ≧ b)は「aはb以上」という意味です。
「≦」: 小なりイコール記号
左側の値が右側の値以下であることを示します。
例えば、(a ≦ b)は「aはb以下」という意味です。
適用価格の確認
「適用価格」についても条件の設定ミスが発生することがありますので、確認してみましょう。
例えば、以下の条件は「0本前」の「終値」となり、現在価格(確定していないローソク足の最新のティック)が条件項目として用いられます。
現在価格(確定していないローソク足)を条件に用いると、何度もエントリー条件が満たされることになってしまい、決済の条件にもよりますが何度も取引が発生する場合があります。
また、ローソク足確定時には条件が成立していないこともあり、バックテストの最終結果だけを確認した場合は、条件通りに成立していないと誤認していまう事例もありましたので、現在価格(確定していないローソク足)を条件とする場合は、ビジュアルモードでティック単位に確認しましょう。
確定していないローソク足を条件に用いた上での頻繁なトレードを制限したい場合、オプション機能から「一本当たりのエントリー回数制限」などを用いることによって、一つのローソク足の中にてエントリーする回数を1回に制限することができます。
ポジションの確認
取引条件によっては、ポジションを指定する項目が存在します。
このポジションが正しく設定されていない場合は、条件が成立しないため確認しましょう。
※「ポジション」はマジックナンバーのことではなく、「ポジション1」や「ポジション2」などのEAつくーる上でのポジションの扱いになりますので注意しましょう。
損切り、利食いの競合を確認
EAつくーる内には、同時に使用すると競合する機能がいくつか存在します。
もし、意図しない場面でポジションが閉じられていたり、また逆にポジションが想定通りに閉じていない場合は、「決済逆指値(S/L)」「決済指値(T/P)」をまず確認しましょう。
ナンピン・ピラミッディングはロジックの特性上、複数のポジションを保有するため、変更注文があるオプション「トレーリングストップ」「建値ストップ」は組み合わせができないので注意しましょう。
また、基本項目の「損切り」「利食い」についても、初回エントリーのみ適用となるため注意が必要です。
その他、「ドテン」オプションと基本項目の「損切り」「利食い」の競合など、様々なケースが考えられますので、疑いがある場合はそれぞれのオプションの注意事項などを確認してみましょう。
エラーログの確認
取引を行わない、もしくはストラテジーテスターがすぐに停止してしまう場合は、プログラムの挙動そのものに対してエラーが発生している可能性があります。
「ストラテジーテスター」→「操作履歴」を閲覧することによって、テストのエラーログを確認することができます。
エラー内容をLABOや各サイトで調査して解決可能な場合があります。
半角/全角の確認
また、EAつくーるでは全角の数字を認識しません。条件設定内で全角の数字を用いている場合、以下のようにArray out of rangeといったエラーが発生することがあります。
半角と全角は見分けが困難のため、該当する場所が判明した場合は半角数字に書き換えるか、またはプログラムを初期化して作り直すことによって対応しましょう。
シンプルなロジックに分解して検証する
上記の方法を試した上でも原因が分からない場合、そのロジック(条件設定)をシンプルなものに分解していきながら検証すると良いでしょう。AND条件やOR条件を最小限の数に変更後、それで動かなければより条件を削り、動けば条件を追加していくという形で検証していくことによって、概ね全ての不具合を解決することができます。
条件設定の詳細についても、極力シンプルなものに変更して一つずつ検証していくことによって、不具合がどこにあるのかを発見しやすくなります。
その他Q&A
LABOでは、以下の記事も掲載されています。
問題が解決しない場合は、これらの記事もチェックしてみましょう。
・EAのマジックナンバー設定・EAがリアル口座で取引しないときの確認方法
・Includeファイル(Tkool.mqh)の設置場所を教えてください。
おわりに
作成したEAの検証や不具合修正の方法については以上になります。
今まで動作していた既存のEAが動作しなくなった、バックテストのデータに不備がある、回線不通、無効な口座など、EAつくーるに関連がない事象については、MetaTraderを取り扱っている会社にお問い合わせしましょう。
EAつくーるで作成したEAは、条件の組み合わせ、条件指定の誤りなど、様々な理由で意図したとおりに稼働しない場合もございます。
バックテストおよびデモ口座にて、稼働確認ができてから、リアル口座にて稼働開始をお願いいたします。
今後とも「EAつくーる」をよろしくお願い申し上げます。
よろしいですか?