MT5自動売買ソフトの作成9 自動売買ソフトサンプルを見てみる、その2

自動売買ソフトウェアを動かす

バックテストの設定

EA(エキスパートアドバイザ=自動売買ソフトウェア)が儲けられるのか(重要!)、売買が正常にできているのか・・・など、いわゆるデバッグをしないと自分の口座で運用なんてできません。ではどうしたら?

バックテストをしましょう!

メニューの「表示」から「ストラテジーテスター」を選択します。

エキスパートには「Moving Average」を選択し、「USDJPY」で「M30」の30分足を選択します。

日付は「期間指定」で適当に「2023.01.01」~「2023.04.28」を選択してみます。長期間にするとバックテストに時間がかかります。

MT5ではフォワードテストも選択できますが、まずはバックテストだけにしましょう。

延滞(レイテンシー)は実際のping遅延を選択しておきます。

モデルは「全ティック」を選択しますが、バックテストの時間がかかりすぎるようであれば「リアルティックに基づいたすべてのティック」を選択しましょう。

入金は「100万円」レバレッジは「500倍」にします。

バックテストを行うときは、オプティマイズ(最適化)を「無効化」にします。

[スタート]ボタンを押すとバックテストを開始します。

バックテスト結果

バックテストでは指定した期間のティックデータでエキスパートアドバイザを実行します。

ティックデータは通貨ペア値が変化した時のデータですので、MT4のように1分足のデータではありません。もっと細かい値変化のデータです。

またバックテスト時に指定期間のデータがキャッシュに無い場合はダウンロードするので、MT5のヒストリー品質は(ダウンロードできない場合を除いて)100%になります。

さてサンプルEAのバックテスト結果を見てみましょう。

まず「総損益」が運用結果の損益です。なんと!!5万円のプラスになっています。

(30分足以外は全部マイナスになっていました・・・)

そして総利益・総損失を見てみると、利益分をほとんど損失していますね。プロフィットファクター(利益率)も「1.04」と微利益率になっています。

あと重要なのはドローダウン、勝率、リカバリーファクター、取引数でしょうか。

ドローダウンは残高(もしくは証拠金)が最も減った時の額、パーセンテージです。いわゆるリスクですね。

リカバリーファクターはドローダウンと総損益の比率です。リスクとリターンの比率ですね。

勝率はショート(売り)とロング(買い)で集計されています。もしショート100%、ロング50%になっていたりしたら、売りだけのEAにしてしまえば、100%勝ちのEAになります!!(そんなことは無いでしょうけどね)

取引数も重要です。取引数が少ないとバックテストとして信頼性が無くなりますし、あまり美味しくないEAになります。

売買のタイミングを確認する

結果だけだとどう動いたのかがわかりません。

プログラム通りに売買されているか確認しましょう。

赤い下矢印が「売り」、青い上矢印が「買い」で、赤い点線が始まるのがオーダー、終わるのがクローズです。

移動平均線ローソク足陰線の次のタイミングで赤矢印「売り」がオーダーされて点線が始まり、陽線で青矢印「買い」でクローズしています。

移動平均線ローソク足陰線・陽線を通った次のタイミングで矢印が出ています。EAではローソク足が確定した後にオーダー・クローズするので、手動決済(裁量)よりも一歩遅れます。

ただ売買チャートを見ると正常に売買は行われているようです。

次に残高の動きを確認します。

バックテストのグラフを見てみると、2月末まではいい感じに推移していますが、3月で一気に減っていますね。

バックテストの結果をもう一度見てみましょう。(下にスクロールしてみてください)

時間・曜日・月での集計結果が見られます。

もし金曜日だけ収益がマイナスならば、金曜日だけ売買しなければ収益が上がります。この集計を見ると、9時から15時までは売買しない方が良い感じですね。

ただし!あまり偏った売買しないフィルタを作ってしまうとカーブフィッティング(ある一定のデータに対して最適化するため、他のデータに対しては全く機能しない)になってしまいます。

売買フィルタを作ったら他の期間でバックテストをしてみましょう。違う年度や違う月、できれば3~4年くらいのバックテストをして同じ結果であれば安心です。

次回

次回は自動売買ソフトウェアを作ってみましょう。