1 · Starter template [ pick one, or "Custom" to design from scratch ]
2 · Parameters
2a · Goals & guardrails [ optional · used by both cuFOLIO Sweep and NemoRL AutoResearch scoring ]
3 · cuFOLIO solver · CVaR + cuOpt PDLP on GB10
scenario gen
— ms
cuOpt solve
— ms
CVaR
— %
Expected return
— %
3c · Scenario generation + stress regimes [ loading… ]
Stress regimes
loading regime catalog…
Active regimes inject synthetic stress scenarios into every cuOpt solve. All agents see active regimes in their context.
3b · cuOpt solver backend [ loading… ]
The cuOpt skills (Plan / Modify / Optimize / Explain) call this solver under the hood. Flip the transport here without restarting the app — the next solve uses the new backend.
4 · Auto-search [ optional · find the best config automatically · two engines, picked here ]
B · NemoRL AutoResearch Karpathy-pattern · LLM-meta · unified mode (env+PPO+cuFOLIO knobs together)
A Nemotron 3 Super meta-agent proposes typed config edits across env, PPO, AND cuFOLIO knobs in one search space. ~8s per trial; ~2 minutes for an 8-iteration session. Finds joint optima the deterministic sweep can't reach. Per the unified-architecture diagram in TECHNICAL-BRIEF §3.1.
[ RESULTS · KPIs ]
Final $
—
CAGR
—
Sharpe
—
max DD
—
rebalances
—
days
—
full metrics table (CAGR · Sharpe · Sortino · MaxDD · Vol · vs benchmark)
Cumulative portfolio value vs benchmark · vertical lines = rebalance triggers
Mirrors src/rebalance.py:plot_results() in the QPO blueprint
Drawdown peak-to-trough · strategy vs benchmark
Derived from the equity curve: (eq / cummax) − 1. The MaxDD KPI is the trough.
Final allocation weights at the last rebalance
Mirrors src/portfolio.py:plot_portfolio() in the QPO blueprint
cuFOLIO call stats this run · real engine numbers
Walk-forward solver telemetry from the cuOpt PDLP path. Surfaces "the engine's work" the QPO blueprint highlights.
total runtime
—
cuFOLIO solve total
—
mean solve / rebal
—
scenarios / solve
—
walk-forward windows
—
rebalances
—
avg turnover / rebal
—
universe
—
Risk decomposition top strategy · final weights × realized vol
Each name's normalized contribution to the weighted-vol of the final portfolio:
rc_i = wᵢ × σᵢ / Σ(w × σ). σ = annualized vol over the backtest window.Mean-CVaR over time per-rebalance forward CVaR + expected return
For each rebalance, a 21-day forward bootstrap of the just-solved portfolio. The QPO rebalancing-strategies notebook's signature trajectory view — shows whether the optimizer is keeping CVaR bounded as the regime shifts.
Portfolio composition over time full weights at every rebalance
Stacked area of the cuFOLIO weights at each rebalance date. Shows how the optimizer rotates between names as scenarios refresh.
Forward return distribution horizon-end returns · CVaR threshold marker
Histogram of 21-day horizon-end returns over 5,000 bootstrap paths. The red dashed line is the CVaR threshold — the average tail loss below the α quantile. Mirrors the distribution chart in cvar_basic.ipynb.