メインコンテンツまでスキップ

🗄️ 歴史的文書(アーカイブ) — この文書は過去の研究フェーズの記録であり、現在の結論・手法を反映していません。現在の研究状況は解説セクションを参照してください。

Phase 2b — ETH_JPY 代替アルファ候補(imbalance / trade-follow を超えて)

本ページは Phase 2b のレポート research_reports/phase2b_alternative_alpha_candidates.md を整理したもの。 Phase 2 の top-3(phase2/alpha-signal-candidates.md)は microstructure ρ を持ちながらも、Phase 1.5-v2(phase1_5_v2/leaderboard-v2.md)で 10 ETH にスケールした際に -¥5M〜-¥12M を出した。本フェーズでは orderbook imbalance / big-trade follow と根本的に異なるクラスのシグナルを再探索し、4 本の候補とレジーム分類器を提示する。

ラン条件

  • Symbol: ETH_JPY(GMO 信用、手数料ゼロ)
  • サンプル日(3、Phase 2 と同一): 2026-03-12(chop, -0.14%), 2026-03-16(rally, +9.6%), 2026-03-18(down, -5.5%)
  • Data source: s3://historical-source/market_stream/symbol=ETH_JPY/business_date_jst=<day>/{trades,ticker,orderbooks}.parquet
  • Feature grid: ~2 Hz の orderbook スナップショット(170-176k rows/日)、trades は merge_asof(direction='backward') で grid にマージ
  • Forward return: r_H(t) = log(mid(t+H) / mid(t))、horizon H ∈ {1s, 5s, 30s, 300s}
  • t-stats: raw Pearson + Newey-West HAC(Bartlett kernel、truncation lag = 2×H samples at 2Hz)
  • 長ウィンドウ・ローリング特徴量(VWAP_30m、1h VPIN z-score 等)の安定化のため、各日最初の 3,600 行(~30 分)を廃棄。

Phase 2 との pipeline 差分:

  • 長い trade lookbacks(60s, 300s, 1800s)で VWAP / VPIN を計算
  • Session-cumulative CVD を 06:00 JST 境界で anchor
  • 5 分窓の rolling AR(1) を連続レジーム検出器として追加

TL;DR — Phase 3b 推奨

Composite 軸: sign 安定性 × |ρ| @ 5s/30s × low turnover × Phase 2 との新規性

RankCandidateClassBest horizonrally ρdown ρchop ρHAC |t| @ best HTurnover q90 (flips/day)Regime-stable?Novelty
1cvd_accel = sv_5s/5 − sv_30s/30Multi-scale CVD(flow acceleration)5s+0.013+0.032+0.0315.47(rally 1s)800 avg(~1.3k chop, 1.1k rally max)yes: +,+,+ at 5s; 2/3 at 30sflow acceleration、level ではなく — sv_1s と直交
2mscale_consensus_3sig = sign(top1) = −sign(deep) = sign(sv_30s), ±1 else 0Multi-scale composite5s+0.049+0.008+0.0099.48(rally)sparse — ~5-15% active;q90 ≈ 0 flips、q80 ≈ 14k — 実質 rareyes: +,+,+ at 5s and 30sPhase 2 top-3 の sign 一致 gate — rare だが high-grade
3vwap_dev_1m_bps = (mid − VWAP_1m) / mid × 1e4VWAP deviation5s / 30s+0.035 / +0.031-0.001 / -0.023+0.022 / +0.0343.29(rally 5s), 2.46(chop 5s)2,100 avgpartial: +,−,+ at 30s ⇒ regime-dependent — rally/chop で momentum、down で reversionprice-vs-VWAP — 現 ATC に未搭載
4signed_vpin_5m = sv_300s / v_300sFlow toxicity300s+0.036+0.078-0.0541.60(down 300s)124 avg — 最小2/3 regimes at 300s; chop で反転5 分 bucket の order-flow toxicity

