Files
vibe-invest/.claude/agent-memory/quant-rust-strategist/MEMORY.md
2026-02-11 22:24:32 +00:00

1.9 KiB

Quant-Rust-Strategist Memory

Architecture Overview

  • 50-symbol universe across 9 sectors
  • Hybrid momentum + mean-reversion via composite signal scoring in generate_signal()
  • Backtester restricts buys to top 8 momentum stocks (TOP_MOMENTUM_COUNT=8)
  • Signal thresholds: StrongBuy>=6.0, Buy>=4.5, Sell<=-3.5, StrongSell<=-6.0

Key Finding: Daily vs Hourly Parameter Sensitivity (2026-02-11)

Daily Timeframe Optimization (Successful)

  • Reduced momentum_period 252->63, ema_trend 200->50 in IndicatorParams::daily()
  • Reduced warmup from 267 bars to ~70 bars
  • Result: Sharpe 0.53->0.86 (+62%), Win rate 40%->50%, PF 1.32->1.52

Hourly Timeframe: DO NOT CHANGE FROM BASELINE

  • Hourly IndicatorParams: momentum=63, ema_trend=200 (long lookbacks filter IEX noise)
  • Shorter periods (momentum=21, ema_trend=50): CATASTROPHIC -8% loss
  • ADX threshold lowered 25->20 (shared const, helps both timeframes)

Failed Experiments (avoid repeating)

  1. Tighter ATR stop (2.0x): too many stop-outs on hourly. Keep 2.5x
  2. Lower buy threshold (3.5): too many weak entries. Keep 4.5
  3. More positions (8): spreads capital too thin. Keep 5
  4. Higher risk per trade (1.0-1.2%): compounds losses. Keep 0.8%
  5. Wider trail (2.5x ATR): misses profit on hourly. Keep 1.5x
  6. Lower volume threshold (0.7): bad trades on IEX. Keep 0.8
  7. Lower cash reserve (3%): marginal, not worth risk. Keep 5%

Current Parameters (config.rs)

  • ATR Stop: 2.5x | Trail: 1.5x distance, 1.5x activation
  • Risk: 0.8%/trade, max 22% position, 5% cash reserve, 4% max loss
  • Max 5 positions, 2/sector | Drawdown halt: 10% (35 bars) | Time exit: 30
  • Cooldown: 7 bars | Ramp-up: 30 bars | Slippage: 10bps
  • Daily params: momentum=63, ema_trend=50
  • Hourly params: momentum=63, ema_trend=200
  • ADX: threshold=20, strong=35

Build Notes

  • cargo build --release compiles clean (only dead_code warnings)
  • No tests exist
  • Backtests have stochastic variation from IEX data timing