Skip to content

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