ヘッドライン

  1. 4 候補すべてが「Phase 2 と別物」ラインを通過。 どれも orderbook imbalance variant や big-trade follow ではない。#1, #4 は trade-flow 系だが Phase 2 の signed_vol_1s とは根本的に異なるスケール。
  2. #1 cvd_accel は 5s horizon の regime-stable alpha として最強。 |ρ| > 0.012 が 3 日全て、HAC |t| ≥ 0.9 が全て、rally 1s では 5.5。ターンオーバーは全 3 レジームで ≤3k flips/日 バジェット内。
  3. #2 mscale_consensus_3sig は sparse high-grade event signal。 Phase 2 の 3 独立シグナルが sign 一致したときのみ発火する gate。q90 で ~0 flips(quantile 閾が 0 になる)だが active-frac ~5-15%。発火時は HAC t = 9.5(rally 5s)。Phase 2 top-3 が既に実装されていれば新規 feature engineering ゼロ。
  4. #3 vwap_dev_1m_bps はレジーム分類器を兼ねる。 セッション終端の符号: rally +0.60 bps、down -2.97 bps、chop 曖昧(符号反転)。sign(vwap_dev_30m_bps) は 6 時刻 × 3 日 = 18 time-regime のうち 10 一致 — n=3 で大きな結論は出せないが rally / down は clean separate。
  5. #4 signed_vpin_5m は本研究最小のターンオーバー(~124/日)。 300s horizon ρ = +0.036 rally / +0.078 down(study 内で最強)。chop は -0.054(反転) — chop 用ゲートが必要。

候補バッテリー(24 シグナル × 4 horizon × 3 レジーム)

A. 時間系シグナル

SignalDefinitionrally 5s ρdown 5s ρchop 5s ρComment
trade_rate_z_1sn_1s の trailing 5 分 z-score+0.0180.000+0.003rally-only。Reject。
trade_rate_z_5sn_5s の z-score-0.014-0.001+0.008符号反転。Reject。
silence_run_secn_1s == 0 連続サンプル × 0.5s0002Hz では検出不能。Rust event-loop 拡張が必要。保留
silence_after_burst_flag直近 10s で n_5s ≥ p80 かつ現在 ≤ p300.000+0.007-0.0042Hz で active ~0.2%、inconclusive。

結論: 時間率系は rally 限定か符号反転。Silence 検出は高解像度イベントループ前提で deferred。

B. VWAP 逸脱

SignalDefinitionrally 5s / 30sdown 5s / 30schop 5s / 30sHAC |t| maxTurnover q90
vwap_dev_1m_bps(mid − VWAP_1m) / mid × 1e4+0.035 / +0.031-0.001 / -0.023+0.022 / +0.0343.29(rally 5s)2,194 avg
vwap_dev_5m_bps5 分 VWAP 版+0.008 / -0.019+0.008 / -0.002+0.022 / +0.0252.11(chop 5s)1,208 avg
vwap_dev_30m_bps30 分 VWAP 版+0.006 / -0.001+0.004 / +0.001+0.007 / +0.0051.45(rally 1s)471 avg

結論: 1 分 VWAP 逸脱が最強。rally+chop では momentum(+)、down では reversion(−)。 regime-stable ではなく regime-dependent。別途レジーム分類器と組み合わせれば 3 レジーム対応可。候補 #3。

C. CVD(Cumulative Volume Delta)

SignalDefinitionrally 5s / 30sdown 5s / 30schop 5s / 30sTurnover q90
cvd_30ssv_30s+0.012 / -0.004+0.015 / -0.003+0.014 / -0.006367 avg
cvd_accelsv_5s/5 − sv_30s/30+0.013 / +0.018+0.032 / -0.002+0.031 / +0.019785 avg
cvd_session_raw06:00 JST からの cumulative signed volume-0.003 / -0.009+0.008 / +0.016+0.007 / +0.01619 avg
cvd_session_normcvd_session / (v_1800s + 1)-0.004 / -0.011+0.002 / +0.006+0.009 / +0.02125 avg

結論: cvd_accel が候補 #1 — 5s で 3 レジーム全て正、30s で 2/3 正。cvd_30s は Phase 2 signed_vol_1sbaseline_flow_imbalance_pulse コア)の 30s 版で直交性不足。Session cumulative は rally で符号反転するため tradeable ではない。

D. マルチスケール複合

