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…

LOADING

Classical

Equal Weight (1/N)

Backtest only

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)

Backtest only

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

Backtest only

Minimizes portfolio volatility without forecasting returns. Defensive; typically strong in drawdowns.

Backtest-only today.

LLM-Powered

Claude Sentiment

Live

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)

Awaiting checkpoint

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.