見出し画像

MT4最適化の結果に勝率を追加する方法

こんにちは。

トレードルールのバックテストのためMT4を使い始めました。
自作のPythonでのバックテストより高速に処理されるので便利に活用しています。
この記事では、MT4標準の最適化結果に含まれず、確認することができない勝率を表示する方法について共有します。

背景

トレードルールを評価するための指標の内、勝率は必ず確認すべきものだと思いますが、MT4の最適化結果には含まれていません。
単体のバックテストでは勝率は含まれているのに、最適化に含まれていないのが不思議です。

同様の疑問を持たれている方がいて、MT5での勝率を表示方法の説明をブログでされていました。

古い記事ですが、説明によるとMT4では単純な方法では勝率が表示できないということのようです。
しかし、私が少し試行錯誤の上、確認したところ、MT4でも簡易な方法で勝率が表示できました。
この記事では、その方法についてご紹介します。

前提

まず、提供する会社によらずMT4自体の機能は同じものだと思いますが、私は以下のMTを利用して確認しました。


MT4最適化結果に勝率を表示する方法

具体的な方法は、以下のとおりです。

  • OnTester()イベントに勝率の算出ロジックを実装

利用しているEAスクリプトに以下のコードを追加する。
単純に利益となっている取引数(STAT_PROFIT_TRADES)を全取引数(STAT_TRADES)で割ってあげるだけです。

//--------------------------------------------------------------
// The handler of the event of completion of another test pass:
//--------------------------------------------------------------
double OnTester()
{
double trades = TesterStatistics(STAT_TRADES);
double win = TesterStatistics(STAT_PROFIT_TRADES);
double winratio = 0;
if(trades>0) winratio = NormalizeDouble(win/trades*100,2);

return(winratio);
}
  • テスト設定の最適化パラメータを Customに変更

ストラテジーテスターの「エキスパート設定」ボタンで表示されるテスト設定画面にて、以下の通り最適化パラメータを Customに変更します。

設定はこれだけです。
ただし、私の場合にはアプリケーションを再起動しないとすぐには反映しませんでしたのでご注意ください。

以上の設定で最適化を実施すると、最適化結果タブに以下のとおり「OnTester結果」という項目が表示され、勝率が表示されます。


最後に

この記事はお気に入りいただけましたでしょうか?
内容お役にたちましたらうれしく思います。
また、サポートなど応援いただけましたら幸いです。

いいなと思ったら応援しよう!

なべなべ
記事の内容を有効に活用できた、記事を気に入っていただけたようでしたらチップでサポートいただけますと嬉しいです。 また、こんなことを知りたい、あんなことができないかなど記事にしたいことがございましたら、サポートの有無にかかわらずお知らせくださいませ。