チャートのチェックが難しい
トレードの機会損失を防ぎたい
自己ルールがはっきりしている
そんな方にはEAを使った自動売買をオススメします!!
EAを使えば、チャートに張り付く必要もなく、ルールに従い、自動的に注文から決済まで全て自動で行ってくれます。
EAって難しいんじゃないの?
いいえ、そんなことはありません。MT4を使えば初心者でも簡単に使う事できます!
通常、EAを動かすまでの順序は
①EA入手
↓
②バックテスト
↓
③フォワードテスト
↓
④稼動
の4ステップを辿ります。この中で大事なのが②のバックテストです。バックテストによってEAが実用に値するのか?判定することになります。
今回はMT4を使ったバックテストの方法について徹底解説!早速見ていきましょう!!
バックテストはデモ口座でやった方が良い
リアル口座とバックテスト用の口座は分ける事をオススメします。
というのも間違えてテストではなくリアルトレードに投入…何てことになっても誰も責任をとってくれませんからね( ̄Д ̄;;
管理人はバックテストにはXMのデモ口座を利用しています。すぐに開設できる上に取引環境がリアル口座と同じの為、そのままフォワードテストも行えるメリットがあります。また、口座の有効期限もありません。
\ XMについて詳細は! /
EAはどうやって入手したらいいの?
EAは無料・有料・自作するのいずれかで入手しますが、今の世の中、Google先生に聞けばすぐに関連するEAを教えてくれます。
高機能なものは有料のモノが多いですが、必ずしも優秀とは限らないのがEAの難しいところです。要は「どういった自動売買をしたいのか?」が問題なので、フリーで間に合えばそれで充分といえます。
注意点として、フリーEAはバグなどが存在する可能性があります。
海外サイトで探せばフリーEAは多く見つかりますが、必ずバックテストを行いましょう!リアル口座で稼動させて予期せぬ動きがあってからでは遅いです。
必ずバックテストを長期スパンにて行い、実用に耐えうるか検証してください。
MT4でバックテストをやってみよう!
バックテストとは、過去のレートを使いEAを適用・稼動させてどういった結果を残すのか検証する事をいいます。
後述しますが、検証後にEAの成績が発行されます。運用に値するかどうかはこの成績によって判断されます。
ヒストリカルデータを入手
それではバックテストの前準備に入りましょう。
過去の為替レートをデータ化したものをヒストリカルデータといいます。通常は通貨ペアのレートが数年分まとめらているデータファイルとなっています。
★ヒストリカルデータの入手場所
① FX業者独自のヒストリカルデータ
最もオススメ。配布している業者は少ない
② MetaQuotes社のヒストリカルデータ
MT4上から簡単ダウンロード。抜けや信頼度の問題があり評判がよくない
③ FXDDのヒストリカルデータ
多くのユーザーに使われている
業者によって為替レートは微妙に違います。自分が使うところのヒストリカルデータ(過去データ)を基に検証するのが最も理想的ですが、残念ながら多くの業者は公開していません。
②のMeta Quotes社のモノは最も古い時期まで遡れますが、抜けが多いため検証結果の信頼性が落ちます。
最も多くのユーザーに利用されているのはFXDDのヒストリカルデータです!
過去10年分のデータを使えるのに加え、抜けがないため検証に耐えうる信頼性もあります。今回はFXDDのヒストリカルデータを使い検証していきます。
ヒストリカルデータをMT4に組み込む
①データダウンロード
↓
②自動化有効
↓
③.hstファイル削除
↓
④.hstファイル追加
↓
⑤全てのデータ足作成
5ステップでいきます!
まずはFXDDにアクセス。
1分足のティックデータがズラーッと並んでいます。検証したい通貨ペアのデータをダウンロード後、解凍して.hstファイルを準備しておきます。
次にMT4起動。
上メニューから【ツール】→【オプション】→【エキスパートアドバイザー】を開き「自動売買を許可する」にチェックを付けます。
【チャート】タブに切り替え、【ヒストリー内の最大バー数】を設定します。MAXの【2147483647】にしておく(9999999999と打ち込んでもOK)
バー数が多いとMT4が重くなるのでリアル口座では少ない方が良いです。バックテストは過去のデータを参照する必要があるのでMAXにしておくことが望ましいんですね!
続いて現在の.hstファイルを削除します。
.hstファイルはヒストリカルデータが格納されているファイルのことで、MT4を開いていると勝手に作成されます。
これから使うFXDDの.hstファイルとの混同を避けるため、すでに入ってるファイルは削除します。
上メニュー【ファイル】→【データフォルダを開く】→【history】から上画像のような画面が表示されます。
【XMTrading-】以下のDemoはデモ口座、Realはリアル口座を意味します。今回はデモ口座に入ります。
ここで一旦MT4を閉じてください(.hstファイルの自動生成を防ぐため)
【XMTrading-Demo 3】に入ると.hstファイルがたくさんあります。
バックテストしたい通貨ペアの.hstファイルを全て削除します。
今回はEURUSDでEAの検証をするのでEURUSDを全て削除しました。
MT4を再起動後に【ツール】→【ヒストリーセンター】
EURUSDの1分足をチェック!
MT4を起動すると自動的に直近のバーデータが生成されます。テスト期間を調整すれば問題はありませんが、ダウンロードしたFXDDとの間に期間の抜けが発生するので一応削除しておきましょう。
削除が終わったら、【インポート】→【参照】して、さきほどダウンロードしたFXDDの.hstファイルを選択→【OK】
以上のように過去分のデータが表示されていたら完了です!
今作ったのは1分足のティックデータのみです。ここから5分足~月足のデータを作成します。
MT4付属の「Period Converter」で作成できますが、1つずつ作る必要があり面倒です。「Period Converter ALL」というスクリプトが無料配布されているのでこちらを使いましょう!
MT4の上メニュー【ファイル】→【データフォルダを開く】→【MQL4】→【Scripts】にダウンロードしたファイルをコピー → MT4再起動。
ナビゲーターから【スクリプト】→【perido_converter_ALL】をEUR/USDの1分足チャートにドラッグ&ドロップ。
処理が完了するまでに数分かかります。
【ファイル】→【オフラインチャート】を開いてください。差出人のリストがデータの始まり年月です。上図は2008年から2018年3月までのデータを抽出しています。M1~MonthlyまでEURUSDの全てのヒストリカルデータが作成されたら事前準備は完了となりますΣb( `・ω・´)
ストラテジーテスターの使い方
ストラテジーテスターの設定方法
バックテストはストラテジーテスターというMT4の機能を使って実行します!
【表示】→【ストラテジーテスター】(もしくはCTRL+R)で開きます。
① エスキスパートアドバイザー
EAを選択。今回は付属のMoving Average.ex4を選択
② 通貨ペア
EAを適用させる通貨ペアを選択。EAによっては使える通貨ペアが限定されています。
③ モデル
シュミレーションの精度を選択。全ティック>コントロールポイント>始値のみの順に精度が上がりますが、バックテスト時間もより長くかかります。実運用の事を考えて全ティックにしておく方が良いです。
④ 期間を指定
EAを適用させる期間を指定。ヒストリカルデータによって指定できる期間が違います。
⑤ ビジュアルモード
チェックをいれるとチャートを描画しながらシュミレーションします。エントリーポイントなどが視覚的に確認できますが、バックテスト時間は極端に長くなります。
⑥ 期間
EAを適用させる時間足を指定します。EAによっては使える時間足が限定されます。
⑦ スプレッド
バックテストは原則固定スプレッドです。その値を指定。単位はポイントが採用されています。1pipは10ポイントです。
⑧ 最適化
EAのパラメーターを複数適用させながらバックテストを行います。パラメーターの設定は【エキスパート設定】から。尚、最適化にチェックをいれるとビジュアルモードは使えなくなります。
収支を確認するために証拠金などの設定もしておきましょう
【エキスパート設定】→【テスト設定】から初期証拠金を設定します。円建てにしたければJPYと直打ちします。
ポジションで買いのみ、売りのみのエントリーに設定することもできます。デフォルトではlong&short。
最適化の項目は最適化にチェックをいれてる時のみ設定します。今回は不要です。
【パラメーターの入力】からEAのパラメーターが設定できます。
【値】となっている箇所に入力していきます。例えばMAの期間10日にしたければ【Moving Period】の12日を10日に変更します。右側のスタート、ステップ、ストップは最適化する際に使いますので、今回は不要となります。
サンプルEAで自動売買を実行
① エキスパートアドバイザー
Moving Average.ex4
② 通貨ペア
EURUSD
③ モデル
全ティック
④ 期間を指定
2014.1.1~2016.12.1
⑤ ビジュアルモード
なし(チェックを付けて描画を見てもOK)
⑥ 期間
日足
⑦ スプレッド
30
⑧ 最適化
チェックをつけない
⑨ パラメーター値
初期値のまま
以上を設定したら【スタート】を押してバックテストを開始します。スタート横の緑バーが右端までいったらバックテスト終了です!
バックテスト後の成績評価について
バックテストの後に成績表が発行されます。成績評価は見る項目が多く、評価の仕方は人それぞれです。
成績は下タブから見れます。【結果】【グラフ】【レポート】の3つです。
結果
売買や約定の履歴が見れます。それに応じた約定価格、損益もここで確認
グラフ
資産の推移をグラフ化
レポート
成績評価の要。純益、ドローダウン、プロフィットファクタなどを確認。
レポート画面は右クリックから保存もできます。
↓↓下のレポート画像をクリックすると今回のテスト結果を見ることができます↓↓
今回のバックテストで、
総トレード数36回中、勝ちトレードが9回、負けトレードが27回。勝率は25%で、損益は241.93ドルのプラスになっているのがレポートから分かります。
連勝、連敗まで分かりますね!
様々な統計を確認できますが、赤枠で囲んだ統計はより重要です。各データの内容は以下の通り
モデリング品質
バックテストの精度。MAXは90%。90%未満で低品質、n/aが表示されれば信頼に値しない。検証結果は90%であることが望ましい。
不整合チャートエラー
エラーのあったティック数。0でない結果はそれだけで信憑性にかける。
プロフィットファクタ(PF)
プロフィットファクタ = 総利益 ÷ 総損失。1.0以上だと利益をだせるEA、1.0未満だと利益をだせないEAと簡単に理解できる。バックテストの設定によって変化するが、当然ながら1.0未満のEAは使い物にならない。
期待利得
1回のトレードあたりの損益(平均値)。期待利得 = 純利益 ÷ トレード回数
絶対ドローダウン
口座の初期資金から最も下がった時の金額。EAの開始時期によってはガッツリ下がるがそこまで重要な指標ではない。
最大ドローダウン
バックテスト期間中に最も大損した金額。
相対ドローダウン
バックテスト期間中に最も大損した割合。
総益や純利益よりもプロフィットファクタの方がより重要な指標になります!!
AというEAで「純利益100万、純損失50万」、BというEAで「純利益10万、純損失2万」の結果が出たとしてどちらが優秀だと思いますか?
プロフィックファクタ(PF)で比較すると….
A → PFは2.0
B → PFは5.0
Bのレバレッジを10倍にしてやれば純利益100万の純損失20万になりますよね?AのEAより利益が30万円も上乗せされている事が分かります。
このように利益よりプロフィットファクタを見た方が正しい評価に繋がるわけです!
また、ドローダウンは単利運用と複式運用で重視すべき項目が違います。
単利なら最大ドローダウン、複式なら相対ドローダウンを重視すべきです。というのも単利は固定ロットで運用されるのに対して複利は損益に合わせてロット数が変化します。
一定の利益を上げられるEAがあるとします。単利の場合、利益曲線は直線。一方の複利の場合は曲線です。
複利で元金が大きくなればなるほど、必然的に利益も損失も大きくなります。
そのため金額よりも相対ドローダウンの比率を見た方が正当な評価につながります。
ドローダウンはより小さい値ほどリスクの少ない安定したEAという事になりますね!
自動売買の最適化で時間短縮!
設定値を決めた上でバックテストを行いましたが、場合によっては色々と設定値を変更しながらテストを行いたいところです。
そんな時は最適化を使いましょう!
ストラテジーテスターの最適化にチェックを付けると様々なパラメーターを利用してバックテストが実行されます。パラメーターを複数組み合わせることができますが、数が多すぎると極端にテスト時間が掛かるのでご注意ください。
例えばパラメーターにMAの期間を3パターン、TP(利食い)を4パターン設定すると、
3 × 4 = 12パターン
合計12パターン全ての組み合わせで検証をします。最適化前と単純に比較して12倍の計算量が必要になりますね。
少しでも最適化の検証を早く終わらせたい場合は、【エキスパート設定】→【テスト設定】→【遺伝的アルゴリズム】にチェックを付けましょう。
これによって明らかに悪い結果を試行から除外してくれるため、テストが高速化します。
最適化の設定は【エキスパート設定】→【パラメーターの入力】から行います。
パラメーターの設定項目はEAごとに異なります。
基本はチェックを付けてスタート(初期値)、ステップ(増加)、ストップ(最後値)を設定です。上画像だとLotsのパラメーターをスタート0.1、ステップ0.1、ストップ0.6に設定しています。「0.1から0.6まで0.1刻みの値を全てテスト」という意味で、全部で6パターンですね。
続いて何に最適化するか?を設定します。
【最適化】のタブから最適化したい項目にチェックを入れます。
例えば【利益】と【ドローダウン】にチェックを入れると、先ほど設定したパラメーターの組み合わせを色々変えながら、利益とドローダウンが最も良くなるパラメーター値を出力してくれます。
最適化の実行と結果
最適化の実行は【最適化】にチェックを付けて、スタートを押すだけです。
自動的にパラメーターの組み合わせによる結果を出力してくれます。
【最適化結果】から各パラメーターの組み合わせによるプロフィットファクタやドローダウンが分かります。
パラメーターの組み合わせはパスとして管理されています。(番号管理)
【最適化グラフ】は、パスごとの利益がプロットされており、どのパス(パラメーターの組み合わせ)が利益を出せるのか?一目瞭然で分かるようになっています。
また、通常のバックテストと同様にレポート発行も可能です。(上画像をクリック!)
バックテストの問題点
バックテストの問題点
①スリッページを考慮していない
②スプレッドの拡がり考慮していない
③リクオートを考慮していない
④設定次第でいくらでも良い結果が得られる
バックテストはあくまで仮想空間でのテストです。リアルトレードでは、スプレッドが拡がる事がありますが、テストでは考慮されていません。
実は今回のサンプルEA「Moving Average.ex4」もあえて良い結果がでるよう期間を設定をしました。
期間や時間足を変えると大抵ボロボロの結果になります(^▽^;)
EAは設定次第でいくらでも高成績は叩き出せます!
どんな状況でも成績の良いEAなどありえません…もしそんなEAがあればそれは聖杯ですし、人には絶対に教えません(笑)
重要なのは、「この状況なら得意」「この状況は苦手」というようにEAの得意不得意(性質)をしっかり理解することです!
さらに言えば、結果よりも良い成績になった背景(相場状況や傾向)を見極めることが大切です。
EAはただ使えば良いわけではなく、トレーダーの使い方が重要になってきます。
EA稼働にはVPSを使った方がいい
バックテストの次はフォワードテストです。
フォワードテストとは、実際の相場でEAを動かして検証することをいいます。一般的にデモ口座を利用して行われます。
その後、問題がなければリアル口座にて実運用に入っていきます。
自宅でEAを稼動させるためにはPCの電源をONにし続けなければなりません!停電リスクや電気代などのコストといったデメリットがあるため、余裕のある方はVPSを検討してみるのも良いです。
VPSとは、MT4/5がインストールできるWindowsサーバーの事をいいます。本気で自動売買で運用を考えている方は検討してみると良いでしょう。