Multi-Strategy Channel Architecture¶
Date: 2025-10-31 Status: Specification Author: Bert Frichot (with Claude Code) Context: Phase 3 of Agentic Trading Roadmap - Multi-Strategy Portfolio Optimization
1. Overview¶
Build a multi-strategy portfolio manager with independent strategy channels - each asset class (large-caps, micro-caps, options, crypto) runs its own optimized strategy simultaneously without interference.
1.1 Core Principle¶
"Each asset class has different behavior → Each needs different strategy"
- Large-caps (TSLA, NVDA): Mean reversion during volatility
- Micro-caps (<$300M): Momentum on low-float breakouts
- Options: Theta decay strategies (spreads, condors)
- Crypto: Trend-following with high volatility tolerance
1.2 Architecture Philosophy¶
Independent Channels (not switching strategies): - Each channel runs 24/7 with its own rules - Capital allocated per channel (not reallocated dynamically) - Strategies don't interfere with each other - Risk managed at portfolio level (aggregate exposure)
2. Strategy Channels¶
Channel 1: Large-Cap Volatility (Mean Reversion)¶
Asset Universe: - TSLA, GME, PLTR, RIOT, AMC, NIO, SOFI, COIN, MARA, NVDA (10 symbols) - Market cap: >$1B - Volatility: >30% annualized
Strategy: Mean Reversion (already optimized) - Entry: Price < BB lower AND RSI < 27 - Exit: Price > SMA OR RSI > 63 OR 5-day profit target - Stop Loss: 12% - Position Size: $673 per trade - Max Positions: 3
Capital Allocation: 25% of portfolio ($24,750 if $99k total)
Expected Performance (from genetic optimization): - Sharpe: 0.09-0.16 - Win Rate: 60-75% - Trades/month: 2-3 (with 10 symbols)
Channel 2: Micro-Cap Momentum¶
Asset Universe: - Market cap: $50M - $300M - Float: <20M shares (low float = high volatility) - Volume: >500k shares/day (tradeable liquidity) - Sector: Healthcare (biotech catalysts), Tech (AI hype), EV (infrastructure plays)
Strategy: Momentum Breakout (to be optimized) - Entry: - Price breaks above 20-day high - Volume > 2x average (confirmation) - RSI > 50 (strength, not oversold) - Exit: - Trailing stop: 15% from highest price - Time stop: 10 days (ride the momentum, then exit) - Position Size: $500 per trade (smaller due to illiquidity) - Max Positions: 5
Capital Allocation: 20% of portfolio ($19,800)
Expected Performance (to be validated): - Sharpe: 0.3-0.5 (higher risk/reward) - Win Rate: 40-50% (fewer wins, bigger wins) - Trades/month: 5-8 (more opportunities in micro-caps)
Data Source: - Alpaca supports down to ~$100M market cap - Screen for micro-caps daily via Alpaca screener API
Channel 3: Options Strategies¶
Asset Universe: - SPY, QQQ (high liquidity, tight spreads) - Individual stocks: AAPL, TSLA, NVDA (30+ DTE options)
Strategy: Theta Decay (Credit Spreads) - Type: Bull Put Spreads (neutral to bullish bias) - Entry: - Sell put at 0.30 delta (~30% OTM) - Buy put at 0.15 delta (~15% further OTM) - Credit: $0.50-$1.00 per spread - DTE: 30-45 days - Exit: - Close at 50% profit (take profits early) - Stop loss: 200% of credit received (e.g., $1.00 credit → close at $2.00 loss) - Time stop: 21 DTE (don't hold to expiration) - Position Size: 1-2 contracts per trade - Max Positions: 3 spreads
Capital Allocation: 25% of portfolio ($24,750)
Expected Performance (typical for credit spreads): - Sharpe: 0.8-1.2 (theta decay is consistent) - Win Rate: 70-80% (most expire worthless) - Trades/month: 4-6 (monthly cycle)
Broker:
- Alpaca supports options (paper + live)
- Use alpaca.trading.OptionsOrderRequest
Channel 4: Crypto (Trend-Following)¶
Asset Universe: - BTC, ETH (via Alpaca crypto or Coinbase) - High liquidity, 24/7 trading
Strategy: Trend-Following (to be optimized) - Entry: - Price > 50-day SMA (uptrend) - MACD crossover (12/26/9) - Volume > average (confirmation) - Exit: - Price < 20-day SMA (trend reversal) - Trailing stop: 20% (crypto is volatile) - Position Size: $1,000 per trade - Max Positions: 2 (BTC + ETH)
Capital Allocation: 15% of portfolio ($14,850)
Expected Performance (to be validated): - Sharpe: 0.2-0.4 (high volatility) - Win Rate: 40-50% (trend-following = fewer wins, big wins) - Trades/month: 2-4 (crypto trends last weeks)
Broker: - Alpaca supports crypto (BTC, ETH, etc.) - 24/7 trading (weekend opportunities)
Channel 5: Cash Reserve (Safety Buffer)¶
Allocation: 15% of portfolio ($14,850)
Purpose: - Handle margin calls - Opportunistic deployment during market crashes - Cushion for drawdowns
3. Portfolio-Level Management¶
3.1 Capital Allocation (Fixed)¶
| Channel | Allocation | Capital (on $99k) | Max Positions | Position Size |
|---|---|---|---|---|
| Large-Cap Mean Reversion | 25% | $24,750 | 3 | $673 |
| Micro-Cap Momentum | 20% | $19,800 | 5 | $500 |
| Options Theta Decay | 25% | $24,750 | 3 | ~$2,500/spread |
| Crypto Trend-Following | 15% | $14,850 | 2 | $1,000 |
| Cash Reserve | 15% | $14,850 | - | - |
| Total | 100% | $99,000 | - | - |
Note: Allocations are fixed at start, not dynamically rebalanced (simplicity).
3.2 Risk Management (Portfolio-Level)¶
Aggregate Exposure Limits: - Max 13 total positions across all channels (3+5+3+2) - Max 50% of portfolio in any single asset class - Max 10% of portfolio in any single position
Correlation Monitoring: - Track correlation between channels - If correlation > 0.7 (too similar), reduce allocations - Goal: Negative or low correlation (<0.3) for diversification
Drawdown Circuit Breaker: - If portfolio drawdown > 15%, halt all new positions - Review strategy performance by channel - Resume when drawdown < 10%
3.3 Performance Tracking¶
Per-Channel Metrics (independent): - Sharpe ratio - Total return - Max drawdown - Win rate - Profit factor (gross profit / gross loss)
Portfolio-Level Metrics (aggregate): - Portfolio Sharpe (risk-adjusted return) - Diversification ratio (portfolio volatility / sum of channel volatilities) - Correlation matrix (channel-to-channel)
4. Implementation Architecture¶
4.1 Code Structure¶
trading_agents/
├── strategies/
│ ├── base_strategy.py # Abstract base class
│ ├── large_cap_mean_reversion.py # Channel 1 (already exists)
│ ├── micro_cap_momentum.py # Channel 2 (new)
│ ├── options_theta_decay.py # Channel 3 (new)
│ └── crypto_trend_following.py # Channel 4 (new)
├── orchestrator/
│ ├── portfolio_manager.py # Runs all channels simultaneously
│ ├── capital_allocator.py # Fixed allocation per channel
│ └── risk_monitor.py # Portfolio-level risk checks
├── agents/
│ ├── market_data.py # Existing (fetch data for all symbols)
│ ├── strategy.py # Existing (route to correct channel)
│ ├── order_execution.py # Existing (submit orders)
│ ├── risk_management.py # Existing (check limits)
│ └── position_management.py # Existing (track positions)
└── config/
├── portfolio_config.yaml # Capital allocations, limits
└── channel_configs/
├── large_cap.yaml
├── micro_cap.yaml
├── options.yaml
└── crypto.yaml
4.2 Execution Flow¶
1. Portfolio Manager starts all channels (parallel threads)
2. Each channel:
a. Market Data Agent fetches symbol data
b. Strategy Agent evaluates entry/exit signals
c. Risk Management Agent checks limits (channel + portfolio)
d. Order Execution Agent submits orders (if approved)
e. Position Management Agent tracks open positions
3. Risk Monitor aggregates exposure across channels
4. Repeat every 1 minute (during market hours)
4.3 Message Bus (Redis)¶
Channels (Redis Pub/Sub):
- market_data - Price updates for all symbols
- signals.large_cap - Entry/exit signals for Channel 1
- signals.micro_cap - Signals for Channel 2
- signals.options - Signals for Channel 3
- signals.crypto - Signals for Channel 4
- orders - Order execution requests
- positions - Position updates
- risk_alerts - Portfolio-level risk warnings
Key-Value Store (Redis):
- portfolio:capital - Available capital per channel
- portfolio:positions - Open positions across all channels
- portfolio:metrics - Real-time performance metrics
5. Optimization Strategy¶
5.1 Per-Channel Optimization¶
Each channel runs genetic optimization independently:
- Large-Cap (already optimized):
- Parameters: RSI thresholds, BB std, stop loss, position size
-
Objective: Balanced (Sharpe, Return, Drawdown)
-
Micro-Cap (next to optimize):
- Parameters: Breakout period, volume filter, trailing stop, holding period
-
Objective: Return-focused (accept higher volatility)
-
Options (manual strategy):
- Parameters: Delta selection, DTE, spread width, profit target
- No genetic optimization (too complex for backtesting)
-
Use historical IV data for validation
-
Crypto (to optimize):
- Parameters: SMA periods, MACD settings, trailing stop
- Objective: Calmar ratio (return/max drawdown)
5.2 Portfolio-Level Optimization¶
After individual channels are optimized, run portfolio optimization:
- Input: Channel performance distributions (from backtests)
- Optimize: Capital allocation percentages (15-30% per channel)
- Objective: Maximize portfolio Sharpe ratio
- Constraint: Maintain diversification (correlation < 0.5)
6. Timeline & Milestones¶
Week 1: Foundation (This Week)¶
- [x] Optimize large-cap mean reversion (DONE)
- [ ] Design multi-channel architecture (THIS SPEC)
- [ ] Implement portfolio manager skeleton
- [ ] Create channel-specific config files
Week 2: Micro-Cap Channel¶
- [ ] Build micro-cap screener (Alpaca API)
- [ ] Implement momentum strategy
- [ ] Genetic optimization (2020-2024)
- [ ] Backtest validation
Week 3: Options Channel¶
- [ ] Build options spread builder
- [ ] Historical IV data integration
- [ ] Paper trading validation (2 weeks required)
Week 4: Crypto Channel¶
- [ ] Implement trend-following strategy
- [ ] Genetic optimization (crypto data)
- [ ] Backtest on 2020-2024 (includes 2022 bear market)
Week 5: Integration & Testing¶
- [ ] Portfolio-level optimization
- [ ] Multi-channel orchestrator testing
- [ ] Paper trading (all channels simultaneously)
Week 6: Deployment Decision¶
- [ ] Review 2-week paper trading results
- [ ] User approval for live deployment
- [ ] Go live with small capital allocation
7. Success Criteria¶
Per-Channel Success (Validation Period)¶
- Large-Cap: Win rate >60%, Sharpe >0.08, <5% drawdown
- Micro-Cap: Win rate >40%, Return >10%, <20% drawdown
- Options: Win rate >70%, Sharpe >0.8, <10% drawdown
- Crypto: Sharpe >0.2, Return >5%, <25% drawdown
Portfolio-Level Success¶
- Portfolio Sharpe: >0.5 (better than any individual channel)
- Diversification: Correlation between channels <0.5
- Drawdown: Portfolio max drawdown <15% (better than worst channel)
- Consistency: Positive returns in 4+ months out of 6
8. Open Questions (To Decide)¶
- Micro-Cap Data:
- Q: Can Alpaca screen for market cap <$300M reliably?
-
A: Test screener API, fallback to manual universe if needed
-
Options Backtesting:
- Q: How to backtest options strategies without historical IV data?
-
A: Use paper trading only (2-week validation), skip genetic optimization
-
Crypto 24/7 Trading:
- Q: Should crypto channel trade weekends (when stocks are closed)?
-
A: Yes, but with tighter risk limits (no support team on weekends)
-
Capital Rebalancing:
- Q: Should we rebalance allocations monthly based on performance?
-
A: No (complexity), only rebalance if channel fails validation (manual decision)
-
Correlation Hedging:
- Q: If all channels are correlated during market crash, should we hedge?
- A: Out of scope for MVP, revisit after 3 months of live data
9. Next Steps¶
Immediate (today):
1. Review this spec (user approval)
2. Create portfolio_config.yaml with allocations
3. Build portfolio_manager.py skeleton
This Week: 1. Implement micro-cap screener 2. Build momentum strategy 3. Run genetic optimization
Approval Required: - [ ] User approves overall architecture - [ ] User approves capital allocations (25/20/25/15/15%) - [ ] User approves micro-cap universe criteria - [ ] User approves options strategy (credit spreads vs iron condors) - [ ] User approves crypto exchanges (Alpaca vs Coinbase)
10. References¶
- Agentic Trading Roadmap:
docs/trading/AGENTIC_TRADING_ROADMAP_2025-10-30.md - Phase 1 Complete:
docs/status/TRADING_MULTI_AGENT_PROGRESS_2025-10-28.md - Genetic Optimizer:
tools/genetic_optimizer.py - Trading Agents:
trading_agents/agents/ - Large-Cap Optimization Results:
reports/mean_reversion_5yr_robust.json
Status: Awaiting user approval to proceed with implementation.