SPB Git forge
1commits 1branches 0releases
189.0 KBsize
maindefault branch
6 h agolast push
Python 54.7% TypeScript 42.5% SQL 1.9%
1.3 KB · 24 lines tsx
Raw Blame History
1import { Card, Empty, PageHeader } from "@/components/ui";23export default function PortfolioPage() {4  return (5    <>6      <PageHeader title="Portfolio Optimizer" subtitle="Ships in Phase 3. The research engine and data layer it builds on are already in place." />7      <div className="grid gap-4 md:grid-cols-2">8        <Card title="Planned scope">9          <ul className="list-disc space-y-1 pl-5 text-xs text-fg-muted">10            <li>Covariance estimation on stored bars: sample, Ledoit–Wolf shrinkage, EWMA.</li>11            <li>Allocators: volatility targeting, inverse-volatility, hierarchical risk parity, mean–variance with shrinkage, CVaR minimisation (cvxpy).</li>12            <li>Constraints: long-only (spot), per-asset caps, minimum notional per leg, turnover penalty, cash buffer.</li>13            <li>Rebalance simulation through the same event-driven backtester and cost model as single-strategy runs.</li>14            <li>Stress scenarios: correlated drawdowns, liquidity collapse, spread widening.</li>15          </ul>16        </Card>17        <Card title="Inputs it will take">18          <Empty title="No optimizer runs yet">Universe (symbols from the ingestion universe), interval, estimation window, allocator, constraints, rebalance frequency, cost model.</Empty>19        </Card>20      </div>21    </>22  );23}24