トレード成績の不確実性を調べるとき、日次損益を一つずつ無作為に並べ替えると、連敗のまとまりや値動きの持続が消えてしまいます。Stationary bootstrap(定常ブートストラップ)は、隣接する観測をランダムな長さの塊として取り直す方法です。ただし「平均何本をつなぐか」と「市場が閉まる場所をどう扱うか」は別の設計問題です。この二つを混同すると、依存を残すつもりの処理が別の確率モデルに変わります。
まず評価したい量を決め、その量を計算する損益系列と時間の単位を定義します。平均収益の信頼区間なのか、戦略間の平均差なのか、最大ドローダウンの経路評価なのかによって、残すべき情報が違います。以下の確率とインデックス例は説明用であり、市場データから得た推定結果ではありません。
平均4本は「必ず4本を抽出」ではない
長さnの元系列から最初の位置を一様に選びます。次の観測を生成するたびに、確率1−pで元系列の次の位置へ進み、確率pで全位置から改めて一様に選びます。末尾から進む場合は先頭へ循環します。これを必要な標本長まで続けるのが標準的な構成です。再開始で偶然同じ位置や次の位置を引いても、それは新しいブロックとして扱います。
再開始までの理論上の長さLは、P(L=ℓ)=p(1−p)ℓ−1という幾何分布に従い、期待値はE[L]=1/pです。p=0.25なら平均4観測ですが、1本で切れる確率は25%、4本ちょうどは約10.55%、4本を超える確率は約31.64%あります。最後のブロックは出力長nに達した時点で切られるため、有限の再標本で観測した平均長が必ず4になるわけでもありません。

この構成の原典はPolitisとRomanoによるThe Stationary Bootstrap(1994)です。弱い依存を持つ定常観測について、推定量の標準誤差や信頼領域を求める枠組みを提示しています。「stationary」という名前は、相場の変化を自動で補正するという意味ではありません。入力の性質が期間を通じて十分安定しているかは、別途点検が必要です。
本数の前に、観測の時計を固定する
5分足4本なら通常は20分、日次4本なら4取引日です。しかし5分足の配列で昼休みや休場を省いていれば、隣の行までの実時間は5分とは限りません。取引ごとの損益を並べる場合も、4取引が数分に集中する日と数日かかる日があります。ブロック長の単位を「観測数」として記録し、実時間や保有期間へ無条件に読み替えないことが出発点です。
入力表には時刻、タイムゾーン、取引日、セッション識別子、損益の対象区間を持たせます。日付をまたぐ夜間取引では、暦日と取引所の取引日がずれることがあります。どちらを集計キーにするかを先に定め、同じ経済的区間を二度数えないようにします。夏時間や短縮取引日も、単なる欠損として埋める前にカレンダー上の意味を確認します。
休場日は、観測されていない時間と、観測した結果のゼロ収益を区別します。営業していたがポジションを持たず損益ゼロだった日は、日次戦略系列の正当な一行です。一方、休日にゼロを挿入すると、平均、分散、自己相関だけでなく「4本」の時間的意味まで変わります。暦日ベースで資本の推移を評価する目的なら休日行を持つ設計も可能ですが、営業日ベースの成績と年率換算を混ぜてはいけません。
境界で必ず切ると、幾何分布の前提が変わる
標準方式は市場の開閉を認識せず、配列上の隣接だけを見ます。A日の最後の観測A4に続く行がB日の最初B1なら、同じブロックでA4からB1へ進めます。これが不適切かどうかは入力の意味次第です。終値から翌始値への価格変化を含む系列なら、その接続は夜間の経済的な連続性を表すことがあります。
「セッション末尾では必ず再開始する」という制約を追加すると、通常の確率pとは別の切断要因が入ります。開始位置から境界まで残りr観測なら、その連続部分の長さはmin(L,r)となり、期待値は{1−(1−p)r}/pです。例えばp=0.25、残り2観測なら期待値は1.75で、4ではありません。開始位置ごとにrも異なるため、全体は境界までの距離が異なる分布の混合になります。

