{% extends "base.html" %} {% from "_macros.html" import exec_badge %} {% block title %}Replay{% endblock %} {% block body %} {# ===== REPLAY: the RECORDED Bybit paper book (the cockpit's only venue), scrubbed day-by-day — same header/section/badge skin as Overview + Paper. Forward-only and fixed (unlike the configurable Backtest); the scrubber + as-of book are the unique detail this page provides. PAPER-badged (it's the paper record). ===== #} {# Track switch — Naive (the recorded paper book, scrubbable positions) vs Levered shadow (the observe-only levered forward_nav curve, return-defined, no positions). Relative URLs only. #}
Naive · deploy Levered · shadow
{# ── TRADER HEADER: h1 + a plain-language orientation verdict, consistent with the strategy page. Neutral — it frames what the record IS. Avoids the retired copy the tests forbid. #}

Replay {{ exec_badge('paper') }}

the recorded paper book, scrubbed day-by-day
{% if track == 'levered' %} The levered shadow track. An observe-only levered version of the deploy book — return-defined, so there are no positions to scrub. For the measured backtest curve use the levered Backtest. {% else %} The real forward record — what actually happened. The live-paper NAV, positions and trades for the Bybit deploy book, exactly as they were booked. Drag the slider to any day to see the book as it stood. Forward-only and fixed; for a what-if on capital or dates, use the Backtest. {% endif %}
{% if track == 'levered' %} {% if levered_days and levered_days >= 2 %}
{{ curve|safe }}

Levered shadow ({{ levered_days }} recorded day{{ '' if levered_days == 1 else 's' }}) — return-defined, so it has NO scrubbable positions. For the measured backtest curve see the levered Backtest.

{% else %}

The levered shadow track just started (T0 frozen) — its recorded curve appears here as it accrues days. Meanwhile see the levered Backtest.

{% endif %} {% else %} {% if not hist %}

no replay history yet — run fxhnt bybit-paper-backfill to build the equity series.

{% else %}
{{ curve|safe }}

xsfunding (carry) is return-defined (live-only) — it has no scrubbable positions, so it's excluded from the position replay.

{{ hist[-1].run_date }}
{% include "_replay_at.html" %}
{% endif %} {% endif %}
{% endblock %}