AGOS

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.