SignalDefinitionrally 5s / 30sdown 5s / 30schop 5s / 30sTurnover
mscale_top1_x_sv30sob_imb_top1 × sign(sv_30s)-0.011 / -0.011-0.011 / -0.009+0.003 / +0.01310,171/日 q90
mscale_negdeep_x_sv30s(−ob_imb_deep) × sign(sv_30s)-0.011 / -0.001+0.008 / -0.001-0.004 / -0.0179,870/日 q90
mscale_consensus_3sigtop1, −deep, sv_30s の sign 一致 = ±1 else 0+0.049 / +0.013+0.008 / +0.007+0.009 / +0.020sparse(q90 ≈ 0, q80 ≈ 14k)

結論: 単純な「top-1 / deep × flow 符号」積は component より劣化。mscale_consensus_3sig が候補 #2 — 3 シグナル sign 一致のときだけ発火する gate。Active ~5-15%、発火時 HAC t = 9.5(rally 5s)。Phase 2 top-3 実装済みなら新規 feature コストはゼロ。

E. 注文フロー毒性(VPIN-lite)

SignalDefinitionrally 5s / 30s / 300sdown 5s / 30s / 300schop 5s / 30s / 300sTurnover q90
vpin_1m`sv_60s/ v_60s`+0.001 / +0.020 / -0.006+0.000 / -0.002 / -0.019
vpin_5m`sv_300s/ v_300s`+0.002 / +0.005 / -0.079-0.003 / -0.009 / -0.023
vpin_5m_z_1hvpin_5m の 1h trailing z-score+0.007 / +0.018 / -0.038+0.007 / +0.009 / +0.022-0.000 / +0.003 / -0.040135 avg
signed_vpin_5msv_300s / v_300s(符号付き、5 分 bucket)+0.011 / +0.014 / +0.036+0.008 / +0.015 / +0.078+0.001 / -0.005 / -0.054124 avg — 最小
signed_vpin_1msv_60s / v_60s+0.004 / -0.016 / -0.002+0.013 / +0.016 / +0.045+0.014 / +0.020 / +0.019386 avg

結論:

  • 符号無し VPIN は弱いか反転。 vpin_5m は chop 300s で -0.079(Phase 2 の big_cluster_count_30s と同じ高毒性 ⇒ chop で reversion)だが他は 0 近傍。
  • signed_vpin_5m が候補 #4 — 300s horizon ρ = +0.036 rally, +0.078 down。chop 反転 -0.054 のため regime gate 必須。Study 内最小ターンオーバー(124 flips/日 avg)。
  • HAC t-stats は modest(|t| ≈ 1.6 at down 300s) — 300s window rolling の heavy autocorrelation による。2 ETH サイズでのダウンサイド制限付き検証を推奨。

F. ティック方向 run-length

SignalDefinitionrally 5s / 30sdown 5s / 30schop 5s / 30s
tick_run_lengthmerged-asof tick_sign の同符号連続 run+0.000 / -0.006-0.003 / -0.012+0.008 / +0.021

結論: 符号反転。Reject。

G. レンジ / ボラティリティ・バースト

SignalDefinitionrally 5s / 30sdown 5s / 30schop 5s / 30s
rv_ratio_5s_over_30sσ_log_5s / σ_log_30s(bps 比)+0.009 / -0.008-0.007 / -0.001+0.003 / +0.010
range_5s_bps(max − min)/mid × 1e4 over 5s-0.044 / -0.053+0.001 / +0.007+0.020 / +0.004

結論: range_5s_bps は rally で negative(HAC |t| ≈ 3.0)、down/chop では 弱 or 反転。regime-dependent volatility-reversion signal — スタンドアロン不可、レジーム・ゲートの補助として deferred。

H. レジーム検出器 — ローリング AR(1)

SignalDefinitionrally 5s / 30s / 300sdown 5s / 30s / 300schop 5s / 30s / 300s
ar1_fwdret_5s_5mfwd_ret_5s の 600 サンプル(~5 分)rolling AR(1)+0.011 / +0.017 / +0.035-0.005 / -0.015 / -0.021-0.001 / -0.007 / -0.035

