backte.st

アウトオブサンプル・テスト:ホールドアウト期間を正直に使う方法

履歴の最後の部分を別に評価すると過剰最適化を見抜ける理由、未使用期間チェックの仕組み、ホールドアウトを無駄にしない方法。

アウトオブサンプル・テストとは、戦略の作成に使っていないデータで戦略を評価することです。過剰最適化 に対する最もシンプルで効果的な防御策のひとつです。

インサンプルとアウトオブサンプル

アウトオブサンプルで成績が崩れるなら、インサンプルの結果はおそらくノイズを記述していました。

未使用期間チェックの仕組み

Backte.st の 未使用期間 チェックは、各市場の履歴を時間で分割します。最初の70%と最後の30%です。最後の30%を、まるで一度も見たことがないかのように単独で評価し、分割日以降のリターンと決済済み取引の数を表示します。

ランダムではなく時間で分割することが重要です。市場にはトレンドや局面があり、近い日の価格は互いに関係しています。ランダムに分割すると、未来の情報が過去に漏れてしまいます。

落とし穴:ホールドアウトが「未使用」なのは一度だけ

テストを実行し、最後の30%の成績が悪いのを見てルールを調整し、良く見えるまで再実行を繰り返すと、ホールドアウトは作成プロセスの一部になってしまいます。それはインサンプルのデータになったのです。レポートの制限事項にもそのことがはっきり書かれています。

正直さを保つための実践的な方法:

  1. まずルールを決める。 探索したいなら、履歴の前半だけを使います。
  2. 未使用期間の結果は一度だけ見る。 そして見た内容を書き留めます。
  3. 繰り返し試す必要があるなら、新しいデータを使う。 別の市場、後の期間、別の足の長さなどです。

結果の読み方

1回の分割を超えて

プロはよく ウォークフォワード分析 を使います。ウィンドウを前に進めながら分割を何度も繰り返す方法です。ひとつのホールドアウト期間は同じ考え方の簡易版ですが、それでも多くの問題を見つけられます。

ラボ で好きな戦略を試し、未使用期間の行と全期間のリターンを比べてみてください。

ラボで試す

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

ラボを開く