{% 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 %}
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 %}.About these positions
Nothing trades for this account until you pick a strategy; its paper positions show here from the next pricing update.
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.
{{ 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 }}.
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.
Open to load saved Edge Finder sweeps.
| Market type | Positions | Open | Held to the result, made money | P&L |
|---|---|---|---|---|
| {{ k.kind|kind }} | {{ k.n }} | {{ k.open }} | {{ k.won }}/{{ k.settled }} | {{ pnl(k.pnl) }} |
In-app markets you quote are on My book.
{% endif %}{{ rc.events|map(attribute='rows')|map('length')|sum }} markets listed; {{ "there's" if profile.basic else profile.name.split(' ')[0] }} {{ "wouldn't quote any" if maker else ("no pick on any" if profile.basic else "has no call on any") }} right now. {{ "Quotes" if maker else "Calls" }} update after every session.
{% else %}| Market | Price | {% if maker %}Bid | Ask | Size | {% else %}Call | Heat | {% endif %}
|---|---|---|---|---|---|---|
| {{ r.subject }} {{ r.prediction|kind }} | {{ "%.3f"|format(r.mid) if r.mid is not none }} | {% if maker %}{{ "%.2f"|format(r.call.bid) if r.call.bid is not none else "–" }} | {{ "%.2f"|format(r.call.ask) if r.call.ask is not none else "–" }} | {{ "%.0f"|format(r.call.size) }} | {% else %}BUY {{ r.call.side }} {{ "%.0f"|format(r.call.shares) }} sh @ ≤{{ "%.2f"|format(r.call.limit) }} ({{ r.call.cost|money(false, false) }}) | {% if r.heat_label %}{{ r.heat_label }}{% endif %} | {% endif %}
{% if maker %}Where {{ profile.name.split(' ')[0] }} would quote each listed market right now (it re-quotes every 5 minutes through the weekend){% elif profile.basic %}Your current picks{% else %}{{ profile.name.split(' ')[0] }}'s current calls{% endif %}. Every market, with or without a {{ "quote" if maker else "call" }}: {{ "Polymarket" if maker else "Markets" }}{% if kcoming and maker %} · Kalshi{% endif %}.
| Weekend | {% endif %}Market | Position | {{ "Fills" if maker else "Trades" }} | Cash in / out | Price now / result | P&L {{ "↓" if sort == 'pnl' else ("↑" if sort == '-pnl' else "↕") }} | |
|---|---|---|---|---|---|---|---|
| {{ p.event_name or p.event_key }} {{ p.start_date|fmt if p.start_date }} | {% endif %}{{ p.subject }} {{ p.kind|kind }}{% if p.venue == 'private' %} private book{% elif p.venue != 'polymarket' and not venue %} {{ venue_names.get(p.venue, p.venue) }}{% endif %} | {% if p.side %}{{ "%.0f"|format(p.shares) }} {{ p.side }}{% else %}closed before the race{% endif %} | {{ p.trades }} | {{ p.cash|money(true) }} | {% if p.outcome is not none %}{{ "YES" if p.outcome else "NO" }}{% elif p.mark is not none %}{{ "%.2f"|format(p.mark) }}{% endif %} | {{ pnl(p.pnl) }} | {% if p.state == 'open' %}open{% elif p.state == 'closed' %}closed{% endif %}{% if p.demo_sport %} demo replay, in-sample{% elif p.backfill %} backtest replay{% endif %} |
| {{ empty("No positions yet.") }} | |||||||
{{ ("Each is a real " ~ venue_names.get(venue, venue) ~ " taker trade that crossed the maker's quote." if venue and not priv else ("Each is a real taker trade (Polymarket's, or another exchange's where marked) that crossed the maker's quote." if others and not venue else "Each is a real Polymarket taker trade that crossed the maker's quote.")) if maker else "Each is a call the account took, at the most it would pay." }}
| When (UTC) | Stage | Market | Trade | Shares | Price | Cash |
|---|---|---|---|---|---|---|
| {{ t.signal_ts|fmt }} | {{ t.stage }} | {{ t.subject }} {{ t.kind|kind }}{% set tvn = (t.detail or {}).get('venue') %}{% if not venue and tvn and tvn != 'polymarket' %} {{ venue_names.get(tvn, tvn) }}{% endif %} | {% if t.action == 'fill' %}{{ "bought" if t.side == 'YES' else "sold" }} YES{% else %}{{ t.action }} {{ t.side }}{% endif %} | {{ "%.0f"|format(t.shares) }} | {{ "%.2f"|format(t.limit_price) }} | {{ (sg * t.shares * t.limit_price)|money(true) }} |
| {{ empty("No trades yet.") }} | ||||||
{{ summary.bets }} bets ({{ summary.open }} open) · staked {{ summary.staked|money }} · settled P&L {{ pnl(summary.pnl, True) }}
{% endif %} {{ table(my_bets, ["id", "created_at", "title", "maker", "side", "price", "stake", "payout", "status", "pnl"], cap=25, filter="Filter by market") }}