他人のバックテストの真意を見破る方法
皆さんこんにちは!
今回のテーマは、「他人のバックテストの真意を見破る方法」です。
Twitterやブログ、EA提供サイトを漁っていると、
「月利30%!高勝率低ドローダウンの最強EA爆誕!」
などと銘打ったEAが数多く存在しています。
そんなEAで提示されているバックテスト結果を見ると、大体がしっかりとしたバックテストが取られていません。
(というか、成績をよく見せるために多分わざと取っていない)
バックテストというのは、取り方によっては粗悪EAでも聖杯に見せることができてしまうもの。
なので、今回はそんなEAに騙されないために、「バックテストのどんなところを見て」「どのように判断すれば」いいのか、
数百のEAをバックテストしてきた私なりの判断基準をご紹介できればと思います。
まとめると、この記事のコンセプトは
「バックテスト結果から良いEAかどうか判断するための方法!」
ではなく、
「そもそも見る価値のあるバックテストなのかを判断する方法!」
になります。
また、この記事の結論は
「他人が実施した"全ての"バックテスト結果に疑いを持つこと」
となっておりますので、なぜそうなるのかこの記事でお伝えできればと思います。
バックテストのサンプル
今回は視覚的にわかりやすくするために、サンプルとして以下のバックテストを実施しました。
我ながら、ツッコミどころ満載の良いサンプルを作れたと思います。笑
10年間で証拠金の2倍の利益を上げていて、グラフも右肩上がりと、ぱっと見良さそうなEAに見えなくもないと思います。
(PF低いぜとか最大DDデカすぎるぜってツッコミは一旦置いといて下さい笑)
皆さんはこの中にいくつ不信な点があると思いますか?
ここから、このバックテストの大ツッコミ大会が始まりますので、皆さんもどこか予想しながら見てみて下さい^^
前提:まずはここだけを見るべし
バックテストは収益やPFなどの結果に目が行きがちですが、まず大前提として見るべき場所はここです。
まずはここだけを見て下さい。
この赤枠以外の部分がどんなに良い結果であっても、惑わされずにまずはこの部分だけを見るようにしましょう。
バックテストの正確性を測る重要な要素
正確性を測る重要な要素は主に4つあります。
バックテスト期間と取引回数
モデル
スプレッド
モデリング品質
中でも特に今回言及したいのは、「スプレッド」と「モデリング品質」です。
順番に見ていきましょう。
バックテスト期間と取引回数
バックテスト期間については様々な意見があると思いますが、最低直近10年、理想は直近15年以上あると信憑性が高いと考えています。
理由としては、
サンプル(取引回数)が多く取れること
リーマンショックやコロナなどの経済ショックが乗り越えられたかわかること
が挙げられます。
サンプル(取引回数)が少なければ、EAの性能を正確に測定できたとは言えません。
「10回取引して、勝率100%でした!この手法は聖杯です!」と言われたところで誰も信じませんよね笑
ざっくりな基準ではありますが、取引回数は最低でも1000回は欲しいです。
サンプルを多く取る手段のひとつとして、バックテスト期間を長くとることは非常に有効と言えます。
EAの中には、「このEAは直近数年の相場に適応させるように作成しました」と謳っているものもあり、それは私も全然アリだと思っております。
ただ、そういったEAはサンプルを多く取れていないことが多いです。
取引頻度が多かったり、複数の通貨ペアで検証を行ったりすることでサンプル数を確保しているもの以外は、信用に足るEAにはならないと思っております。
サンプルのバックテストでは期間が「2007.01.02~2016.4.14」となっており、そもそも直近の期間は含まれていないので、成績の良い部分だけを切り取ってバックテストをしているのが見え見えですね。笑
必ず直近までバックテストを行なっているのか、サンプル数を確保できているのかを確認して下さい!
モデル
「全ティック (利用可能な最小時間枠による最も正確な方法)」以外基本的に論外です。
(始値でのみエントリー・決済が行われるEAは「始値のみ」を選択しても精度を担保できると聞いたことがありますが、そのようなEAはそんなに多くないのであまり気にしなくて良いかと思います。)
スプレッド
スプレッドは、pointで表記されています。
画像のように"5"と記載されているのであれば、0.5pipsの固定スプレッドという意味になります。
有料のツールを利用するとこの値が"変動"になったりするのですが、それは「モデリング品質」の項でお話します。
この「スプレッド」の欄で注意すべきことは、
「自分が利用しているブローカーの平均スプレッドと乖離がないか」
という点です。
ドル円であれば、国内外の業者で狭いところは0.1pips、広くて2.0pips程度でしょうか。
サンプルのバックテストでは0.5pipsに設定しているため常識の範囲内の設定値ですが、実際はもっとスプレッドの広いブローカーでIB配布等をしている人を本当に多く見かけます。
スプレッドの広い業者の方がIB報酬が高いという話を耳にしますが、それであればバックテストもそのスプレッドに合わせて行うのが筋かと思います。
(むしろリアルよりも若干厳しい条件でバックテストは行われるべきとすら思っています)
皆さんも、本来よりも成績をよく見せようという魂胆が見える人には十分気をつけて下さい!
モデリング品質
今回特にお話したかったことのひとつがこちらの項目。
この項目は、簡単に言うとバックテストの精度を表す指標です。
モデリング品質が「n/a」もしくは89.00%未満
まず、この項目が「n/a」もしくは89.00%未満のものについては、全て悪意のある見せ方、もしくはその程度のモデリング品質しか出すことのできないレベルの低い開発者と判断して良いかと思います。
モデリング品質が89.00~90.00%
モデリング品質は、無料で取得できるヒストリカルデータでは最高でも90.00%までのスコアしか出せません。
有料のツールを使うことにより、モデリング品質を99.90%まで上げることができますが、まぁまぁ高額なので導入してる開発者はそこまで多くないと思います。
そのため、基本的にはモデリング品質は90.00%のものが多いのですが、90.00%だからといって信頼できるバックテストかといえば、必ずしもそうではありません。
この辺りについては、なんちゃってギャンブラーみなとさんの動画が非常に参考になったので、ぜひご視聴頂ければと思います^^
開発者さん側に悪意が一切なくても、ヒストリカルデータの品質が無料のものでは限界があるということなのだと思います。
モデリング品質が99.90%
TDS(TickDataSuite)という有料のツールを利用することにより、モデリング品質を99.90%まで引き上げることができます。
TDSでは、通常のバックテストではできない変動するスプレッドやスリッページ、取引手数料を設定することができ、最も精度の高いバックテストを行うことができます。
スプレッドを「変動」にすると、よりリアルに近い結果を出すことができます。
「変動」に設定すると、バックテストのスプレッド欄には「変動」と記載されます。
わざわざ有料のツールを購入するくらい、EA開発に真剣に向き合っている開発者さんであれば、9割方バックテストも信頼して良いと思います。
しかし、残念ながら有料のツールをもってしても「完全に信頼できるバックテスト」を担保することはできません。
なぜかというと、理由は「スプレッド」にあります。
TDSには、スプレッドを補正する機能があります。
この機能は、TDSに登録されているティックデータと、EAを利用したいブローカーにスプレッドの差分があった場合、補正をかけることで利用するブローカーのスプレッドに近い値でバックテストすることができるという素晴らしいものです。
しかし、これを悪用してバックテストをいい結果に見せてしまうことも可能なんです。。
こちらのバックテスト結果をご覧ください。
こちらは、スプレッドの補正値を"0"に設定してバックテストを行なった結果になります。
純益よりもドローダウンの方が大きく、このEAを利用したいとは思わないですよね。
こちらのEAを、スプレッド補正を"-100"に設定してバックテストしてみます。
※補正値はpointで表現されているため、"-100"と設定すると10pips分有利なところでエントリーできます。
すると、結果はこのようになりました。
成績の違いは一目瞭然であり、本来の性能とはかけ離れた優秀なEAに見せることができました。
(リアルでもこの成績のEAがあれば間違いなく私は使います笑)
そして、このバックテスト最大の問題は、
スプレッドの補正値が一切記載されていないことです。
どんなに現実とかけ離れた値を設定しても結果を見る側は、それに気づく術がありません。
まとめ
ここまでで私がお伝えしたいことは、全てのバックテストは信用できないものだと言いたい訳ではありません。
私は性善説が好きですし、ここまでして人を騙そうとする人はいて欲しくないし、実際はいないと思っています。
ただ、100%信頼できるバックテストは存在しなく、その結果だけを鵜呑みにしてEAの購入等をするのは非常にリスクが高いことをわかって欲しかったのです。
また、バックテストはあくまでバックテストでしかありません。
フォワード実績との両輪がうまく回って初めて「良いEA」であることがわかります。
バックテスト自体はEAにおいて非常に重要なファクターであり、今回の記事はバックテスト自体を否定するものでは一切ございません。
私自身もバックテストをしてEAの分析をするのが大好きですし、EAを選別するための判断材料として大きな一端を担っています。
ただ、「他人が」バックテストをしたものについては信じ切るのではなく、常に疑いの目を持つことを頭の片隅に置いておいて欲しかったので、この記事を作成しました!
この記事を読んで皆さんの何かのためになったのであればとても嬉しいです!
投資はどこまで行っても自己責任!
ではまた!^^/
おまけ:バックテストサンプルの本当の結果
冒頭でお見せしたバックテストのサンプルはこちらでした。
こちらを、
バックテスト期間:2007.01.01~2022.03.31
モデル:全ティック
スプレッド:変動(補正値:0)
モデリング品質:99.90%
にして、本来の結果を見ていきましょう。
このEAの真の姿は、以下になります。
はい。純益がマイナスの粗悪EAでしたね笑
以上、おまけでした〜^^/
なげせん箱
この記事を読んでよかった、ためになったという方がいらっしゃれば、この記事を購入していただけると今後の活動の励みになります!
どうか今後とも、応援よろしくお願い致します😊
ここから先は
¥ 300
この記事が気に入ったらチップで応援してみませんか?