LoginSignup
6
11

More than 5 years have passed since last update.

Meta Trader 4 における自動取引システム(Expert Advisor)検証

Posted at

はじめに

今回は Meta Trader 4 における自動取引システム (Expert Advisor) 作成 で作成した Expert Advisor(EA)の検証、パラメータチューニングとバックテストを行います。

ストラテジーテスター

表示

まずストラテジーテスターが Meta Trader 4(MT4)表示されていない場合ですが、ウィンドウ上部のメニューから View -> Strategy Tester をクリックし画面に表示させます。

05_01_tester.tiff

項目

各項目は次のような役割になっています。

項目 内容 選択内容
Expert Advisor バックテストしたい EA を選択する。
Symbol 対象とする商品を選択する。
Model 使用するデータを選択。 Every tick: 全ティックを利用する。
Control points: 1本のロウソク足につき12個の点を生成し利用する。
Open prices only: 始値のみを利用する。
Use date 対象の日付と時間を選択する。
Period 時間軸(足)を選択する。
Spread スプレッドを自由に変更できる。デフォルトは対象の商品のデフォルト値。
Visual mode チェックを入れると実際に値動きと売買を確認しながらバックテストが行える。
Expert properties EA に関する各種設定(後述)。
Symbol properties 商品に関する各種項目の確認(スプレッド、取引単位、ストップレベル、取引時間など)。
Open chart チャートウィンドウに取引状況を重ねたものを表示する。
Modify Expert EA を編集する(Mac 版だと動作せず)。

Open chart をクリックすると対象のチャートウィンドウが現れます。バックテストを行うと、下図のように取引状況がグラフ上に重なった状態で表示されます。

05_012_open_chart.tiff

EA の設定 (Expert properties)

Expert properties には Testing 、 Inputs 、 Optimization の設定項目があります。細かく見てみましょう。

05_02_testing.tiff

Testing では以下の項目を設定できます。

項目 内容 選択内容
Initial deposit 初期口座残高。
Positions 取引に利用するポジションの指定。 Long のみ、 Short のみ、両方
Optimized paramter どのパラメータで最適化を行うか。 Balnce: 口座残高
Profit Factor: プロフィットファクター (総利益 / 純損失)
Expected payoff: 期待損益 (総損益額 / 総トレード数)
Maximal Drawdown: 最大ドローダウン額
Genetic algorithm 最適化時、遺伝的アルゴリズムでバックテストの時間を短縮する。

05_03_Inputs.tiff

Inputs では使用する EA のパラメータに関する設定が行えます。 Save と Load で保存・読み込みが可能です。

項目 内容
Variable 最適化したい項目を選択する。
Value 使用するパラメータを設定する(最適化しない場合はこの値を利用する)。
Start 最適化の開始値。
Step 最適化時の変化量。
Stop 最適化の終了値。

05_04_optimization.tiff

Optimization では最適化時の制約を設定できます。おそらくあまり弄る必要は無いはずです。

バックテストの実行

確認できる項目

各種項目を設定したら、右下の Start をクリックするとバックテストが始まります。終了後は次の内容が確認できます。

項目 内容
Results 取引履歴が確認できます。
Graph 口座残高の推移が確認できます。
Report 結果の詳細です (後述)。
Journal 各種ログが確認できます。

05_05_report.tiff

Report タブでは次の内容が確認できます。

項目 内容
Bars in test バックテストに利用したローソク足数
Mismatched charts errors バックテスト対象の足とより小さい時間足との不一致数
Inital deposit 初期口座残高
Total net profit 総損益 = バックテスト終了時の口座残高 - 初期口座残高
Profit factor プロフィットファクター = 総利益 / 総損失
Absolute drawdown 初期口座残高からの最大ドローダウン = Initial deposit - 最小口座残高
Total trades 総取引数
Ticks modelled バックテストに利用したティック数
Modelling quality バックテストの精度
Spread スプレッド
Gross profit 総利益
Gross loss 総損失
Expected payoff 1トレードあたり利益 = Total net profit / Total trades
Maximal drawdown 最大ドローダウン = ピーク時口座残高 - 最小口座残高
Relative drawdown 相対ドローダウン = ピーク時口座残高 - 次のドローダウンの最大比率・金額
Short positions 売り取引数 (勝率 %)
Long positions 買い取引数 (勝率 %)
Profit trades 利益が出た取引数 (割合)
Loss trades 損益が出た取引数 (割合)
Largest profit trade 1取引あたりの最大利益
Largest loss trade 1取引あたりの最大損失
Average profit trade 利益が出た取引の平均利益
Average loss trade 損益がでた取引の平均損益
Maximum consecutive wins 最大連続勝ち取引数
Maximum consecutive losses 最大連続負け取引数
Maximal consecutive profit 最大連続利益
Maximal consecutive loss 最大連続損益
Average consecutive wins 平均連続勝ち取引数
Average consecutive losses 平均連続負け取引数

Report タブの領域で右クリックすると、レポートを HTML 形式で保存することが出来ます。

05_052_strategy_tester_result.tiff

最適化

MT4 では EA の各種定数最適化ができます。

最適化の実行

Expert properties を選択後、Testing タブの Optimization parameter を最適化する目的変数(デフォルトだと損益)に設定します。その後 Inputs タブを選択し、最適化したい変数のチェックボックスをチェックします。そして各変数の Start、Step、Stop を設定し、OK をクリック。ストラテジーテスターの Optimization をチェックし、Start をクリックすると最適化計算が始まります。

計算終了後には Optimization Results タブと Optimization Graph タブが出現します。

最適化の結果確認

05_06_optimization_result.tiff

結果のタブを確認すると、各パラメータにおける結果が確認できます(上の結果ほど良い結果)。

05_07_optimization_graph.tiff

またグラフを確認すると、結果のタブにある Pass の番号と目的変数の関係性がプロットされます。

これらの結果から、使用するパラメータを決定し、もう一度バックテストを行い詳細レポートを確認できます。

おわりに

これで作成した EA のバックテストと使用するパラメータの最適化を行うことが可能になりました。ここまでで MT4 内で完結するロジックを自由に組むことが可能になりました。

参考文献

6
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
11