ここでの式は、境界で強制切断する設計を説明するための計算です。標準方式の理論保証をそのまま移せるという主張ではありません。境界制約を使うなら、再開始位置を全観測から選ぶのか、同じ時間帯から選ぶのか、セッションの先頭に限定するのかも明示します。それぞれ開始位置の分布と保存する依存が変わり、同じpでも別の再標本法になります。
夜間損益を、境界処理で消さない
前日終値で保有していたポジションには、翌日の始値までの損益が発生します。日中の足だけを使い、初足を「始値から次の足まで」と定義すると、この損益は含まれません。逆に、初足を「前日終値から初足終値まで」とすると、夜間変動と日中変動が一行に混ざります。境界でブロックを切っても、欠落した夜間損益は回復しません。
実務では、夜間区間を独立した損益行として持つか、翌取引日の初回区間へ含めるか、日次時価評価でまとめるかを選びます。取引手数料、資金調達費用、配当調整なども帰属規則を統一します。リターンを再標本化する場合は各区間の資本基準をそろえ、金額損益を足す場合は固定元本か可変ポジションかを明確にします。元の価格だけをつなぎ直すと、人工的な接続価格差を売買損益として数えるおそれがあります。
日次集約は境界問題を整理する代替案
日中の季節性が強く、目的が日次平均収益なら、まず取引日単位の純損益へ集約してから日次系列に定常ブートストラップを適用する方法があります。1日という会計単位に夜間損益も一度だけ帰属させれば、昼休みや短縮営業を足の接続規則で処理する必要が減ります。日中リターンの合成は、単純な足し算でよいか複利の積が必要かを資本定義に合わせます。
ただし、日次にしたから日を独立に引いてよいわけではありません。数日続くポジション、変動率の持続、連続するイベントの影響は残ります。日次系列でも複数日ブロックを検討します。また、日次集約は日中に発生して引けまでに回復した損失を隠すため、日中最大ドローダウンの評価には使えません。日内経路を残したいなら、一日分の観測を一単位にする設計もありますが、可変長の日や夜間の接続を別途定義する必要があります。
自動ブロック長は、何の推定に最適かを問う
短いブロックは依存を早く切り、長いブロックは元の並びを多く再利用します。選択は単なる見栄えの調整ではなく、推定誤差のバイアスと変動の釣り合いです。PolitisとWhiteのAutomatic Block-Length Selection for the Dependent Bootstrap(2004)にはデータに基づく選択法があり、定常ブートストラップに関する計算にはPatton・Politis・Whiteの訂正(2009)を反映する必要があります。
archのoptimal_block_length公式資料は訂正を参照し、入力の列ごとに定常方式と循環方式の推奨長を返します。これは自己共分散から平均の分散に関わる量を推定する設計であり、任意の成績指標の信頼区間を万能に最適化する関数ではありません。平均損益を調べるなら損益系列、二戦略の平均差なら差の系列を基準に考えると、目的との対応が明確になります。
シャープレシオは平均と分散の両方に依存し、最大ドローダウンは経路全体に依存します。平均用に得た長さを、そのまま両者の最適値と呼ぶことはできません。滑らかな統計量なら影響関数に対応する系列を使う考え方がありますが、統計量に応じた導出が必要です。まず対象を明記し、推奨長の半分・同程度・2倍など事前に決めた範囲で、区間幅や順位の感度を比較します。有意になる長さを後から選ぶ運用は避けます。
多戦略では同じ時刻を一緒に引く
候補戦略を比較するなら、行を時刻、列を戦略とする損益行列を作ります。各反復でインデックス列を一度だけ生成し、その列を全戦略へ適用します。市場全体が急落した日に複数戦略が同時に損失を出す関係を残すためです。ベンチマークも同じ時刻で抽出します。戦略ごとに別の乱数で引くと、戦略間の相関を壊し、平均差や候補最大値の再標本分布が変わります。
戦略別に自動推奨長が異なっても、比較検定で列ごとに独立の索引を作る理由にはなりません。対象の差系列や検定統計量に沿って共通長を選び、複数の共通長で感度を確認します。取引開始日が違う候補は、比較可能な共通期間を先に定めます。運用していない期間をゼロで延長することと、実際に待機していたゼロ損益は異なります。
実装の検査では損益の値より先に索引を保存します。小さな連番データを用意し、再開始しなかった箇所が必ず次の番号へ進むこと、末尾の次が先頭になること、全列で同じ番号を使うことを確かめます。境界制約版は別の関数として検査し、標準版と同じ名前で上書きしないようにします。元データの番号が偶然連続しているだけでは、再開始の有無を判定できないため、再開始フラグも記録します。
ブロック長の分布を検査するときは、生成途中で切れた最後のブロックを完全な長さとして扱わない工夫が必要です。また、境界で切られた件数と乱数によって切られた件数を分ければ、設定したpより実質的に細切れになっているかが分かります。反復回数を増やす前に、この索引検査を通すほうが、誤った再標本を大量に作る計算を防げます。
平均差を調べる際には、同じ索引で抽出した二列の差と、先に作った差系列を同じ索引で抽出した結果が一致することも確認できます。これは複雑な検定を実装する前の簡単な整合性検査です。欠損値を戦略ごとに別々に落とすと時刻対応が崩れるので、欠損処理は行列を作る段階で完了させ、比較対象に含めた時刻の一覧を保存します。
平均の推論と損失経路の評価を分けて保存する
平均の信頼区間では各再標本の平均を計算します。帰無仮説の検定では、区間推定と同じ分布を無条件に流用せず、必要な再中心化や標準化を検定方式に合わせます。一方、ドローダウンは再標本の順番どおりに資産を累積し、各時点の過去最高額からの下落を求めます。ブロックの接続は損失の並びを変えるため、平均の推論が安定していても、極端な下落の評価が安定するとは限りません。
とくにドローダウンには評価期間の長さが効きます。1年分の再標本による分布を、5年間の運用経路の分布と同一視しないようにします。再標本化した損益経路は過去の依存構造を近似するもので、未知の危機や売買ルール変更を生成する装置ではありません。保有状態に依存する証拠金や売買停止まで評価するなら、完成済み損益の並べ替えだけで足りるかを検討します。
最後に残すのは、入力期間、損益単位、カレンダー、夜間の帰属、対象統計量、共通長、p、境界規則、乱数シード、反復回数です。平均、分散、収益の二乗の自己相関を見て、日中季節性や制度変更も点検します。平均が一定でも変動率が持続する系列はあり、収益の自己相関だけでは依存を捉えきれません。期間を分けた診断とブロック長の感度表を並べれば、数字の変化が推定の揺れなのか、データ定義の違いなのかを追跡できます。


コメント