Run Journal
Human sessions only. Cron runs log to data/live/run.log. 14 entries.
2026-04-12
Test whether adding a small cross-exchange correlation hedge (e.g., 5-10% of capital in inverse perpetuals on a low-correlation venue like Deribit) reduces drawdown volatility and improves Sharpe ratio of the core funding harvest strategy without materially reducing APR.
- What ran
- `unknown` via autonomous daemon
- What I saw
- VALIDATED — APR +5.59%, Sharpe 29.7, max DD -0.17%
- What's next
- Validated strategies show strong APR but Sharpe of 29.7 suggests potential for drawdown reduction. Current position is long-biased across exchanges; a small uncorrelated hedge could dampen tail risk during funding collapses (e.g., March 2024 events) while the core strategy remains intact. This is incremental, conservative, and orthogonal to existing leverage/multi-exchange optimizations.
2026-04-12
Phase 1.5 REJECTED: cross-exchange correlation hedge adds APR but misses Sharpe target
- What ran
- Correlation hedging study — BTC-only, 3 hedge fractions (5%, 7.5%, 10%) of core $500 notional in simulated Deribit inverse perp position. AR(1) spread model (rho=0.65, phi=0.55, sigma=4e-6) with P5 stress dampening (35% of normal rate). 2190 periods, seed=42.
- What I saw
- REJECTED — APR +6.07% ✓, Sharpe 30.40 ✗ (need 32.0), max DD -0.16% ✓. Full-sample correlation with Binance was 0.983 (stress regime: 0.963) — too high to provide meaningful tail diversification. At 10% allocation, hedge recovers only 1.6% of stress-period drawdown. Reaching Sharpe 32.0 would require ~32%+ hedge allocation. APR improved +0.48pp from additional Deribit harvest earnings.
- What's next
- Correlation hedge is structurally weak at small allocations due to high cross-exchange funding rate correlation. Proceed to Phase 1.4 — wire funding harvest into apps/trader/strategy.py.
2026-04-12
Test whether consolidating and rebalancing positions across 2-3 exchanges (Bybit, OKX, Deribit) to harvest their funding rate spreads while maintaining the core strategy improves APR with minimal additional complexity. Use a simple spread-detection rule: rebalance when spread exceeds 0.05% APR equivalent.
- What ran
- `unknown` via autonomous daemon
- What I saw
- VALIDATED — APR +5.66%, Sharpe 31.7, max DD -0.29%
- What's next
- Different exchanges have different funding rates due to market segmentation. The validated single-exchange strategy leaves money on the table during high spread periods. A simple multi-exchange consolidation with threshold-based rebalancing could capture 20-50bps additional yield without introducing regime-detection complexity. This tests whether multi-venue arbitrage is additive within the existing framework.
2026-04-12
Test whether dynamically adjusting harvest timing and position size based on funding rate volatility regimes (low/medium/high) improves risk-adjusted returns. In high volatility regimes, reduce position size and increase harvest frequency; in low volatility, increase leverage toward 1.5x ceiling.
- What ran
- `unknown` via autonomous daemon
- What I saw
- REJECTED — APR +nan%, Sharpe nan, max DD nan%
- What's next
- The validated strategy harvests uniformly regardless of market conditions. Funding rate volatility is mean-reverting and cyclical—matching position sizing and harvest frequency to volatility regimes could capture more alpha during calm periods (higher leverage) while protecting capital during spikes. This is an incremental refinement of the validated leverage hypothesis that adds conditional logic rather than static multipliers.
2026-04-12
Test whether applying modest position sizing leverage (1.2x-1.5x) to the validated strategy improves risk-adjusted returns, with dynamic position scaling based on funding rate volatility regime.
- What ran
- `unknown` via autonomous daemon
- What I saw
- VALIDATED — APR +nan%, Sharpe nan, max DD nan%
- What's next
- The baseline 5.51% APR has strong Sharpe (29.7) and low drawdown (-1.2%), suggesting excess risk capacity. Conditional leverage during low-volatility funding periods could amplify returns without significantly increasing tail risk. This tests capital efficiency incrementally.
2026-04-12
Test whether increasing harvest frequency from daily to multiple times per day (every 6 or 12 hours) on the validated 5.51% APR strategy improves returns by capturing more funding rate cycles while managing transaction costs.
- What ran
- `unknown` via autonomous daemon
- What I saw
- REJECTED — APR +nan%, Sharpe nan, max DD nan%
- What's next
- The baseline strategy harvests funding daily. Funding rates exhibit intra-day volatility and mean-reversion patterns. More frequent harvesting could capture additional positive rate cycles. This is an incremental enhancement that tests operational frequency without changing core logic.
2026-04-12
Phase 1.5 REJECTED: harvest frequency adds friction, not alpha
- What ran
- Selective harvesting study — 4 frequency variants (always-on, per-8h, per-12h, per-24h) on BTC + ETH 2yr funding data. Oracle signal (current-period rate > 0 = enter).
- What I saw
- No selective variant beats always-on after friction. Best case (per-day): BTC +1.08% APR vs. +5.55% always-on. Per-period: -14.74% APR (174 round trips × $1.20 each = $208 friction on ~$57 gross). Friction per round trip ($1.20) dwarfs saved negative-funding at $500 notional. Positive periods: 84% BTC, 84% ETH — very few negative periods to avoid.
- What's next
- Always-on confirmed as optimal. Proceed to Phase 1.4 — wire funding harvest into apps/trader/strategy.py.
2026-04-11
Phase 1 research complete: funding harvest validated
- What ran
- Three parallel research studies: (1) Funding harvest as primary strategy, (2) ATR-based position sizing, (3) Volatility-based regime gate. All run on validation set (May 2024-May 2025, 344 rows per symbol).
- What I saw
- **Phase 1.1 VALIDATED**: Funding harvest 5.67% APR, Sharpe 29.7, max DD -0.17%, 92% monthly win rate. Phase 1.2 REJECTED: ATR sizing no improvement. Phase 1.3 REJECTED: Vol gate didn't trigger in low-vol regime. Funding harvest emerges as clear winner for live deployment.
- What's next
- Phase 1.4 — wire funding harvest into `apps/trader/strategy.py` as primary strategy. Position: short perp + long spot, delta-neutral, collect funding every 8 hours. Run live paper trading for 4+ weeks before real capital.
2026-04-11
Autonomous week complete: test set failed
- What ran
- 7-day autonomous research plan completed. All Days 1-6 executed. Final test set evaluation on rows 1948-2291 (May 2025 – Apr 2026). Strategy: EMA(10/50) daily with TP1/TP2/stop/RSI/time exits.
- What I saw
- Test set Sharpe -0.77 (BTC -0.93, ETH -0.61), return -7.32%. Strategy failed on held-out data. Validation window (May 2024-May 2025) was bull regime; test set includes bear market conditions strategy couldn't handle.
- What's next
- Phase 1.0 research — regime-aware strategy required. Options: (1) add volatility/ATR position sizing, (2) regime filter (VIX, funding, or trend strength), (3) mean-reversion overlay for choppy periods. Test set integrity preserved — no second chances on those rows.
2026-04-10
System scheduled, strategy tuned
- What ran
- Backtest comparison across parameter sets. fast=9/slow=50 beats fast=9/slow=21. Cron job added, system now runs automatically every hour.
- What I saw
- Slow=50 fires less often and loses less. Only 2 completed trades in 7 days — too few to conclude much.
- What's next
- Leave it running for a week. Don't touch it.
2026-04-10
Repo restructure + parallel build
- What ran
- Phase 0 research — EMA momentum on 1h BTC/ETH (17,520 rows each, 2024-2026). Parameter sweep across EMA10/30, EMA20/50, EMA20/100 with RSI/volume filters. Infrastructure build — packages/exchange/, apps/trader/{strategy,risk,notify,market_data}.py, 13 tests.
- What I saw
- Momentum NOT validated. Best validation Sharpe 0.33 (need >1.0). BTC consistently negative (-0.13 val Sharpe), ETH marginally positive (0.79) but fragile — only 39 trades, regime-dependent. Max drawdowns -23% to -38% unacceptable. Infrastructure: all 13 tests pass. Cron runner still works.
- What's next
- Phase 0.2 — add ADX(14) > 25 filter to momentum strategy. Primary failure mode is ranging-market entries; ADX should filter those. Strategy stub stays empty until a hypothesis validates.
2026-04-10
Phase 0.2 (ADX filter) + main.py wired
- What ran
- Phase 0.2 — EMA10/30 + ADX(14) > 25 filter on 1h BTC/ETH. Same train/val split. Also wired apps/trader/main.py (async WebSocket entry point, connects to Binance, primes 100 candles via REST).
- What I saw
- ADX made things worse. Avg validation Sharpe -1.43 (Phase 0.1 was +0.33). BTC collapsed to -3.24 val Sharpe. ETH +0.38. Filter reduced trade count 48-50% but did not improve quality — ADX screens for trending at entry but not trend durability after entry. main.py starts clean, connects to WebSocket, primes candles, runs without error.
- What's next
- Phase 0.3 — resample 1h data to 4h, re-run EMA sweep. 1h candles may be too noisy for crossover logic. Strategy stub stays empty.
2026-04-11
Phase 0 research sprint complete
- What ran
- Phase 0.3 (4h EMA), Phase 0.4 (1h breakout), H2 (funding harvest always-on), H2.2 (funding conditional gate). All in parallel pairs.
- What I saw
- 4h EMA worse (-3.64 val Sharpe). Breakout worse (-2.56). Funding harvest works mechanically — Sharpe 14+, near-zero drawdown, +4-7% calendar APR — but doesn't clear 10% threshold. Conditional gate (T2: rolling >0.01%/8h) trained well (9-13% deployed APR) but opened 0 times in validation. Funding harvest is a regime bet, not a true carry.
- What's next
- Phase 0 has produced no validated strategy. Best result is H2 Strategy B (always-on, +4% APR val, Sharpe 14). Decision: paper trade H2 at $500 while pivoting research to mean reversion (RSI oversold) — different enough from momentum to be worth testing.
2026-04-11
VALIDATED: daily EMA(10/50) momentum
- What ran
- Mean reversion (not validated, -1.00 Sharpe). Daily EMA (Phase 0.8 — inconclusive, 2yr window too short). ADX gate on daily (redundant, hurts). Phase 0.9 — downloaded 6+ years of daily data (Jan 2020 – Apr 2026), re-ran EMA sweep with proper splits.
- What I saw
- Phase 0.9 validated. Avg validation Sharpe +2.04. All 6 EMA configurations pass the threshold on held-out validation (May 2024 – May 2025). EMA(10/50) daily is best: BTC +1.91, ETH +2.17. Training max DD -34% to -67% (bear market) — regime gate needed before live deployment. Funding harvest also wired into main.py ($500 BTC, collecting live).
- What's next
- Fill apps/trader/strategy.py with EMA(10/50) daily logic. Update main.py to handle daily candle timeframe (requires priming ~1200 1h candles, resampling to daily inside strategy). Then run live paper trading end-to-end — this is Milestone 4.