{% from "_macros.html" import pat, wlabel, pill %} {% if not snapshots %}

No snapshots yet. The first analysis will start the timeline.

{% else %} {% if badge %} {{ pill("stable " + (badge.streak|string) + " day" + ("s" if badge.streak != 1 else ""), "yellow") }} {% if badge.streak != badge.matches_in_window %} ({{ badge.matches_in_window }} of last {{ badge.window }}) {% endif %} {% if badge.last_changed_on %} last changed {{ badge.last_changed_on }} {% endif %} {% endif %} {% if outcome_badge %}
Outcomes: {{ outcome_badge.target_count }} of {{ outcome_badge.resolved_count }} resolved{% if outcome_badge.resolved_count > 0 %} ({{ "%.0f"|format(outcome_badge.hit_rate * 100) }}%){% endif %} hit target · avg {{ "%+.1f"|format(outcome_badge.avg_R) }}R {% if outcome_badge.in_flight_count > 0 %} · {{ outcome_badge.in_flight_count }} still in flight {% endif %}
{% endif %}
{% for s in snapshots %}
{{ s.as_of }} {{ pat(s.top_3[0].pattern) }} {{ wlabel(s.top_3[0].last_pivot_label) }} {{ "%.2f"|format(s.top_3[0].final_score) }} {% if s.signal %} RR {{ "%.1f"|format(s.signal.rr) }} {% else %}{% endif %} {% if s.outcome %} {% if s.outcome.status == "target" %} ✓ {{ "%+.1f"|format(s.outcome.realized_R) }}R ({{ s.outcome.bars_held }} bars) {% elif s.outcome.status == "stop" %} ✗ {{ "%+.1f"|format(s.outcome.realized_R) }}R ({{ s.outcome.bars_held }} bars) {% elif s.outcome.status == "time_stop" %} ⊘ {{ "%+.1f"|format(s.outcome.realized_R) }}R ({{ s.outcome.bars_held }} bars) {% elif s.outcome.status == "pending" %} ⊙ {{ "%+.1f"|format(s.outcome.unrealized_R) }}R · day {{ s.outcome.bars_elapsed }}/{{ s.signal.max_holding_bars if s.signal else '?' }} · peak {{ "%+.1f"|format(s.outcome.mfe_R) }}R {% endif %} {% elif not s.signal %} — (no signal) {% else %} — (resolving) {% endif %}
{% endfor %}
{% endif %}