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

Research Log

2026-02-12: Trade-Only Baseline Exploration

Objective

  • Improve event-driven strategy quality under:
  • limit-only execution
  • order latency = 0.3s
  • historical trade-only backtest (no full L2/orderbook stream)

Added strategies

  • baseline_regime_switch_micro
  • baseline_flow_imbalance_pulse

Experiment A: 1-day slice

Command:

uv run atc report leaderboard \
--symbol ETH_JPY \
--start 2026-01-01 \
--end 2026-01-01 \
--strategy baseline_momentum_micro \
--strategy baseline_mean_reversion_micro \
--strategy baseline_regime_switch_micro \
--strategy baseline_flow_imbalance_pulse

Result summary (sorted by alpha_sharpe):

  • baseline_regime_switch_micro: sharpe -488.49, equity -171.97, turnover 2.02
  • baseline_momentum_micro: sharpe -642.49, equity -263.33, turnover 3.42
  • baseline_mean_reversion_micro: sharpe -645.02, equity -177.95, turnover 2.90
  • baseline_flow_imbalance_pulse: sharpe -652.92, equity -242.67, turnover 3.18

Observation:

  • baseline_regime_switch_micro reduced turnover and improved alpha sharpe versus existing momentum/reversion baselines on this day.

Experiment B: 7-day slice

Command:

uv run atc report leaderboard \
--symbol ETH_JPY \
--start 2026-01-01 \
--end 2026-01-07 \
--strategy baseline_momentum_micro \
--strategy baseline_mean_reversion_micro \
--strategy baseline_regime_switch_micro \
--strategy baseline_flow_imbalance_pulse

Result summary (sorted by alpha_sharpe):

  • baseline_regime_switch_micro: sharpe -646.75, equity -10130.27, turnover 105.08
  • baseline_mean_reversion_micro: sharpe -707.21, equity -9459.71, turnover 117.24
  • baseline_flow_imbalance_pulse: sharpe -708.73, equity -10801.95, turnover 120.87
  • baseline_momentum_micro: sharpe -768.32, equity -15107.35, turnover 157.42

Observation:

  • All tested trade-only baselines remain negative after latency-aware limit execution.
  • baseline_regime_switch_micro is currently best by alpha sharpe and shows lower turnover.

Bottlenecks identified

  • Trade-only historical data lacks orderbook microstructure needed by MM/queue imbalance class strategies.
  • Order replacement is still frequent under high event rates.
  • Signal-to-noise ratio is weak without stronger regime/time filters.

Next research steps

  1. Add strategy-level holding/cooldown policies that target lower turnover under event bursts.
  2. Introduce time-of-day gating (session-specific thresholds).
  3. Build walk-forward splits and optimize only on train windows.
  4. Start collecting forward WebSocket orderbook logs to unlock L2-aware models.

2026-02-12: Order Cadence Control (5-minute default)

Motivation

  • Event-driven loop was submitting too frequently for practical operation.
  • Desired operating style: continuous monitoring, but orders only every ~5 minutes to several hours.

Implementation

  • Added --min-order-interval-sec to backtest and leaderboard commands.
  • Default set to 300 seconds (5 minutes).
  • Strategy evaluation still runs for every event; only new submissions are throttled.

Results (same windows as above, 4-strategy subset)

1-day (2026-01-01):

  • orders dropped from 200-300 range to ~60-130
  • best alpha sharpe improved from about -488 to -299
  • best final equity improved from about -172 to -16

7-day (2026-01-01 to 2026-01-07):

  • orders dropped from ~11k-17k to ~1.3k-1.6k
  • alpha sharpe improved from about -647 to around -239
  • final equity improved materially (still negative)

Interpretation:

  • Main issue was not only signal quality; execution cadence was too aggressive.
  • Throttling makes behavior closer to intended short-term style and reduces over-trading loss.