Blave Agent が出力する八つの数字——それぞれが何を意味し、どれを信頼すべきか。
手元にあるバックテストレポートの総リターンが +145.8%。その数字に興奮すべきなのか警戒すべきなのか、あなたには分かりません。バックテストとは、一連の取引ルールを過去データに当てはめて走らせ、それが過去どう振る舞ったかを見ることです。得られるのは「いくら儲かるか」という予測ではなく、判断に使える一組の数字——リターン、リスク、コストです。判断の方法は、三つを一緒に読むことであって、最初の一つだけを見ることではありません。
btc_sma_cross 戦略(BTCUSDT 1h、SMA45/SMA100、2022-01-01 から)のバックテスト結果は次のとおりです。この例はバックテストの終了日を設定していないため、実行するたびにその日まで走ります。以下はある一回の実行のスナップショットで、いま自分で走らせれば違う数字になります。
この戦略はバイ・アンド・ホールドのリターンを二倍以上に伸ばしました——ただし途中で −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 | 優秀——ただしバックテスト期間が短いなら疑ってかかること |
ソルティノレシオはシャープレシオと似ていますが、罰するのは下方ボラティリティだけです。上昇方向のブレはリスクとして数えません。答えるのは、悪いボラティリティ一単位あたり、どれだけのリターンが得られるのか?という問いです。
SMA Cross では Sortino(0.72)が Sharpe(0.77)に近く、この戦略のボラティリティがほぼ対称であることを意味します。Sortino が Sharpe より大幅に高い戦略は、上昇方向の振れが大きい一方でドローダウンは抑えられており、望ましい形です。
| Sortino と Sharpe の関係 | 示唆されること |
|---|---|
| Sortino ≈ 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 | 優秀——あるいは過剰最適化の可能性 |
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 上で実際にどうやるかは〈アウトオブサンプル検証のやり方〉をご覧ください。)
手数料を無視する: btc_sma_cross は 4 年間で元本の 22% を手数料として支払いました。より高頻度の戦略では、手数料が alpha を簡単に上回ります。レートは実際に取引する市場に合わせてください。FEE = 0.0005 は Binance の USDⓈ-M 先物 VIP0 の taker 0.05%(maker は 0.02%)に相当します。Binance の現物は最下位ティアで maker も taker も 0.1% なので、現物戦略を 0.0005 で書くとコストを過小評価することになります。
総リターンとリスク調整後リターンを混同する: リターン 200%・MDD −80% の戦略は、リターン 80%・MDD −15% の戦略より「良い」わけではありません。前者では、実際のユーザーの多くが底値付近でパニック決済してしまいます。