フォワードテスト結果を検証してみた

フォワードテスト結果を検証してみた アルゴリズム開発
この記事は約5分で読めます。

今回はおよそ6年間のフォワードテストの結果を検証してみたいと思います。

「6年間って長すぎじゃない?」と思われるかもしれません。

ええ、僕もそう思います。

実のところは今までちゃんと結果を検証してなかっただけというだけです…。

ちなみにデモ講座です。

リアル口座はいろいろあってここ数年稼働してません。

たぶんリアル口座だったらさすがに検証してたと思います。

さて、前置きはここまでにしましょう。

ざっくりいうとアルゴリズムは3種類。

  • トレンドフォローA
  • トレンドフォローB
  • カウンタートレンド

このうちトレンドフォローBは2通貨ペア、残りは1通貨ペアの合計4つです。

トレンドフォローA

アルゴリズムの概要

基本はドンチャンチャネルを使用したブレイクアウトからの順張りアルゴリズム。

ボラティリティやトレンドの強弱によるフィルターや、トレイリングストップ機能を実装。

通貨ペア: XAUUSD

テスト結果

いろいろ試したんですが、EAごとの取引結果をMT4から取得することができませんでした。

そこで、表計算ソフトで全取引結果の中から該当のEAによる取引を抽出して、MT4っぽい取引結果を作成しました。

なお、0.1ロット固定で運用した結果です。

(グラフと指標は、それぞれの画像をクリックすると拡大できます)

検証

残高グラフ

240~260回目あたりで急激に残高を増やしているけど、その他はほぼ横ばい。

バックテストでも同じようにグラフが階段状になっていたので予想通りというか、再現性があったと考えてよさそう。

プロフィットファクター(Profit Factor)

1.41という数値は、ぼちぼちなんじゃないでしょうか?

ただ、230回目くらいまでの取引で計算するとかなり下がると思います。

つまり、このアルゴリズムの場合、どの時点で計算するかで数値が変動するので、この数値をあまり過信することはできないのかなと思います。

最大ドローダウン(Maximal Drawdown)

174,252円は思ってたのより大きい。

過去のメモ書きによると、10~11万を想定してたようなんですが…。

まあ、あくまでもバックテストから想定した値なのでおかしくはないんですが、それにしても…。

その他

上記の結果には出ていませんが、スワップの合計が-35,167円でした。

「買いと売りで相殺してプラマイゼロでしょ?」くらいに思って気にしてなかったんですけど、結構マイナスになっていました。

売りと買いの取引回数に少し差がある(売り158回、買い192回)からかと思ったんですけど、売りスワップの合計が-2,104円で買いのほうが-33,063円。

あきらかにそういう問題じゃないということで業者のサイトで確認してみたら…、売りスワップと買いスワップが非対称じゃないですか⁉

なんてこった…。

…うん、ひとつ勉強になったと思うことにしよう。

改善とか運用のアイデア

  • 調子のいい期間だけリアル口座で稼働する
    調子のいいときとそうでないときがはっきりしているので、デモ口座で調子のいい期間に入っているのを確認して、その間だけリアル口座でも稼働する。
  • マイナススワップが少ない業者を探す
    軽く見た感じだと業者でスワップポイントが異なるようなので、少しでも有利な業者を探してみる。
  • パラメータを微調整する
    直近5~10年のバックデータでパラメータを調整してみてもいいかも。

トレンドフォローB

アルゴリズムの概要

基本はボリンジャーバンドを使用したブレイクアウトからの順張りアルゴリズム。

ボラティリティやトレンドの強弱によるフィルターや、トレイリングストップ機能を実装。

通貨ペア:EURJPN

テスト結果

(グラフと指標は、それぞれの画像をクリックすると拡大できます)

検証

残高グラフ

830回目あたりの取引から急激に伸ばしているけど、それまでの内容が良ろしくない。

バックテストでは、こんなに長い期間の不調はありませんでした。

過剰最適化してしまったのか、そもそも再現性がなかったのか…。

プロフィットファクター(Profit Factor)

1.13というのはリアル口座ではちょっと稼働させづらい値です。

最近の調子がいいので、もう少しデモ口座で様子をみるか…。

最大ドローダウン(Maximal Drawdown)

164,898円…。

純利益が211,920円なのに対して大きすぎます。

その他

スワップが-25,880円と、やっぱり結構なマイナスになっていました。

スワップかぁ…。

改善とか運用のアイデア

うーん、これといって思いつくことがない…。

スワップでどうにかなるようなものでもなさそうだし…。

通貨ペア:GBPJPN

テスト結果

(グラフと指標は、それぞれの画像をクリックすると拡大できます)

検証

残高グラフ

うーん、ひどい。

少なくとも使い続けようとは思えないです。

なので、以下省略ということで…。

カウンタートレンド

アルゴリズムの概要

基本はボリンジャーバンドを使用したブレイクアウトからの逆張りアルゴリズム。

ボラティリティやトレンドの強弱によるフィルターや、トレイリングストップ機能を実装。

通貨ペア: EURUSD

テスト結果

(グラフと指標は、それぞれの画像をクリックすると拡大できます)

検証

残高グラフ

ひどすぎる!

ほぼ、きれいな右肩下がり…。

もう、これ以上の確認は不要でしょう。

まとめ

「トレンドフォローA(通貨ペア:XAUUSD)」はバックテストと今回のフォワードテストの結果を見る限り使えそうな気がしてきました。

ただ、次のような難点もあります。

  • 利益を伸ばせるのが数年に一度しかない
  • 思ったよりドローダウンが大きかったので、ロット数を増やしにくい(=利益を大きくしにくい)
  • スワップによるロスが馬鹿にならない

今後は上記の点について補完できるようなアルゴリズムを作りたいと考えています。

あと、スワップポイントが有利な業者を探してみたいと思います。

タイトルとURLをコピーしました