Blave Agent が出力する八つの数字——それぞれが何を意味し、どれを信頼すべきか。
手元にあるバックテストレポートの総リターンが +145.8%。その数字に興奮すべきなのか警戒すべきなのか、あなたには分かりません。バックテストとは、一連の取引ルールを過去データに当てはめて走らせ、それが過去どう振る舞ったかを見ることです。得られるのは「いくら儲かるか」という予測ではなく、判断に使える一組の数字——リターン、リスク、コストです。判断の方法は、三つを一緒に読むことであって、最初の一つだけを見ることではありません。
btc_sma_cross 戦略(BTCUSDT 1h、SMA45/SMA100、2022-01-01 から)のバックテスト結果は次のとおりです。この例はバックテストの終了日を設定していないため、実行するたびにその日まで走ります。以下はある一回の実行のスナップショット(当時の例の手数料設定は片道 0.05%、FEE = 0.0005。現在は 0.1%)で、いま自分で走らせれば違う数字になります。
この片道 0.05% の旧スナップショットでは、戦略はバイ・アンド・ホールドの二倍以上のリターンを出しました——ただし途中で −42.6% という厳しいドローダウンも経験しています。それを受け入れられるかどうかは、あなたのリスク許容度次第です。以下の指標が、その判断を助けてくれます。レポートにはコストに関する数字も二つあります——Total Fees Paid(この例では 4 年間で手数料が累計で資産の約 22%)と Trades(取引回数)——これらは後述の Omega の節で再び登場します。
これは Blave Agent のバックテストエンジンが実際に出力した例です。まだ自分の戦略がなく、どこから手をつければいいか分からない場合、ゼロからコードを書く必要はありません——公式戦略ライブラリの戦略はどれも実際のバックテストが付いているので、まず数字を見てから、デプロイするかどうかを決められます。
シャープレシオ = 年率リターン ÷ 年率ボラティリティ(上昇・下落の両方を含む)。答えるのは次の問いです。総リスク一単位あたり、どれだけのリターンが得られるのか?
| Sharpe | 解釈 |
|---|---|
| < 0 | リスク調整ベースでは損失 |
| 0 – 0.5 | 弱い——リスクに見合うリターンがほとんどない |
| 0.5 – 1.0 | トレンドフォロー戦略なら許容範囲(今回の SMA 例はここ) |
| 1.0 – 1.5 | 良好 |
| > 1.5 | 優秀——ただしバックテスト期間が短いなら疑ってかかること |
ソルティノレシオはシャープレシオと似ていますが、罰するのは下方ボラティリティだけです。上昇方向のブレはリスクとして数えません。答えるのは、悪いボラティリティ一単位あたり、どれだけのリターンが得られるのか?という問いです。
分母は下方偏差(downside deviation)です。各期間のマイナスのリターンを二乗し、全期間で平均してから平方根を取ります——プラスの期間は 0 として数え、除外はしません。そのためリターンが完全に対称でも Sortino は Sharpe の約 1.4 倍(√2)になり、これが比較の基準線です。それを大きく上回れば大きな利益を取りつつドローダウンが抑えられている望ましい形、Sharpe と同程度かそれ以下なら損失側が特に重いことを意味します。
| Sortino と Sharpe の関係 | 示唆されること |
|---|---|
| Sortino ≈ 1.4 × Sharpe | リターンは対称——上方と下方のボラティリティが同程度 |
| Sortino >> Sharpe | リターンは正に歪んでいる——大きな利益、小さな損失(理想的) |
| Sortino ≤ Sharpe | リターンは負に歪んでいる——小さな利益、ときおり大きな損失(危険) |
最大ドローダウンは、バックテスト期間中に資産が高値から安値まで下落した最大の幅です。資産が $100,000 の高値をつけたあと $57,380 まで下落し、そこから回復した場合、MDD = −42.6% です。
MDD が重要なのは、その戦略を続けるためにどれだけの苦痛に耐える必要があったかを測るからです。多くの人は、回復するはるか手前でやめてしまいます。
オメガレシオ = しきい値を上回るリターンの合計 ÷ しきい値を下回るリターンの合計。しきい値は通常 0(損益分岐点)です。平均と分散しか見ないシャープレシオと違い、Omega はリターン分布の全体を捉えます。
| Omega | 解釈 |
|---|---|
| < 1.0 | 利益より損失の合計が大きい——採算が取れていない |
| 1.0 – 1.1 | わずかに利益——現実のコストを差し引くと脆い |
| 1.1 – 1.3 | 堅実 |
| > 1.5 | 優秀——あるいは過剰最適化の可能性 |
片道 0.05% の旧スナップショットでは、SMA Cross の Omega = 1.04 で、1.0 をわずかに上回るだけです。手数料が累計で資産の約 22% を削ったあと(4 年間の合計)では、現実の優位性は薄いといえます。これはトレンドフォロー戦略では普通のことで、このタイプの戦略では品質を測る主要な指標としてシャープレシオとソルティノレシオのほうが適しています。
先読みバイアス(Lookahead Bias): 意思決定の時点では手に入らなかったデータを使ってしまうこと。Blave Agent は既定で次の足の始値で執行してこれを防ぎます(例外は戦略自身が exec_at_close と印を付けた足——たとえば台湾株価指数先物の限月乗り換えの清算で、その足の終値で約定します)。ただしカスタム指標の計算では依然として混入しえます——たとえば、系列全体の平均を使って Z スコアを計算する場合です。
ウォームアップ期間を飛ばす: SMA(100) のような指標は、意味を持つまでに 100 本の足が必要です。最初の 100 本はパフォーマンス計測から除外すべきです。Blave Agent の WARMUP パラメータがこれを自動で処理します。
データ全体で最適化する: 利用できるデータすべてでパラメータをスキャンし、同じデータでパフォーマンスを報告しているなら、それは汎化性能ではなく訓練誤差の報告です。サンプル外検証のために、データの 20–30% は必ず取り分けておきましょう。(Blave 上で実際にどうやるかは〈アウトオブサンプル検証のやり方〉をご覧ください。)
手数料を無視する: 上のスナップショット(片道 0.05%)は 4 年間で手数料が累計で資産の約 22% を削りました。例のいまの既定値、片道 0.1%(暗号資産無期限先物、スリッページ込み、保守的)で 2022-01-01 から 2026-10-22 まで走らせ直すと、手数料は累計で資産の約 48.7%、トータルリターンは +79.5% で、同期間のバイ・アンド・ホールド +78.5% とほぼ同じです。より高頻度の戦略では、手数料が alpha を簡単に上回ります。レートは実際に取引する市場に合わせてください。Blave は市場ごとに保守的な既定値を用意しています。実際にそれより低いレート(VIP ティア、証券会社の割引)がある場合にだけ下げてください。掲載に出す場合は、FEE がその取引所の VIP0 taker 以上である必要があります。
総リターンとリスク調整後リターンを混同する: リターン 200%・MDD −80% の戦略は、リターン 80%・MDD −15% の戦略より「良い」わけではありません。前者では、実際のユーザーの多くが底値付近でパニック決済してしまいます。