{# Sim result partial: the honest real-cost equity curve + metrics + timeline slider + state panel. The slider scrubs the per-day arrays embedded in #sim-data ENTIRELY client-side (no per-tick refetch); only a capital/period change re-fetches /paper/sim/run. There is NO cost/flat toggle — the cost is the MEASURED real per-coin spread (a fact, not a knob). When the measured artifact has not been precomputed yet we show a short 'precomputing' note (never a flat slider, never a 500). #}
{% if measured_pending %}

measured real-cost curve precomputing — check back after the nightly job (the per-coin measured-cost artifact is built out-of-band by fxhnt compare-measured-precompute).

{% else %} {# Measured cost caption. Each coin pays its real per-COIN cost (published taker fee + half its real measured spread) so the curve is the honest de-inflated number. The Bybit liquid book uses the REAL L1 quoted spread (forward-realistic); Binance stays on the Corwin–Schultz daily-high/low proxy. #} {% if used_real_spread %}

measured per-coin cost — taker fee + half the real L1 quoted spread (forward-realistic — current liquidity; 2021-22 spreads were wider, so early-history cost is understated) · avg drag {{ '%.1f'|format(cost_drag_bps) }}bp

{% else %}

measured per-coin cost — taker fee + half the Corwin–Schultz spread · avg drag {{ '%.1f'|format(cost_drag_bps) }}bp

{% endif %} {% endif %} {% if not measured_pending %} {% if n_points == 0 %}

no simulated days for this period — pick a date range that overlaps the curve's history.

{% else %}
CAGR
{{ '%.1f'|format(100*metrics.cagr) }}%
Sharpe
{{ '%.2f'|format(metrics.sharpe) }}
max DD
{{ '%.1f'|format(100*metrics.max_dd) }}%
worst year
{{ '%.1f'|format(100*metrics.worst_year) }}%
best year
{{ '%.1f'|format(100*metrics.best_year) }}%
final $
${{ metrics.end_value|money }}
{% if is_bybit %}
Backtest (real measured cost) — naive equal-weight 4-edge Bybit book over the precomputed measured-cost history; scale by capital / window by period
{% endif %}
{{ curve|safe }}
scrub timeline →
date
equity
drawdown
leverage
killed
active sleeves
{% endif %} {% endif %} {% if is_bybit and forward %}
Live forward — {{ forward.display_name }} ({{ forward.venue }})
{% if forward.t0 %}T0 {{ forward.t0 }} — {% endif %} gate {{ forward.gate_status }} {% if forward.gate_reason %}({{ forward.gate_reason }}){% endif %} {% if forward.as_of %} · as of {{ forward.as_of }}{% endif %}
{% if forward.n_points %}
forward days
{{ forward.days }}
forward return
{{ '%.2f'|format(forward.total_return_pct) }}%
forward Sharpe
{{ '%.2f'|format(forward.sharpe) }}
{{ forward.curve|safe }}
{% else %}

no live forward NAV recorded yet — the nightly track starts booking from T0 once the Bybit warehouse has data.

{% endif %}
{% endif %}