{% extends "base.html" %}{% from "_macros.html" import empty, table, demo_context, chart, kpi, pnl, pnl_cls, page_head, source_note %} {% block title %}Positions{% endblock %} {% block content %} {% include "_lab_nav.html" %} {% set priv = venue == 'private' %} {% set others = venue_order|reject('in', ['polymarket', 'private'])|list %}{# exchanges besides Polymarket the account has rows on #} {% set on = ["Polymarket"] %}{% for k in others %}{% set _ = on.append(venue_names.get(k, k)) %}{% endfor %}{% if venues.private and not hide_private %}{% set _ = on.append("Private book") %}{% endif %} {% call page_head("Positions" ~ (" · " ~ cur.name if cur else ""), "Your fantasy-bucks positions on " ~ on|join(", ") ~ ".") %} Strategy: what it recommended, and why →{% endcall %}
About these positions

Paper only: nothing was sent to Polymarket. Polymarket history is {{ "the maker's fills" if maker else "your strategy's calls" }}{% if sport_paper %}; {{ 'NASCAR and MotoGP are' if sport_shown('motogp', user) else 'NASCAR is' }} taker replays on the exchanges' recorded prices (a demo: strategies picked in-sample){% else %}{% for k in others %}; {{ venue_names.get(k, k) }} is the same profile replayed on {{ venue_names.get(k, k) }}'s recorded tape{% endfor %}{% endif %}{% if venues.private and not hide_private %}; the private book is {{ "the one you ran" if maker else "the one you bet into" }} live (a demo, in fantasy bucks){% endif %}.

{{ source_note(note_sports, venue_order, model=(profile is not none)) }} {% if not paper.n and not my_bets and not venues %}{% if profile %}{{ empty("No positions yet.") }}{% else %}

No positions yet

Nothing trades for this account until you pick a strategy; its paper positions show here from the next pricing update.

Pick a strategy

{% endif %}{% else %} {# --- the headline: P&L per venue (each one a filter), then the ledger's state --- #}
{% if venues|length > 1 %}{% for key in venue_order %}{% set v = venues[key] %}{% set label = venue_names.get(key, key) ~ " P&L" %}{% set sub = "paper history" if key == 'polymarket' else ("live, fantasy bucks" if key == 'private' else "paper, on " ~ venue_names.get(key, key) ~ "'s tape") %}
{{ label }}
{{ v.pnl|money(true) }}
{{ sub }} · {% if v.first %}{{ v.first|fmt }}{% if v.last != v.first %} – {{ v.last|fmt }}{% endif %}{% endif %} · {{ v.n }} positions
{% endfor %}
Total P&L
{{ vtotal|money(true) }}
{{ "both" if venues|length == 2 else "all" }} venues · {{ venues.values()|sum(attribute='n') }} positions · click a venue to show only it
{% else %}{{ kpi("Realised P&L", paper.settled_pnl, "settled positions", "money") }}{% endif %}
Open now{% if venue %} · {{ "private book" if priv else venue_names.get(venue, venue) }}{% endif %}
{{ paper.open }}
marked to the market: {{ pnl(paper.open_value) }}
Closed and settled
{{ paper.n - paper.open }}
{{ paper.won }} of {{ paper.held }} held to the result made money{% if venues|length > 1 %} · realised {{ pnl(paper.settled_pnl) }}{% endif %}
{# --- one view at a time --- #} {% set vplots = [] %}{% for k, a in vaccts.items() if a and a.chart and a.record and venue in ('', k) %}{% set _ = vplots.append(k) %}{% endfor %} {% set has_poly = acct and acct.chart and venue in ('', 'polymarket') %}{% set has_book = book and book.chart and venue in ('', 'private') and not hide_private %} {% set n_plots = (1 if has_poly else 0) + (1 if has_book else 0) + vplots|length %} {% set show_coming = coming and not priv %}
{% if n_plots %}

P&L history

{% if n_plots > 1 %}
{% if has_poly %}{% endif %} {% for k in vplots %}{% endfor %} {% if has_book %}{% endif %}
{% endif %}
{% if has_poly %}
1 and plot != 'polymarket' %} hidden{% endif %}>{{ chart(acct.chart) }}

Polymarket, paper: cumulative P&L, {{ acct.kpis.total|money(true) }} over {{ acct.kpis.weekends }} weekends. Worst drawdown {{ acct.kpis.max_dd|money(true) }} from a peak; Sharpe ratio {{ "%.2f"|format(acct.kpis.sharpe) if acct.kpis.sharpe is not none else "–" }} (per season, over {{ acct.kpis.weekends }} weekends: mean ÷ s.d. of weekend P&L × √24). Weekend by weekend, and the strategy behind it: Strategy.

{% endif %} {%- for k in vplots %}{% set a = vaccts[k] %}{% set nm = venue_names.get(k, k) %}
1 and plot != k %} hidden{% endif %}>{{ chart(a.chart) }}

{{ nm }}, paper: the same profile replayed on {{ nm }}'s recorded trades, with {{ nm }}'s fees. Cumulative P&L, {{ a.kpis.total|money(true) }} over {{ a.kpis.weekends }} weekends. Worst drawdown {{ a.kpis.max_dd|money(true) }} from a peak; Sharpe ratio {{ "%.2f"|format(a.kpis.sharpe) if a.kpis.sharpe is not none else "–" }}. Weekend by weekend: Strategy, on {{ nm }}.

{% endfor %} {% if has_book %}
1 and plot != 'private' %} hidden{% endif %}>{{ chart(book.chart) }}

Private book: its P&L at every one of the {{ book.polls }} polls of the live event (UTC), marked to fair, settled at the result. Worst drawdown {{ book.max_dd|money(true) }} from a peak, through the day.

{% endif %}
{% endif %} {% if show_backtests %}

Explore saved strategy P&L

sport · season · venue · setup · strategy; separate from your account

Open to load saved Edge Finder sweeps.

{% endif %}

By market type

{% for k in by_kind %}{% endfor %}
Market typePositionsOpenHeld to the result, made moneyP&L
{{ k.kind|kind }}{{ k.n }}{{ k.open }}{{ k.won }}/{{ k.settled }} {{ pnl(k.pnl) }}
{% if maker and not hide_private %}

In-app markets you quote are on My book.

{% endif %}
{# --- what the strategy would do next --- #} {% if show_coming %}{% endif %} {# --- the ledger --- #} {% if my_bets %}{% endif %} {% endif %} {% endblock %}