Render section C formulas as KaTeX math (sample)

Convert the formula column of the core performance & risk-adjusted
ratios table from inline-code unicode to KaTeX. Sample section to
evaluate in-table math rendering before rolling across the catalogue.
Markers, thresholds and references untouched; abs-bars use \lvert/\rvert
to keep the markdown table intact.
2026-06-15 15:38:57 +02:00
parent e9e32d19fb
commit 5b4dc96ecd
+12 -12
@@ -56,18 +56,18 @@ The single-run scorecard. All are pure functions of the per-period return series
| metric | formula | computed from | threshold |
|---|---|---|---|
| Total return | `sum_t r_t` | `r` | none in isolation |
| CAGR / annualized | pip/additive: `mean(r)·P`; geometric: `(prod(1+r))^(P/T)1` | `r`, `P` | asset-class relative |
| Volatility (ann.) | `std(r)·sqrt(P)`, sample std `1/(T1)` | `r`, `P` | magnitude; sqrt(P) iid-only |
| **Sharpe** | `sqrt(P)·(mean(r)r_f)/std(rr_f)` | `r`, `r_f`, `P` | `<0` bad, `01` acceptable, `12` good, `23` very good, `>3` excellent **[C]**; sustained `>2` short-sample = overfit flag. **[CORR:** denominator = std of the *excess* return `std(rr_f)`; equals `std(r)` only when `r_f` constant**]** |
| **Sortino** | `sqrt(P)·(mean(r)MAR)/DD`, `DD=sqrtmin(0,rMAR)²/N)` | `r`, MAR (default 0), `P` | `<0` losing, `01` sub-optimal (*one* band), `12` good, `23` very good, `>3` excellent; "good" = `>1`. **[CORR:** no 0.5 split; "good" bar `>1` not `>2`; divisor total N**]** |
| Calmar | `mean(r)·P / |MaxDD|`; strict = trailing-36mo monthly | `r`, `E` | `<1` poor, `13` acceptable/good, `>3` excellent; HF ~1.53.0. **[CORR:** `>2` alone is NOT excellent (reserve for `>3`); `0.51.0` is "weak"**]** |
| MAR ratio | `CAGR(inception)/|MaxDD(inception)|` | full `E` | ~`>0.5` acc, `>1` good **[C]**; differs from Calmar in *window AND numerator* (avg-annual vs CAGR) **[CORR]** |
| Sterling | `CompoundROR / |avgAnnualMaxDD 10%|` | annual DD episodes | no band; lower than Calmar. **[CORR:** subtract 10% *inside* the abs; 10% ≈ 1981 T-bill rate**]** |
| Burke | `(r_Pr_F)/sqrt_t D_t²)`; modified divides D_t²` by n | DD-episode list | no band; higher better **[L]** |
| Omega(θ) | max(0,r−θ) / Σ max(0,θ−r)` | `r`, θ | `=1` breakeven (θ=mean), `>1` preferred **[L]** |
| Information ratio | `mean(rb)/std(rb)`, ann. ×`sqrt(P)` | `r`, benchmark `b` | `0.40.6` good, `0.611.0` very good, `≥1.0` exceptional **[formula L; thresholds C]** |
| Treynor | `(E(R_p)R_f)/beta`, `beta=Cov(R_p,R_m)/Var(R_m)` | `r`, market `R_m` | no abs threshold; ranking only **[L]** |
| Total return | $\sum_t r_t$ | `r` | none in isolation |
| CAGR / annualized | pip/additive: $\operatorname{mean}(r)\cdot P$; geometric: $(\prod(1+r))^{P/T}-1$ | `r`, `P` | asset-class relative |
| Volatility (ann.) | $\operatorname{std}(r)\cdot\sqrt{P}$, sample std $1/(T-1)$ | `r`, `P` | magnitude; sqrt(P) iid-only |
| **Sharpe** | $\sqrt{P}\cdot\frac{\operatorname{mean}(r)-r_f}{\operatorname{std}(r-r_f)}$ | `r`, `r_f`, `P` | `<0` bad, `01` acceptable, `12` good, `23` very good, `>3` excellent **[C]**; sustained `>2` short-sample = overfit flag. **[CORR:** denominator = std of the *excess* return `std(rr_f)`; equals `std(r)` only when `r_f` constant**]** |
| **Sortino** | $\sqrt{P}\cdot\frac{\operatorname{mean}(r)-\mathrm{MAR}}{DD}$, $DD=\sqrt{\sum\min(0,r-\mathrm{MAR})^2/N}$ | `r`, MAR (default 0), `P` | `<0` losing, `01` sub-optimal (*one* band), `12` good, `23` very good, `>3` excellent; "good" = `>1`. **[CORR:** no 0.5 split; "good" bar `>1` not `>2`; divisor total N**]** |
| Calmar | $\operatorname{mean}(r)\cdot P/\lvert\mathrm{MaxDD}\rvert$; strict = trailing-36mo monthly | `r`, `E` | `<1` poor, `13` acceptable/good, `>3` excellent; HF ~1.53.0. **[CORR:** `>2` alone is NOT excellent (reserve for `>3`); `0.51.0` is "weak"**]** |
| MAR ratio | $\mathrm{CAGR}(\text{inception})/\lvert\mathrm{MaxDD}(\text{inception})\rvert$ | full `E` | ~`>0.5` acc, `>1` good **[C]**; differs from Calmar in *window AND numerator* (avg-annual vs CAGR) **[CORR]** |
| Sterling | $\mathrm{CompoundROR}/\lvert\mathrm{avgAnnualMaxDD}-10\%\rvert$ | annual DD episodes | no band; lower than Calmar. **[CORR:** subtract 10% *inside* the abs; 10% ≈ 1981 T-bill rate**]** |
| Burke | $(r_P-r_F)/\sqrt{\sum_t D_t^2}$; modified divides $\sum D_t^2$ by n | DD-episode list | no band; higher better **[L]** |
| Omega(θ) | $\sum\max(0,r-\theta)/\sum\max(0,\theta-r)$ | `r`, θ | `=1` breakeven (θ=mean), `>1` preferred **[L]** |
| Information ratio | $\operatorname{mean}(r-b)/\operatorname{std}(r-b)$, ann. $\times\sqrt{P}$ | `r`, benchmark `b` | `0.40.6` good, `0.611.0` very good, `≥1.0` exceptional **[formula L; thresholds C]** |
| Treynor | $(E(R_p)-R_f)/\beta$, $\beta=\operatorname{Cov}(R_p,R_m)/\operatorname{Var}(R_m)$ | `r`, market `R_m` | no abs threshold; ranking only **[L]** |
**Annualization rule [L as convention]:** mean ×`P`, std ×`sqrt(P)`, ratio
×`sqrt(P)`; `P=252` daily (trading days, not 365), 52 weekly, 12 monthly. Valid