何千もの戦略をバックテストしました。 私が痛い目をもって学んだ教訓は: 過充填は損失を出します。 今はクロスバリデーションを使って反撃を助けています。 これが2分で行うためのコードです:
クロスバリデーションに馴染みがない方のために: ・モデルにおける過学習リスクの低減 • データをサブセットに分割することが含まれます • 未確認データに対するモデルパフォーマンスの推定 すべてのデータサイエンスで使われています。 今ではVectorBT PROとのトレードに使えます。 行きましょう!
VBT PROと分析に関連するいくつかのライブラリをインポートしましょう。
お気に入りの資産のデータを取得しましょう。AAPLを使います。
次に、「スプリッター」を設定します。これは、選択したスキーマに従って日付範囲をより小さなセグメントに分割します。
splitter.plots().show_png()コマンドは以下の可視化を実現します。
次に、指定された日付範囲内で単一のパラメータセットを使って取引戦略を実行する関数を作成し、1つの重要な指標を返します。 私たちの戦略は、単純なEMAクロスオーバーとATRトレーリングストップの組み合わせです。
関数を「パラメータ化」で装飾(またはラップ)することで、「objective」がパラメータのリストを受け取り、すべての組み合わせで実行できるようにします。
速いEMA期間と遅いEMA期間を区切り分けして結果を分析してみましょう。 この分析は、少なくとも50%の分割において、トレーニングとテストセットのシャープ比率の変動が最小限であり、青はプラスの変化を示します。
その結果、遅い周期と速周期の組み合わせにおけるさまざまなシャープ比を示すヒートマップが完成します。
理論上は有望な戦略を立てたかもしれませんが、それをクロスバリデーションすることで、時間経過で一貫したパフォーマンスを確認し、単なるランダムな変動の結果ではないことを確認することが重要です。 ここで学んだテクニックを自分の戦略に応用してください。
119