Advanced C · システマティック・定量取引
市場の問いから再現可能なコードへ進み、入手可能性、選択偏り、コストを管理します。
- 第 22 章 · シグナルFeature Engineeringを行い、複数シグナルをどう1つに組み合わせるか?
- 第 23 章 · 市場状態Regime Modelを作り、状態に応じて戦略をどう調整・停止するか?
- 第 25 章 · バックテストイベント駆動とベクトル化バックテストには、それぞれどんな落とし穴があるか?
- 第 26 章 · データバイアス生存者バイアスを避け、時点を揃えたデータセットをどう作るか?
- 第 27 章 · インサンプルとアウトオブサンプルWalk-forwardとPurged Validationで情報漏洩をどう防ぐか?
- 第 29 章 · 頑健性Parameter Stabilityをどう検証するか?平坦な領域と孤立したピークの違いは何か?
モデルより先に Market Question
最も美しい曲線でなく、過去情報が次期純収益の判断を改善するかを研究します。ワークブックに、Python 標準ライブラリーのみの実験があります。固定シードの入力、過去特徴、時間分割、訓練選択、費用、最終 OOS、ブロック bootstrap、経路ドローダウンを含みます。研究規律の実演で、合成データの市場優位は主張しません。
派生特徴の前に原入力と辞書を保存します。予測、保有、約定は別で、正しい予測もコスト、容量、未約定で純利益がない場合があります。
Time Series:時刻が最初の制約
観察順序を保ち、更新窓は判断前の公表データだけを読みます。リターンラベルの開始・終了を記録し、訓練とテストを跨ぐ訓練ラベルを削除します。重複結果は独立実験ではありません。
公表を1期遅らせ、信号が後ろへ動くか確認します。元の時刻で約定すれば漏洩です。各行に event_time、available_at、decision_time、label_end を置き、入手可能の後に判断します。欠損は停止・見送りで記録し、未来補間しません。
Factor Research:対価がある理由
因子は横断面・時系列に共通する説明変数です。規模、流動性、モメンタムは共通リスクの代理かもしれず、予測相関は因果ではありません。仕組み、方向、期限、費用を先に決め、順位群や回帰を見ます。
過去収益候補を市場保有基準と比較し、群別収益、情報係数、回転率を出します。群数を検証前に固定します。低流動性だけなら未実現価格でないかを確認します。廃止、因子版、リスク管理を残し、コスト前相関を Alpha と呼びません。
Signal Combination:重みも過学習する
同じ過去窓の2信号は、平均しても独立情報が増えるとは限りません。時刻と単位をそろえ、等重み、事前重み、訓練推定を比べます。重みも設定として試行登録・OOS に入れます。
モメンタムとフローの片方だけを残す除去を行います。同じテスト、リスク、費用で安定した追加効果があれば複雑さを残します。相関行列、重み版、単独・合成比較を出し、欠損は固定規則で扱い、勝者へ後から重みを寄せません。
Feature Engineering:全変換に訓練境界
収益、変動、更新分位、出来高比は派生です。正規化、外れ値制限、欠損補完も設定を持ちます。訓練だけで適合し、検証・テストへ適用します。全体平均で未来分布を知りません。
テストに大変動を加え、訓練の正規化が変わらないか確認します。欠損を入れ、既定代替か無シグナルかを確認します。順序、窓、単位、例外規則を保存します。本物の極端値の切捨てはテールを変えるため、元リスク列も残します。
Cross-sectional Strategy:事後選択でなく同時比較
同時点の取引可能資産を順位付けし、当時の集合を復元します。似た価格でもリスクが違えば高 Beta を買っただけかもしれず、売買の同元本は因子中立を保証しません。
上場、廃止、欠損の教材表から各期の集合を作り、未来の採用を使いません。順位、除外理由、元本を出します。最低流動性、借株、単一上限、業種集中を確認し、制約不足なら空保有を許します。
Alternative Data:ラベルと改訂もデータ
オンチェーン、ニュース、フロー、SNSには遅延、改訂、網羅拡大、許諾制約があります。発生は取引可能時刻ではありません。現在の最終版を無条件に歴史的 point-in-time としません。
初版と改訂版で信号を作り、差を測ります。過去版がなければ探索に限定します。出所、初回入手可能、版、許諾、欠損率を出します。口座キー、顧客データ、実取引権限を要求するコードにはしません。
Statistical Arbitrage:安定関係を検証
差や残差の予測可能な回復を利用しても、モデル・融資リスクがあります。リターン相関は価格の共和分ではなく、訓練で安定しても制度、供給、参加者で壊れます。
訓練で教材ペアを推定し、テスト残差の平均、分散、回復時間を確認します。永久水準変化で停止を観察します。経済説明、破裂検出、両脚費用、期限を出し、再推定で失敗を吸収して未失敗と主張しません。
ML Signal:複雑さには OOS の追加証拠
機械学習は非線形も雑音もよく適合します。定数、線形、単純規則を先に基準にし、特徴選択、モデル種類、設定は内側の訓練・検証だけで決めます。
ラベルと費用を固定し、単純と候補を比較します。予測誤差、方向校正、回転率、純収益は代替不能です。少標本なら基準を残せます。シード、版、特徴一覧、失敗を提出し、モデルファイルだけは不可です。
Regime Model:当時分かる状態
過去の変動、スプレッド、流動性で適用条件を作ります。損失日を事後に危機と呼び除けば結果漏洩です。隠れ状態も過去のフィルタリングだけを使い、全系列の平滑化確率をリアルタイムとしません。
前期変動だけの停止を追加し、純利益と機会費用を比較します。移行根拠、ヒステリシス・冷却、誤判定を出します。不足時の初期状態を定義し、事後最良の分岐を選びません。
Optimization:目的関数は現実を決めない
訓練最大利益は雑音、薄い流動性、極端な倍率へ集中しがちです。費用、保有、回転、集中、資本を制約します。テールを省く最適解は、未価格リスクを効率的に負うだけかもしれません。
事前の小さな網目に絞り、峰だけでなく近傍を描きます。安定領域を選んでテストを固定します。探索数、有効制約、失敗解、単純基準を出します。テスト後の調整は新研究で、元テストは使用済みです。
Walk-forward:時間に沿って研究を進める
各分割で過去訓練、次の検証、さらに後のテストを使います。移動・拡大窓を事前に決め、変換・設定を毎回適合します。本当のテストだけを結合して運用順に近い評価にします。
3分割を描き、読めるデータとモデル版を示します。窓自体を試したら独立最終テストも残します。重複窓で同じ日を加算したり、検証成績を最終曲線へ混ぜたりしません。
Purged Validation:ラベル重複を隔離
検証・テストの時間領域と重なる訓練ラベルを除きます。未来を訓練に使う交差検証なら、検証後に embargo を置き、隣接窓の特徴・ラベル漏洩を減らします。長さはデータ依存の根拠が必要で万能比率ではありません。
教材は過去訓練・未来テストで、ラベルが2期持続し、跨ぐ分を除きます。ランダム K 分割に偽装しません。期限を延ばし削除も増えるか確認します。分割番号と漏洩アサーションを出し、名前だけで完了にしません。
成果物:再現可能な研究コード
コードの入力、設定、シード、命令、全出力を残します。出所と入手可能時刻のある入力へ替えて同じ流れを再実行します。取引可能入力がなければ工学演習にとどまり、昇格しません。
空ディレクトリーで他の人がコピー実行でき、費用が純収益を変え、テスト変更が訓練選択を変えず、重複ラベルが除去され、欠損・不足・非有限を拒否することが完成条件です。Memo、コード、入力、Backtest Report を機関研究へ提出します。