この計算器はJavaScriptで計算している。いまJavaScriptが動いていないので、下の結果欄には何も出ない。 JavaScriptを有効にするか、Safari・Chrome などのブラウザで開いてほしい。記事⑫の本文には、刻んだ表がそのまま載せてある。
仮定を変えると、必要なデータ年数はどう変わるか
記事⑫の表を、自分で置いた仮定で作り直すための計算器。押すボタンは無くて、初期設定のままでも下に答えが出ている。
出るのは
必要なデータ年数の概算(合計) になる。
真のSharpeがずっと同じだと仮定して、
最後に一度だけ 判定するとき、
指定した確率で「効いている」と言えるだけの、データの長さだ。
読み違えやすいので、先に書いておく。
いま持っているぶんも含めた合計になる。いまから追加で待つ年数ではない
その年数やれば真偽が決まる、という意味ではない
途中で何度も確かめる場合と、「効いていない」と言い切る場合は、この計算では扱っていない
1. 必要な年数を出す ― この仮定なら、何年ぶん要るか
片側の有意水準
5%
1%
10%
効いていないのに「効いている」と言ってしまう確率の上限。小さくするほど基準が厳しくなって、必要な年数が増える。片側というのは、稼ぐ方向にだけ効くかを見る形になる
検出力
80%
50%
90%
95%
本当に効いているとき、それを見つけられる確率。80%なら、効いていても5回に1回は見逃す。高くするほど必要な年数が増える
2. 判定の線 ― この長さのデータで、何を超えればよいか
3. 表で見る ― 仮定と試した回数で、どう動くか
列は試したパターン数 k(通り)、行は真のSharpe。中の数字は「必要なデータ年数の概算(合計)(年)」で、整数へ丸めている。上の有意水準と検出力を変えると、この表も変わる。真のSharpeと試したパターン数は表の行と列そのものなので、入力欄の値では表は動かない。
使っている式
必要なSharpe = z(1 − α ÷ k) ÷ √年数
必要な年数 = ( ( z(1 − α ÷ k) + z(検出力) )
÷ 真のSharpe )²
z は標準正規分布の累積分布関数の逆関数で、確率を渡すと、左側の面積がその確率になる位置を返す。α ÷ k がボンフェローニ補正で、k通り試したぶん基準を厳しくする部分になる。
試した全部をまとめて見たときに、どれか1つでもまちがって「効いている」と言ってしまう確率を、この補正が抑える。それは試したものが互いに独立でなくても成り立つ。
ただし互いに似た候補では、実際に必要な基準よりきつくなる。
Sharpeの標準誤差を 1÷√年数 で近似している。日次の損益から年率へ換算したSharpeを想定していて、月次や年次の損益から測ったSharpeでは、真のSharpeが大きいほど必要な年数が増える(iid正規なら標準誤差が √(1+S²÷(2m)) 倍になる。m は1年あたりの観測数。Lo 2002)。実際の損益は正規分布より裾が厚く、日どうしのつながりもあるので、
ずれる向きは一方向とは言えない。z の計算には Acklam の近似を使っている。
記事⑫の付録。English version 初期設定(片側5%・検出力80%)で check_years_to_verdict.py と一致する(k=1・S=0.2 で155年、k=336・S=1.0 で20年)。有意水準と検出力の12通り × 42セルも突き合わせて、値と丸めまで一致した。ただし同じ式の写しどうしなので、独立した検証ではない。
版:2026-09-11。入力した数値の計算は、この画面の中で終わる。計算器から外部へ送るものは無い。 (ページを開くときの通信は、置き場所による)
この計算器は投資助言ではありません。特定の売買手法・金融商品の利用や購入を推奨するものでもありません。