Profit valuation and currency conversion¶
The terminal and Backoffice calculate current floating P/L from market quotes. For account-currency results, the client also needs relevant currency conversion quotes. This page describes how to discover and subscribe to those quotes; it does not define a new server calculation or streaming contract.
Price and instrument calculation¶
The instrument's configured calculation mode, contract settings, trade side, volume and relevant quote prices determine floating P/L. Clients should use the platform's existing calculation behavior and symbol settings when showing a quote-driven estimate. This guide does not establish a new universal formula or rounding rule for all instrument types.
Discover conversion symbols¶
Clients can discover conversion symbols using the existing endpoint or TCP
command linked below, then subscribe to those symbols through the normal quote
channel. Eligible symbols have a full configured name of exactly six
characters and Forex profit mode. Symbol names are matched exactly: a suffixed
symbol such as EURUSD.w is not an alias for EURUSD.
The conversion-symbol list is available through Get Cross Currency Symbols REST and GetSymbolsCrossCurrency TCP. Each result row contains the symbol, bid, and ask values. Discovery does not create the quote subscription. The response reads a live quote snapshot, with no quote-freshness guarantee. Subscribe promptly to the returned symbols and recalculate displayed floating P/L as instrument or conversion quotes arrive.
For a conversion from currency from to account currency to, the service
looks up the exact direct symbol from + to first. It looks up the exact
inverse to + from only if the direct symbol is absent. A direct quote takes
priority even when its current quote is unusable; the service does not replace
it with the inverse pair in that case. For the direct pair, BUY uses ask and
SELL uses bid. For the inverse pair, BUY uses 1 / bid and SELL uses
1 / ask. Existing conversion-rate status and fallback handling is unchanged.
For example, a USD-quoted instrument in an EUR account needs USDEUR when that
exact pair exists. Otherwise it can use the exact inverse EURUSD. A symbol
named EURUSD.w is not used as an alias for EURUSD.
Client display and server events¶
TCP and WebSocket trade events report trade lifecycle changes. They do not broadcast a separate per-position event for every quote-driven floating P/L recalculation. Clients update displayed open-position P/L from subscribed market quotes. Historical trade and account values continue to come from the existing server APIs and events.
Historical closed-trade PnL is not recalculated from current quotes. Consumers must display the persisted server result for history. Open-trade floating values are calculated locally from current quotes.