結論: 300s で符号レジーム・フリップ(rally +0.035 / chop -0.035)。レジーム分類器として有望だが日次平均は全レジーム ~0.87 で近接、利用は 偏差 のみ。追加研究後に使用。

Z. ファンディング・レート — 未利用可能

src/atc/strategies/experimental/funding_rate.pyfunding_rate_close / funding_rate_1h を参照するが、これらを生成するデータ・インジェスト・パイプラインが存在しないsrc/atc/data / src/atc/features 内の funding grep ゼロ)。GMO Coin 信用の 0.04%/日 保有コストは既にモデル化済み。GMO Coin perp のファンディング・レートは公開 feed なし。

テストには:

  • 新規データソース・コネクタ(CoinGecko / Binance ETH-USD perp をプロキシとして使用)
  • funding_rates テーブルへの historical backfill ジョブ

推定コスト: ~1 エンジニア日(ingest)+ 1 日(business-date-JST alignment)。シグナル品質は未知。Phase 4+ に deferred。

Top-4 詳細仕様

3.1 候補 #1: cvd_accel — フロー加速度

定義:

sv_5s_rate  = Σ signed_size(last 5s)  / 5    [ETH/s]
sv_30s_rate = Σ signed_size(last 30s) / 30 [ETH/s]
cvd_accel = sv_5s_rate − sv_30s_rate [ETH/s]

ρ at horizon × regime:

Regime1s5s30s300s
rally(2026-03-16)+0.065+0.013+0.018+0.018
down(2026-03-18)+0.019+0.032-0.002+0.005
chop(2026-03-12)+0.032+0.031+0.019-0.001

HAC |t|(truncation lag = 2×H samples): rally 1s = 5.47, chop 1s = 3.56, chop 5s = 2.38, down 5s = 1.38。

Phase 2 との新規性: signed_vol_1s(Phase 2)は rally 1s ρ = +0.12 と強いが baseline_flow_imbalance_pulse のコア。cvd_accelslow-moving baseline を減算 — 30s 平均を超えて 加速する flow のみで発火。Phase 2 top-3 とゼロ・オーバーラップ。

Turnover @ q90(ETH/s 閾): 556 chop, 677 down, 1,121 rally。Avg 785/日 — 3k バジェット内、余裕あり。

Entry/exit rule--min-order-interval-sec 30, --max-abs-position-eth 2 互換):

  • 全 tick(orderbook or trade)で cvd_accel 計算
  • 戦略レベルで trailing 24h |cvd_accel| quantile を q90 閾とする(或いは静的 fallback 2.0 ETH/s)
  • Entry: |cvd_accel| > q90_thr ⇒ target = sign(cvd_accel) × 2 ETH
  • Exit: |cvd_accel| < 0.5 × q90_thr OR entry から 30s 経過 ⇒ target = 0
  • Risk guards: spread_bps > 12 → skip, rv_30s > 12 bps/s → skip
  • 30s min-interval で現実的 flips ~100-300/日、3k バジェット余裕

Feature engineering コスト: Low。trade_series が 31s 履歴保有済 → 5s/30s window sum 追加(~30 LoC、feature_engine.py / Rust 同等)。

Regime-classifier potential: Low(構造上日次平均 ~0)。

3.2 候補 #2: mscale_consensus_3sig — 3 シグナル一致ゲート

定義:

s1 = sign(ob_imb_top1)
s2 = sign(−ob_imb_deep_5to30) # Phase 2 候補 #2(反転)
s3 = sign(sv_30s) # 30s CVD
mscale_consensus_3sig = s1 if (s1 == s2 == s3 and s1 ≠ 0) else 0
∈ {−1, 0, +1}

ρ at horizon × regime:

Regime1s5s30s300s
rally+0.045+0.049+0.013+0.007
down+0.008+0.008+0.007+0.019
chop+0.016+0.009+0.020+0.006

HAC |t|: rally 5s = 9.48, rally 1s = 14.08, chop 1s = 4.83, down 1s = 2.31。

Phase 2 との新規性: Phase 2 3 本の sign 一致 gate — 連続 correlation を sparse event trigger に変換。Active ~5-15%。

