Strategies
Every strategy outputs a weight vector over assets + cash. Numbers here are honest — when a backtest hasn't been run, no numbers are shown.
PPO Inference Service
Checking…
Classical
Equal Weight (1/N)
Baseline that distributes capital equally across holdings. Hard to beat out-of-sample — any live strategy should clear this bar.
Implemented in python/src/portfolio_rl/evaluation/benchmarks.py as a backtest benchmark.
Mean-Variance (Markowitz)
Maximizes expected return for a level of risk using Ledoit–Wolf shrunk covariance, rebalanced monthly.
Backtest-only today. Routing a rebalance through this strategy falls back to Claude.
Minimum Variance
Minimizes portfolio volatility without forecasting returns. Defensive; typically strong in drawdowns.
Backtest-only today.
LLM-Powered
Claude Sentiment
LLM-powered weight generation. Claude receives current positions + context and returns a weight vector.
Live. Default strategy for the daily rebalance cron.
Reinforcement Learning
RL (PPO on TCN)
PPO agent with a TCN encoder over a 60-day feature window. Reward is Differential Sharpe minus turnover and CVaR-5% penalties. Action is weight deltas, simplex-projected.
Training + inference wired end-to-end. Status depends on whether a checkpoint is deployed on Modal — see live status above.