Portfolios

The portfolio replays several instruments as one account: one balance, one equity curve, one set of risk limits, one clock. It exists because risk is shared — a gold position and a euro position draw down the same account at the same time.

What is in the account

Five instruments are supported in portfolio mode, each with its own pip size, contract size and quote currency:

Each of these is a separately declared, versioned specification. The metals are not derived from EURUSD by guesswork, and a provider correction to pip or contract size produces a new metadata revision rather than silently repricing the history you already tested against.

One account, one clock

The portfolio steps one bar at a time across all symbols. Orders are submitted at the bar the rules or your clicks produced, executed at that bar's price, and never see a bar they were not allowed to see — there is no look-ahead across instruments. Costs are charged at event boundaries, and where a cost is shared across positions it is allocated pro-rata down to the cent, with the rounding residual assigned so the sum is exactly the charge.

Account currency and conversion

The account currency is USD. Profits and margin in another quote currency are converted over predeclared FX routes using frozen mid prices; a route never spans more than two edges, and inverse edges are inverted rather than approximated.

The strict part is deliberate: if a required rate is missing, zero, non-finite or expired, valuation is rejected rather than silently treating the currency as 1:1. A missing rate is a bug in the data, not a reason to invent a number.

Exposure, checked rather than assumed

Account exposure is the sum of absolute USD notional across every instrument in the book. Above 100× the account balance it is flagged — the same guard the single-symbol replay engine applies — because a book that size is running on leverage the balance cannot support, and a strategy that only works there was never a strategy.

The other guard is about arithmetic rather than risk: if an FX route needed to value a position is missing, zero, non-finite or expired, the engine rejects the valuation instead of inventing a rate. A number you cannot defend does not belong in a report.

Prop-style rules are evaluated across the whole book, with the policy version recorded in the report: news relevance considers every instrument you actually hold, and the consistency ratio is computed on the portfolio as a whole — not on whichever symbol happened to behave.

Strategies in a portfolio

A strategy can be bound per instrument, so the same rulebook runs on each symbol under the shared account. Strategy-driven orders go through the same scheduler, exposure checks and journal as manual ones — there is no second, quieter path for automation.