Turnover: 非ゼロが全サンプルの ~10-14%(rally 24,800 events / 14.4%, down 16,436 / 9.6%, chop 17,157 / 10.1%)。方向別カウント: rally pos 8,838 / neg 15,962;down pos 4,604 / neg 11,832;chop pos 4,794 / neg 12,363。3 日全てで bearish agreement が bullish の 2-2.5 倍(pos/neg 比 0.39-0.55) — sign-inverted deep imbalance 成分に由来する構造的ベア・バイアス。quantile-based turnover は |sig| ∈ {0, 1} のため ill-defined;signal ≠ 0 をそのままトレーディング・ゲートに使う。30s min-order-interval で現実的なポジション変更 ~500-1,500/日。

Entry/exit rule:

  • Entry: mscale_consensus_3sig ≠ 0 ⇒ target = mscale_consensus_3sig × 2 ETH
  • Exit: 3 連続スナップショット(~1.5s)で == 0 OR 30s 経過 ⇒ target = 0
  • Risk guard は #1 と同じ
  • 閾値不要 — 三重合意そのものが閾値
  • Caveat: 構造的ベア・バイアス。 全テスト日(+9.6% rally 含む)で short の方が 2-2.5× 多い。ミティゲーション: (a) +1 / −1 で別閾値 or (b) short エントリに sign(vwap_dev_1m_bps) == signal 等の追加確認。

Feature engineering コスト: Phase 2 top-3 実装済ならゼロ。4 行の derived signal。

Regime-classifier potential: Medium。rally 日は bullish agreement 2-4× 多い、down 日は逆 — 最初の 4 時間の count(+)/count(−) 比でレジーム分類可能性、10+ 日で検証要。

3.3 候補 #3: vwap_dev_1m_bps — 古典 momentum/reversion

定義:

VWAP_1m(t)         = Σ (price_i × size_i) / Σ size_i  over trades in last 60s
vwap_dev_1m_bps(t) = (mid(t) − VWAP_1m(t)) / mid(t) × 1e4

ρ at horizon × regime:

Regime1s5s30s300s
rally+0.020+0.035+0.031-0.012
down-0.009-0.001-0.023+0.033
chop+0.005+0.022+0.034+0.023

HAC |t|: rally 5s = 3.29, chop 5s = 2.46, down 30s = -1.08。rally+chop は momentum(+)、down は reversion(30s で −)。

Phase 2 との新規性: 完全新規 — Phase 2 のどのシグナルも trade-weighted average price を使っていない。VWAP は古典 TA、institutional execution algo のコア要素。

Turnover @ q90(閾 ~2-3 bps): 2,107 chop, 2,378 down, 2,098 rally。≤3k バジェットの上端、許容範囲。

Entry/exit rule(regime-aware):

  • 別途 regime_flag 算出(§4 参照)。選択肢: sign(vwap_dev_30m_bps at 10:00 JST) or sign(ar1_fwdret_5s_5m − 0.85)
  • Entry:
    • regime_flag == +1 (rally) AND vwap_dev_1m_bps > q90 → target = +2 ETH
    • regime_flag == +1 AND vwap_dev_1m_bps < −q90 → target = −2 ETH
    • regime_flag == −1 (down) AND vwap_dev_1m_bps > q90 → target = −2 ETH(reversion!)
    • regime_flag == −1 AND vwap_dev_1m_bps < −q90 → target = +2 ETH(reversion!)
    • regime_flag == 0 (chop) → rally と同様(chop 日も momentum が効いた)
  • Exit: |vwap_dev_1m_bps| < q50 OR 30s 経過

Feature engineering コスト: Medium。trade_series 履歴を 31s → 60s に拡張、rolling weighted-mean state 追加(~40 LoC、Rust 同等)。

Regime-classifier potential: HIGH。 End-of-session vwap_dev_30m_bps: rally +0.60, down -2.97, chop 曖昧反転。10:00 JST vwap_dev_30m 評価の intraday classifier は 10/18 time-regime 一致 — n=3 では弱いが rally/down は clean 分離。10+ 日で検証要。

3.4 候補 #4: signed_vpin_5m — 5 分符号付きフロー毒性

定義:

v_300s         = Σ size        over last 300s
sv_300s = Σ signed_size over last 300s
signed_vpin_5m = sv_300s / v_300s ∈ [−1, +1]

