MarketDeck docs
positions
Cross-wallet rollup of every open position and resting order — paper and real, in one normalised list.
marketdeck positions is the unified read surface that fans out across every paper wallet and every real wallet, normalises the two engines' shapes, and groups the result by kind and category. Surfaces consume it whenever they need a single "what's currently in flight" view without N round-trips of their own.
Usage#
marketdeck positions <subcommand>
Subcommands#
| Subcommand | What it does |
|---|---|
all | Every open position plus every resting order across paper + real wallets, in one envelope. |
Output shape#
all returns one envelope grouped by:
kind—paperorreal.category—open,closed,pending,limit_order,sl, ortp.
Each entry carries the originating wallet_id and wallet_name so a downstream view can render per-wallet groupings without re-joining against wallets list.
Per-wallet fetch failures are surfaced under a top-level errors array so one unreachable real wallet does not blank the whole view — every other wallet still shows live state.
Examples#
marketdeck positions all --format text
marketdeck positions all --format json | jq '[.real.open[] | .coin] | unique'
marketdeck positions all --format json | jq '.errors'
Performance#
Internally positions all parallelises one read per wallet (paper show <wallet> for paper, wallets state <wallet> for real) and folds the results into the unified envelope. Real wallets pay one HL /info round-trip each; paper wallets are local SQLite reads.
Presentation surfaces consume this command through marketdeck positions all --format json. The daemon is not a business-data path for positions; it remains reserved for live feed channels such as mids and trailing-stop events.