backte.st

自分をだまさないためのバックテストレポートの読み方

純リターン、ドローダウン、取引数、バイ・アンド・ホールド、頑健性チェック。バックテストレポートの各数値が示すことと示さないことを解説します。

バックテストが答えるのは、ひとつの限られた問いです。このルールを、このデータで、この前提のもとで動かしたら、正確に何が起きていたか? 次に何が起きるかは教えてくれません。レポートを上手に読むとは、どの数値が重く、どの数値が見栄えよく作りやすいかを知ることです。

リターンではなく前提から見る

結果を見る前に、テストがどう行われたかを確認しましょう。Backte.st では、すべてのレポートの データと前提 に次の内容が記載されています。

よそで見かけたレポートに約定ルールやコストが書かれていなければ、そのリターンはせいぜい上限値と考えましょう。

純リターンとバイ・アンド・ホールド

純リターンは、コスト控除後の口座価値の変化です。多くの市場にはトレンドがあるため、それだけではあまり意味がありません。そこで各レポートには 同じ配分でのバイ・アンド・ホールド も表示されます。戦略が1回の取引で資金の20%を投じるなら、比較対象も期間中ずっと資金の20%を市場に置いた場合です。

バイ・アンド・ホールドに勝つ戦略でも、はるかに多くの取引(コストや税金が増える)や、より深いドローダウンを伴うなら、実際にはむしろ不利なこともあります。

最大ドローダウン:実際に体感する数値

最大ドローダウンは、口座価値がピークから底まで最も大きく下落した幅です。実際の人がその戦略を続けられるかどうかを決めるのは、たいていこの数値です。同じリターンの2つの戦略でも、途中で口座が半分になったかどうかでまったく違って見えます。

バックテストのドローダウンは、その特定の取引の並び での最悪の下落にすぎないことを忘れないでください。取引順シャッフル を使うと、どこまで悪くなりえたかがわかります。

取引数:証拠は十分か

取引が少なければ、運だけでほとんどどんなリターンでも出せます。Backte.st は判断するふりをせず、チェックを 取引数不足 と表示します。決済済み取引が少ないときは、結論を出す前に履歴を長くする、足を短くする、市場を増やすなどを試してください。

頑健性チェック

主要な結果は、ひとつの前提で一度だけ実行したものです。チェックは同じルールを、より厳しい条件で再実行します。

  1. 未使用期間:履歴の最後の30%を単独で評価します。アウトオブサンプル・テスト を参照。
  2. コスト2倍:手数料とスリッページを2倍にします。取引コスト を参照。
  3. 近傍パラメータ:すべての指標期間を±10%と±20%ずらします。パラメータの頑健性 を参照。
  4. 遅延エントリー:すべての注文を1本遅れて約定させます。先読みバイアスと約定タイミング を参照。
  5. ベストトレード除外:最も利益の大きい5件の取引を除きます。過剰最適化 を参照。
  6. 取引順シャッフル:取引の順番を200回並べ替えます。モンテカルロ を参照。

その条件でも戦略のリターンがプラスなら、チェックは 耐えた と判定されます。判定には決済済み取引が10件以上(シャッフルは20件以上)必要です。弱点 はアイデアに価値がないという意味ではありません。結果がどこで脆い要素に頼っているかを示しています。すべてに 耐えた のは良いスタートですが、優位性の証明ではありません。

レポートが教えてくれないこと

バックテストは、アイデアを素早く安く ふるい落とす ために使いましょう。そのときこそ、バックテストは最も正直です。

ラボで試す

コード不要で指標から戦略を組み立て、いくつかの市場で実行して、このチェックを自分のルールで確かめましょう。無料で、ブラウザ内で動きます。

ラボを開く