ρ at horizon × regime:

Regime1s5s30s300s
rally+0.012+0.011+0.014+0.036
down+0.007+0.008+0.015+0.078
chop+0.003+0.001-0.005-0.054

HAC |t|: down 300s = 1.60, rally 1s = 3.02, chop 300s = -1.48。

Phase 2 との新規性: Phase 2 signed_vol_1s は 1s(瞬間)ピーク。signed_vpin_5m5 分 bucket で sustained directional flow を捉える。300s ρ は 5s の 4-7 倍。

Turnover @ q90(閾 ~0.20-0.25): 97 chop, 140 rally, 136 down。Study 内最小。 30s min-interval 下で実効 <100 flips/日。

Entry/exit rule:

  • 全イベントで計算
  • Entry: |signed_vpin_5m| > q90(~0.25)⇒ target = sign(signed_vpin_5m) × 2 ETH
  • Exit: |signed_vpin_5m| < q50 OR 300s 経過(シグナル horizon に整合)
  • chop 用 regime gate 必須: 直近 15 分で sign(vwap_dev_30m_bps) が flip していれば skip(chop proxy)

Feature engineering コスト: Medium-high。trade_series 31s → 300s 拡張、メモリ ~10 倍。Rust: trivial、pure Python: 2Hz なら OK、~50 LoC。

Regime-classifier potential: Low-medium。セッション終値: rally -0.09, down 0.0, chop -0.72 — VWAP-dev ほど clean でない。推奨外。

Phase 3b レジーム分類器ノート

レジーム分類可能性のある候補 3 つ:

ClassifierEnd-of-session 値Rally +9.6%Down -5.5%Chop -0.1%Agreement
sign(vwap_dev_30m_bps)last row+1-1mixedrally/down 分離
sign(ar1_fwdret_5s_5m)last row+1+1+1識別不可(all +)
sign(cvd_session_norm)last row-1+1+1regime と逆相関 — 使えない

vwap_dev_30m_bps が最 clean。Intraday trace(6 時刻 × 3 日):

  • Rally 08:00-18:00: sign = +1 consistent、22:00 にのみ -1 に flip
  • Down 08:00-22:00: 主に -1 か弱い oscillation、遅時間帯で -1 consolidate
  • Chop: flip-flop(early -1、late chop 定着で +1)

Phase 3b メタ戦略設計:

  1. vwap_dev_30m_bps を継続計算
  2. N 分チェックポイント(N ∈ 120)で sign(rolling mean over last 30 min) を評価(minute-level ノイズ平滑化)
  3. 決定木:
    • 直近 30 分 +1 安定: rally regimevwap_dev_1m_bps + cvd_accel を momentum として load、long bias
    • 直近 30 分 -1 安定: down regimecvd_accel のみ(両サイド long)、vwap_dev_1m_bps を極性反転
    • sign 不安定(30 分 >3 flip): chop regimemscale_consensus_3sig のみ(high-conviction gate)
  4. min_order_interval_sec = 30, max_abs_position_eth = 2

ランキング・サマリ(全 22 シグナル — viable 候補のみ)

Composite axis: sign 安定性 @ 30s (×10) + |ρ| @ 5s avg (×100) − turnover_q90_avg / 2000。

RankSignalClassStabilityρ 5s abs avgρ 30s abs avgTurnover q90 avgPick
1mscale_consensus_3sigmulti-scale gate+,+,+(全 3)0.0220.0130(sparse)YES #2
2cvd_30sCVD 30s−,−,−(全 3)0.0130.004367decline(signed_vol_1s と重複)
3vpin_5m_z_1hVPIN z-score+,+,+(全 3, 300s)0.0050.010135decline(5s/30s 弱)
4trade_rate_z_1stime rate+,−,+ at 5s0.0070.0051,355decline(rally-only)
5cvd_accelCVD accel+,+,+ at 5s; 2/3 at 30s0.0250.013785YES #1
6vwap_dev_1m_bpsVWAP dev+,−,+(regime-dep)0.0190.0292,194YES #3
7signed_vpin_5mflow toxicity+,+,− at 300s0.0070.011124YES #4
8ar1_fwdret_5s_5mregime detector+,−,− at 300s0.0060.013397classifier のみ
9signed_vpin_1mVPIN signed 1m+,+,+ at 5s0.0110.017386monitor(vpin_5m 類似 / ノイズ多)
10range_5s_bpsvol burst−,+,+ at 5s0.0220.0214,721decline(regime-dep, 高ターンオーバー)

