SyntheticPairs/Symbols
Synthetic instruments are artificial currency pairs usually unavailable or nontradable in the market, constructed from two or more source symbols. Synthetic symbols support full execution (A-book and B-book), layered pricing, and multi-LP aggregation.
Note: Charges are applied for using Synthetic Provider in the XCore; for more information, consult with your Account Manager.
Note: If a source symbol's session is closed, the synthetic continues streaming using the last price received for that source. If the provider withdraws a source symbol's prices, the synthetic quote is withdrawn as well.
Loopback Setup
A loopback is required when source symbols come from different providers. A dedicated pool collects source quotes, a PrimeXM_XC connector listens to that pool, and a provider reads from the connector to combine the sources for synthetic creation. Skip this section if all source symbols are on the same provider.
1. Liquidity Pool
Create a dedicated pool to collect the source quotes.
video=1189813615
2. Connector
Create a PrimeXM_XC connector that will listen to the loopback pool.
video=1189813709
3. Connector Stream
Configure the connector stream with the source symbols.
video=1189813661
4. Provider
Create the provider that reads from the loopback connector.
video=1189813591
5. Provider Stream
Configure the provider stream with the source symbols.
video=1189813570
Synthetic Symbol Setup
1. Symbol
Create the synthetic symbol.
video=1189813477
2. Provider Configuration
Configure the synthetic on the provider that streams the source symbols (third-party or loopbacked). The synthetic formula is defined in ProviderConfigSetting using the FA format: FA:<symbol_name> as the name, and <factor>,<source_symbol_1>,<source_symbol_2>[,...] as the value. The system auto-determines direct/inverted usage by matching base and quote currencies. A minimum of 2 source symbols is required, and the chain must be sequentially correct.
video=1189813508
3. Layering
Configure layered pricing. Up to 5 layers per side. Layer sizes are configured via min and step in ProviderStreamSetting values field. Constraints: min >= step, min must be a multiple of step.
video=1189813753
4. Verify Streaming
Verify the synthetic symbol is streaming correctly.
video=1189813743
A-book Execution Setup
1. Provider Trade Settings
Add the synthetic symbol to the Provider trade settings.
video=1189813548
2. Connector Account Settings
Add the synthetic and source symbols to ConnectorAccountSetting with b_book set to 0.
video=1189813673
3. System Synthetics
Configure the hedge connector account in System synthetics.
video=1189813641
4. Verify Execution
Restart and verify execution in the log viewer.
video=1188164668
Hedge Reference
Hedge Leg Logic
When a synthetic trade executes, the system hedges each source pair in the chain:
BUY synthetic:
- Direct leg: BUY at source ask. Size = accumulator.
- Inverted leg: SELL at source bid. Size = accumulator / price.
SELL synthetic:
- Direct leg: SELL at source bid. Size = accumulator.
- Inverted leg: BUY at source ask. Size = accumulator / price.
The accumulator starts at factor x userSize and evolves through the chain: direct legs multiply by price, inverted legs divide by price.
Hedge Order Identification
clOrdID = SH<legIndex>-<parentOrderId>-<batchIndex>
- legIndex: Index of the leg in the chain (starting from 0).
- parentOrderId: Original client order ID.
- batchIndex: Batch index for the hedge execution.
Residual Exposure Overview
1. Why Residual Exposure Appears in Synthetic Trading
This video explains why residual exposure is created when trading synthetic symbols.
video=1197684965
2. How to Track Residual Exposure in Position Admin
This video shows how to track residual exposure using Position Admin and the Diff Source Account.
video=1197684944