🗄️ 歴史的文書(アーカイブ) — この文書は過去の研究フェーズの記録であり、現在の結論・手法を反映していません。現在の研究状況は解説セクションを参照してください。
Phase 2 — ETH_JPY マイクロストラクチャ・アルファ候補シグナル
本ページは Phase 2 のアルファ候補シグナル・レポート research_reports/phase2_alpha_candidate_signals.md を整理したもの。
Phase 1.5 の 62 日リーダーボード で既存 12 戦略がすべて hold 10 ETH に負けたことを受け、既存ベースラインが触れていない微細構造シグナルを S3 の trade / ticker / orderbook Parquet から探索した。3 つのレジーム代表日(rally / down / chop)で ρ・t-stat・ターンオーバー・シグナル論理 P&L を算定し、top-3 候補を選定している。
ラン条件
- Symbol: ETH_JPY(GMO 信用、手数料ゼロ、0.04%/日 保有コスト)
- サンプル日(3): 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 スナップショット(172k-176k rows/日)、trades は merge_asof-backward で grid にマージ
- Forward return:
r_H(t) = log(mid(t+H) / mid(t))、mid は top-of-book;horizon H ∈{1s, 5s, 30s, 300s} - すべての統計は causal(signal @ t, return @ t → t+H)
レジーム分類は Phase 1.5 の レジーム分解 に準拠。
ランキング・サマリ(top-3)
|ρ|安定性 × (horizon ≥ 5s) × (既存ベースラインとの差別化) でランク付け。
| # | Candidate | Key correlation | Regime stability | Turnover | Differentiator |
|---|---|---|---|---|---|
| 1 | top1_vs_deep | rally 5s ρ = +0.089, 30s ρ = +0.036;down 5s ρ = +0.012;chop 5s ρ = +0.014;|t| 6-26 | rally で強く down/chop は控えめ、全レジーム同符号 | 12-16k flips/日 @ q90 | 既存ベースラインが触れない depth 6-30 層を top-1 との差分として活用 |
| 2 | ob_imb_deep_5to30(反転) | rally 5s ρ = -0.051, 30s ρ = -0.038;down 5s ρ = -0.040;chop 5s ρ = -0.046;|t| 4-15 | |ρ| > 0.04 が 30s で全 3 レジームを通過する唯一の候補 | 9-12k flips/日 @ q90 | 純粋な deep-book シグナル。top-5 imbalance と逆方向を取るため baseline_queue_imbalance_breakout と直交 |
| 3 | big_trade_fresh_sign | rally 1s ρ = +0.052, 5s ρ = +0.029;down 1s ρ = +0.034;chop 1s ρ = +0.016;|t| 5-15 | 全レジーム同符号、chop 300s で反転 | 1-3k flips/日 @ q90(300s min-order-interval に適合) | p95 単発トレードでトリガ。baseline_sweep_follow は 3+ trades + vol + imb + logret の三重条件を要求するため、単独 whale イベントを取り逃がしている |
3 候補すべてが horizon ≤ 30s で |ρ| > 0.02 の最低ラインを超え、全レジームで t-stat > 3。候補 #1 は rally 30s で |ρ| > 0.05 ターゲットに最も近い(rally 30s ρ = 0.036, rally 5s ρ = 0.089)。候補 #2 は 30s で全レジーム |ρ| > 0.04 という稀な安定性を持つ。
なぜこの 3 候補か — 差別化ロジック
候補 #1: top1_vs_deep(primary)
定義:
signal = ob_imb_top1 − ob_imb_deep_5to30 ∈ [−2, +2]
- rally で 5s ρ = +0.089、30s ρ = +0.036、|t| 6-26。
- Signal-theoretic P&L(5 ETH × 350k mid, 30s horizon, q90 threshold): rally +¥2.24M/日、down +¥1.26M/日、chop +¥1.30M/日。
- 差別化: どのベースラインも深度 6-30 層を使っていない。最も近い
baseline_queue_imbalance_breakoutは top-5 を使うが、momentum confirmation と AND しており約定率を殺している。本候補は retail (top-1) と institutional queue (6-30) の乖離を抽出。 - 要件:
--min-order-interval-sec 5以下。300s default では発火頻度が過剰(12-16k flips/日)。
候補 #2: ob_imb_deep_5to30(反転)
定義:
signal = −(Σ_{k=5..29} bid_size[k] − Σ_{k=5..29} ask_size[k])
/ (Σ_{k=5..29} (bid_size[k] + ask_size[k]))
- 反転後、全レジーム・全 horizon で ρ が正。唯一 30s で全 3 レジーム |ρ| > 0.04 をクリア。
- Signal-theoretic P&L(30s horizon, q90): rally +¥1.99M/日、down +¥0.75M/日、chop +¥1.76M/日。
- 差別化: 純 deep-book シグナル。候補 #1 と並行運用可能(直交)。
- 解釈の面白さ: 深層 (6-30) が bid 優勢だと 5-30s で価格が下がる — 古典的 imbalance 理論と逆方向なのでベースラインが捕捉していない。
候補 #3: big_trade_fresh_sign
定義:
signal(t) = sign(last_big_trade.signed_size) if age ≤ 5s else 0
(big = size ≥ p95_day)
- rally 1s ρ = +0.052、|t| 5-15。
- 条件付きフォワード・リターン: rally 日の p99 BUY big trade → +9.67 bps forward 1s mid return(|t| = 16.2, n = 262)。SELL 側は -3.51 bps(|t| = 9.6)。
- Signal-theoretic 5s P&L: rally +¥1.65M/日、down +¥0.85M/日、chop +¥0.42M/日。
- ターンオーバーが低い(1-3k flips/日) — 300s min-order-interval でも運用可能なのは 3 候補中これのみ。
- 差別化:
baseline_sweep_followは三重ゲート(count ≥ 3, vol ≥ 0.6 ETH, logret ≥ 1.2 bps)。単発 p99 トレードは発火条件を満たさないが、big_trade_fresh_signは lone whale イベント を拾う(ベースラインが取り逃がす 15-25%)。
方法論メモ(抜粋)
- ρ は Pearson(signal vs log-forward-return)、n ≈ 170k/日 → |t| > 3 は p < 0.003(サンプル数で trivially significant)。
- 経済的有意性は手数料ゼロ・limit-only で |ρ| ≈ 0.02+ を閾値とする。
- Turnover は
sign(signal) × 1[|signal|>q90]の符号反転カウント。 - 5s スケールの forward-return autocorrelation は全レジームで +0.09 〜 +0.10。候補 #1 の 5s ρ = 0.089 はちょうどこの native momentum persistence と同オーダー。
- 大口トレード(p99 tail)の one-sample t-stat は rally BUY 側 +16.2(+9.67 bps / 1s, n=262)で、単一イベント系シグナルとして最強クラス。これが候補 #3 の基礎。
詳細ρテーブル(26 シグナル × 12 horizon × regime セル)と条件付きフォワード・リターンの全量は ソースレポート §2, §4 を参照。
Phase 3 実装ノート
- Feature engine 拡張(小):
ob_imb_deep_5to30とtop1_vs_deepをsrc/atc/features/feature_engine.pyに追加(Rust 版もrust/atc-featuregen/src/に)。L30 スナップショットは既に取得済み。 - Big-trade tracking state: feature engine 側に rolling 24h trade-size p95 +
last_big_trade_ts+last_big_trade_sideを保持。 - Min-order-interval override:
top1_vs_deep/ob_imb_deep_5to30は--min-order-interval-sec 5以下が必須。戦略側でタグ付けし CLI default を上書き。 - Execution: predicted horizon が 5-30s のため、
mid + 0.5 × spread × sign(signal)の fast-limit(aggressive maker)で窓内に tape がクロスすれば約定。30s を超えて保持するとエッジが溶解(300s ρ は候補 3 中 2 つで ~0)。 - No latency edge: 分析は exchange_ts_utc のみ使用。
recv_tsからの裁定不可は Phase 4c (recv_ts 精度) の結論どおり。 - Regime-neutral test: Phase 3 walk-forward はレジーム層別に train/valid 分割せよ。候補 #2 は非層別バックテストで優勝するはず;候補 #1 は rally バイアスを持つが chop ρ = +0.014 at 1s (|t| = 9.3) は実在する。
Caveats
(ソースレポート §11 から)
- n = 3 サンプル日 — 1 回の極端ラリー、1 回の極端ダウン、1 回のマイルド chop。各レジーム 10 日規模の cross-day 検証(ρ の日次ばらつき)はエンジニアリング投資前に必須。
- Signal-theoretic P&L は実 P&L を過大評価する。 Limit-only fill は tape が戻ってきたときだけクロスする。
baseline_sweep_follow観察ベースの実現率 10-30%。Real P&L ≈ §6 の数字の 20-30%。 - Turnover sketch は partial fill / cancel を考慮していない。 実行層(
_build_limit_price→ passive quote)で effective trading rate は 50-70% 削減される。 - Signal 自体の自己相関を制御していない。
top1_vs_deepが 30 秒間 +0.5 で持続すると、5s forward-return correlation の一部は one-event 効果。HAC (Newey-West) SE で reported t-stat は約半減。ただし候補ランキングは定性的に変わらない。 - Selection bias: ~25 シグナルを試験。Bonferroni 補正では α = 0.05 で |t| > 3.3 が必要。top-3 候補はすべて少なくとも 2 レジームでこれをクリア。
アーティファクト
すべて /tmp/phase2_analysis/out/ 配下(ソースレポート §10):
signal_correlations.csv— base (ρ, n, t) テーブルpivot_rho_all.csv— wide format (regime × horizon)differentiator_signals.csv/differentiator_pivot.csvcombo_signals.csv/combo_signal_pivot.csvtrading_rule_sketches.csv— threshold-rule シグナル論理 P&Llarge_trade_cond_fwdret.csv— p95/p99 条件付き forward returnspread_distribution.csv/autocorr_forward_returns.csv/pivot_turnover.csv
解析スクリプト: /tmp/phase2_analysis/{load_day.py, analyze_signals.py, differentiators.py, combo_signal.py, trading_rule_sketch.py}。
関連ページ
- Phase 1.5 — Leaderboard — Phase 2 が動機づけられた 62 日 α 全滅の結果
- Phase 1.5 — Regime Decomposition — 本分析の rally / down / chop サンプル日選定ロジック
- Source report — 全量ρテーブル、条件付き forward return、シグナル論理 P&L の詳細