Phase 3b 実装プライオリティ

Must-build(Phase 3b.1)

  1. cvd_accel(候補 #1) — clean regime-stable 5s alpha、低ターンオーバー、低実装コスト。
  2. mscale_consensus_3sig(候補 #2) — Phase 2 top-3 実装済なら新規 feature ゼロ。Gating 戦略として実装。

Should-build(Phase 3b.2)

  1. vwap_dev_1m_bps(候補 #3) — 古典指標、レジーム分類器の building block にもなる。候補 #4 と自然にペア。
  2. signed_vpin_5m(候補 #4) — 超低ターンオーバーの slow signal、#1/#2 の高速シグナルを補完。chop regime gate 要。

Supporting infrastructure(Phase 3b.3)

  • feature_engine.py _prune を 300s+ に拡張(VWAP / VPIN 用)
  • rolling VWAP state(price×sizesize の prefix-sum)追加 — 定数時間更新
  • vwap_dev_30m_bps をレジーム分類器として first-class feature 化
  • ar1_fwdret_5s_5m を連続 chop detector として公開(secondary regime input)

Nice-to-have(Phase 4)

  • Funding rate ingestion(新データソース、~1-2 エンジニア日)
  • Rust event-loop 拡張による高頻度 silence / inter-arrival detector(2Hz の Python では粒度不足)
  • Live signal への rolling HAC-corrected p-values(Rust preferred)

Caveats

  1. n=3 サンプル日 — Phase 2 と同一の注意。HAC t-stats は日内定常性を仮定、cross-day variance は未制御。
  2. Signal-theoretic P&L は実 P&L ではない。 Limit-only fill は tape 復帰時のみクロス。Phase 1.5-v2 の経験則で実現率 10-30%。
  3. vwap_dev_1m_bps regime dependence で atypical day の誤判定は符号反転。10 ETH 投入前に 10+ 日の walk-forward 必須。
  4. mscale_consensus_3sig は Phase 2 の spoofing 脆弱性を継承。 3 シグナル同時操作可能性 — Phase 2 §6.1 の depth_bid_30 / depth_bid_5 > 1.5 等 minimum-depth sanity 推奨。
  5. signed_vpin_5m 300s horizon で保有時間 5 分、逆選択リスクは 30s 級の 5-10 倍。≥10 日検証まで 0.5 ETH cap を推奨。
  6. Selection bias: 24 シグナル検証、Bonferroni α=0.05 で |t| > 3.3 要。survivors は mscale_consensus_3sig(t=9.48)と cvd_accel(t=5.47)のみ。他は marginal — 小サイズ検証(2 ETH cap)前提で directionally 情報価値あり。

アーティファクト

CSVs in /tmp/phase2b_analysis/out/:

  • alt_signal_rho.csv — 全 (signal × horizon × day × ρ × n × t) テーブル
  • alt_signal_hac.csv — HAC t-stat 付き
  • alt_signal_pivot.csv — wide (signal × regime × horizon) ρ pivot
  • alt_signal_turnover.csv / alt_signal_turnover_pivot.csv — q90/q80 turnover
  • top_candidates_deep_dive.csv — q75/q80/q85/q90/q95 スレッショルド sweep + hit rate + bps P&L
  • regime_classifier.csv — 日次 mean/end signal × daily return sign
  • regime_classifier_trace.csv — 6 JST 時刻 × 3 日 × 4 classifier signals
  • final_ranking.csv — composite ranking

Scripts in /tmp/phase2b_analysis/:

  • alt_signals.py — candidate battery + HAC t-stats
  • deep_dive_top.py — top 7 candidates deep-dive
  • regime_classifier_test.py — intraday classifier evaluation
  • final_ranking.py — composite ranking

関連ページ