ダメなバックテストを見極める(2)
【大前提】
バックテストは過去の成績をシミュレーション(模擬)するものであり、過去の成績を再現するものではない。
シミュレーションである以上、恣意的に成績を嵩上げすることも可能である。
【ダメなバックテストその2】
全ティックを使った最適化の方が正確だと思い込んでいる
→特定ブローカーへのカーブフィッティングになることを理解していない。
なぜなら
・時間軸を短くするほどブローカー毎の差異(ゆらぎ)が大きく現れやすい
・ブローカーが提供するティック/ヒストリカルデータはあまり信憑性がない(ゴミが混ざっている)
・AskもSpreadも分からないティック/ヒストリカルデータにリアルタイムな正確さを求めても意味が無い
のに、あろうことかティック毎に最適化してしまったためです。
これがティックや1分足ではなく、例えば1時間足くらいの時間軸であればどのブローカーであっても同じような値になります。ゴミとか差異とか揺らぎなどが平均化されたり埋もれたりして目立たなくなるためです。正確さが増すわけではありませんが、極端な違いは無くなるわけです。
よく Tickstory を使ってモデリング品質を100%にしたら「バックテスト結果も良くなった」という話を見掛けますが、それは Dukascopy のヒストリカルデータにカーブフィッティングされた結果です。他のブローカーで運用すると散々な目に遭うでしょう。
全ティックを使った最適化が悪いとは言いません。バックテストのモデルはEAのロジックに合わせる必要もあるでしょう。しかし、せめて複数ブローカーのヒストリカルデータを使ってバックテストして下さい。結果が大きく異なる場合は特定ブローカーにカーブフィッティングされています。
※以上からリアルタイムのシグナル判定もかなり危険ということになりますが、バックテストではなくロジックの話なので別の機会に。
バックテストは過去の成績をシミュレーション(模擬)するものであり、過去の成績を再現するものではない。
シミュレーションである以上、恣意的に成績を嵩上げすることも可能である。
【ダメなバックテストその2】
全ティックを使った最適化の方が正確だと思い込んでいる
→特定ブローカーへのカーブフィッティングになることを理解していない。
なぜなら
・時間軸を短くするほどブローカー毎の差異(ゆらぎ)が大きく現れやすい
・ブローカーが提供するティック/ヒストリカルデータはあまり信憑性がない(ゴミが混ざっている)
・AskもSpreadも分からないティック/ヒストリカルデータにリアルタイムな正確さを求めても意味が無い
のに、あろうことかティック毎に最適化してしまったためです。
これがティックや1分足ではなく、例えば1時間足くらいの時間軸であればどのブローカーであっても同じような値になります。ゴミとか差異とか揺らぎなどが平均化されたり埋もれたりして目立たなくなるためです。正確さが増すわけではありませんが、極端な違いは無くなるわけです。
よく Tickstory を使ってモデリング品質を100%にしたら「バックテスト結果も良くなった」という話を見掛けますが、それは Dukascopy のヒストリカルデータにカーブフィッティングされた結果です。他のブローカーで運用すると散々な目に遭うでしょう。
全ティックを使った最適化が悪いとは言いません。バックテストのモデルはEAのロジックに合わせる必要もあるでしょう。しかし、せめて複数ブローカーのヒストリカルデータを使ってバックテストして下さい。結果が大きく異なる場合は特定ブローカーにカーブフィッティングされています。
※以上からリアルタイムのシグナル判定もかなり危険ということになりますが、バックテストではなくロジックの話なので別の機会に。