Skip to content

Symbol

XCore v6.01.xx+ introduces the following new attributes:

  1. symbol.markup_min and symbol.markup_max: These attributes constrain the combined profile markup and skew on each side in absolute price amounts, and limit minimum-spread widening. They do not cap every provider offset, final spread or execution slippage.
  2. symbol.markup_decimal, symbol.markup_price_unit, and symbol.markup_basis_point: These attributes allow users to enable or disable the respective markup_type for use in MarkupProfileSettings.

Symbol contains all the trading instruments defined in XCore and allows for configuring settings for each Symbol. Changes made at this level will impact all other components in the system. Each Symbol is assigned to a single Security. The security's type sets type-specific rules for its symbols, and features that support security rules can apply them to all its symbols. Symbol has the following attributes and can be accessed via pending config or real-time config:

attributes required default settings attribute type description
id Y – INT The ID of the symbol; generated.
name Y – VARCHAR The name of the symbol.
description VARCHAR A short description of the symbol.
security Y – VARCHAR The name of the security the symbol is assigned to.
base Y – VARCHAR The base currency or underlying-asset reference from the Currency catalog.

For security type FX, base and quote names must each have three characters, and the symbol name must begin with their concatenation; suffixes are allowed. For non-FX products, the base can identify the underlying asset and does not have to equal the symbol name.
quote Y – VARCHAR The quote currency of the symbol

• For FX products (Assigned to security of type FX), the symbol’s name is composed of the base and quote attributes of the symbol.
contract_size Y 1 DOUBLE Volume multiplier used to compute the order’s monetary value in the quote currency for margin, position booking and valuation: quote = size × contract_size × price.
To match the trade size with the LP, use Provider Scaling.
size_unit Y – DOUBLE The base increment for internal symbol quantities. Must be greater than 0. Provider and connector minimum/step settings and provider scaling apply separately.

Important: Assigning it a larger value than the smallest size increment that may be submitted by any configured makers can lead to position discrepancies and potentially trigger an automatic shutdown of makers.
price_unit Y – DOUBLE The base/default price resolution and the absolute size of one point when a profile uses price_unit. Must be greater than 0. Provider prices are rounded to this unit when they are received (bids down, asks up). Explicit precision settings can use finer or coarser rounding; average or derived prices do not always lie on the default price-unit grid.
markup_min Y -1000 DOUBLE Lower bound, in absolute price amounts, on the combined profile markup and skew on each side. Supports values <= 0. Zero actively prevents a negative combined contribution; it does not disable the check. This is not a universal final-price or slippage limit.
markup_max Y 1000 DOUBLE Upper bound, in absolute price amounts, on the combined profile markup and skew on each side. Supports values >= 0. Zero actively prevents a positive combined contribution. This bound also limits minimum-spread widening and can prevent the requested minimum spread from being reached. It does not cap the sum of bid and ask adjustments, every provider offset or execution slippage.
markup_decimal Y – BOOLEAN The markup_decimal parameter specifies whether MarkupProfileSetting markup_type and spread_type can include decimal as a valid type. Its purpose is to minimize the risk of brokers accidentally configuring these parameters incorrectly.
markup_price_unit Y – BOOLEAN The markup_price_unit parameter specifies whether MarkupProfileSetting markup_type and spread_type can include price_unit as a valid type. Its purpose is to minimize the risk of brokers accidentally configuring these parameters incorrectly.
markup_basis_point Y – BOOLEAN The markup_basis_point parameter specifies whether MarkupProfileSetting markup_type and spread_type can include basis_point as a valid type. Its purpose is to minimize the risk of brokers accidentally configuring these parameters incorrectly.
active Y – INT Enables/Disables the symbol. An inactive symbol rejects new trade requests with symbol disabled and is not subscribed from providers; existing positions are not closed and existing orders are not cancelled by this flag.

These three flags decide which units a MarkupProfile rule may use for this symbol. A rule for a security applies to every symbol of that security and a rule for * to every symbol, inactive symbols and symbols with their own rule included; each of these symbols must have the flag set to Y for the unit the rule uses.

Warning: configure symbol markup limits

Configure and verify realistic markup_min and markup_max values for each symbol. The bounds are absolute price amounts, independent of the profile unit. Very generous limits provide little protection against oversized adjustments. Zero is active. Enable only the markup and spread units your operation needs.

The XCore supports Synthetic Symbols — artificial currency pairs usually unavailable or nontradable in the market, constructed from two or more source symbols. Synthetics support full A-book and B-book execution, layered pricing, and multi-LP aggregation.

Please note that the Copy From function is copying parameters from the Connector Stream Setting, Connector Account Settings, and Provider Setting components such as A_Min, A_Step, Volume, Liquidity Pool, Markup Profile etc.