ProviderStream

ProviderStream contains the pricing streams and their settings for each provider in the system. All such settings can be defined in ProviderStreamSetting. ProviderStream has the following attributes and can be accessed via pending config or real-time config:
| attributes | required | default settings | attribute type | description |
|---|---|---|---|---|
| id | – | – | INT | The ID of the provider stream. XCore supports one stream per provider, with ID 0; depth and volume bands do not create additional streams. |
| provider | Y | – | INT | The ID of the provider (shown by name in the Portal). |
| name | Y | – | VARCHAR | The name of the ProviderStream. |
| description | N | – | VARCHAR | Free text. |
ProviderStreamSetting

ProviderStreamSetting defines stream settings for each liquidity provider configured in the system. XCore owners can configure all stream-related settings for an LP within this component. ProviderStreamSetting has the following attributes and can be accessed via pending config or real-time config:
| attributes | required | default settings | attribute type | description |
|---|---|---|---|---|
| provider | Y | – | INT | The ID of the provider (shown by name in the Portal). |
| stream | Y | – | VARCHAR | The name of the stream. |
| security | – | – | VARCHAR | Read-only: the security of the selected symbol, shown by the Portal. |
| symbol | Y | – | VARCHAR | The name of the symbol. |
| instrument | Y | – | VARCHAR | The name of the symbol as streamed by the LP. • The instrument is used in the pricing subscription messages sent to the LP. One instrument name maps to a single symbol per provider. Trading-instrument resolution depends on the provider adapter and can also involve Provider Scaling source mapping; this field alone does not define the complete trading setup. |
| volumes | N | n/a | VARCHAR | The specific price bands for which the system will subscribe from the specific provider, for the specific symbol, e.g., for EURUSD: 1000000,3000000,5000000. • Subscribing to specific price bands is not supported by most LPs; therefore, this setting is used specifically for the LPs that support this approach. When specifying bands, use positive values in strictly increasing order. Units and subscription support depend on the provider. |
| depth | N | 6 | INT | The requested depth of book (number of price layers) for which the system will subscribe to from the specific provider, for the specific symbol. The provider decides how many levels it actually delivers. • Before modifying this attribute please contact the Liquidity Provider to confirm their number of available layers . Depending on the provider type, it maybe possible to subscribe to a specific number of layers or full book depth. If connected via XCoreToXCore, contact the provider directly for layer information. Otherwise, contact PrimeXM Support to inquire about subscribing to full book depth. |
| markupbid | N | 0 | DOUBLE | The markup applied to the bid prices received from the LP before these price updates are sent to the liquidity pools, i.e. a pre-aggregation markup on this LP’s prices. The value is a price amount, not a number of points: for example -0.00002 lowers the bid of a 5-digit symbol by 2 points. A negative markup lowers the bid (the usual choice); a positive one raises it. The marked-up bid is rounded down to the symbol’s price precision. |
| markupask | N | 0 | DOUBLE | The markup applied to the ask prices received from the LP before these price updates are sent to the liquidity pools, i.e. a pre-aggregation markup on this LP’s prices. The value is a price amount, not a number of points: for example 0.00002 raises the ask of a 5-digit symbol by 2 points. A positive markup raises the ask (the usual choice); a negative one lowers it. The marked-up ask is rounded up to the symbol’s price precision. |
| priority | N | 0 | INT | A value that will give an advantage or disadvantage to an LP, when two or more LPs are streaming the same price (A positive value would make a quote better than a quote with the same price and smaller priority). • priority does not affect price updates. • Accepted range: -128 to 127. The advantage applies when ranking execution candidates at equal prices; the outbound taker book can rank equal-price quotes by size first. |
| delay | Y | 10 | INT | Quote-age warning threshold in milliseconds, based on the remote timestamp supplied by the provider adapter. A warning can be raised when the maximum observed quote age exceeds the positive threshold. Setting delay to 0 disables this warning. Supported values are 0 to 1000.This is a monitoring setting; it does not delay quotes, filter liquidity or time how long the feed has been silent. If the adapter supplies no remote timestamp, absence of a warning does not establish that pricing is fresh. |
| session | Y | SUN|17:00:00-FRI|17:00:00 | VARCHAR | The time interval during a week when the symbol will be active for this provider. • For more information on sessions, please check our video here. These symbol sessions use system.timezone, independently of the connection-level TimeZone. Multiple weekly ranges use semicolons, for example MON|09:00:00-MON|17:00:00;TUE|09:00:00-TUE|17:00:00. Ranges must be ordered from Sunday to Saturday and must not overlap; starts are inclusive and ends exclusive. SUN|00:00:00-SAT|24:00:00 covers the whole week. |
| enable | Y | – | INT | Enables/Disables the specific symbol. Subscription also requires provider, pricing-channel, symbol and session readiness; enabling alone does not guarantee a live feed. |
| values | N | n/a | VARCHAR | Adapter-specific subscription parameters; grammar, defaults and meaning depend on the provider type, see the Custom Parameters below. The loader stores the text as is. Changing only this value does not re-subscribe by itself; confirm the adapter-specific procedure before relying on a live edit. |
| indicative | N | – | INT | Enables/Disables the option for the provider to be able to send indicative prices. Note: Quotes with size = 0 are considered indicative. When provider_stream_setting.indicative = 0, such quotes are not added to the liquidity_pools.Retaining an indicative price does not make its zero liquidity executable. Changing this setting on a live stream does not by itself recreate the existing subscription; the new behavior applies after the symbol is resubscribed. |
Custom Parameters
| Type (Name) | attribute | default value | Custom Parameters |
|---|---|---|---|
| GTN | values | Specifies the subscribe feed (MT:q or MT:o) used per symbol. • Default (if empty or n/a): FX → MT:q, others → MT:o Supported values are: • q – MT:q • o – MT:o |
|
| Kraken | values | Controls tag 266 (AggregatedBook) in the MarketDataRequest message. The value n (case-insensitive) sets 266=N so that book entries are sent individually; any other value or an empty value leaves the tag unset. |
|
| LASER_DIGITAL (Laser Digital Nomura Group) |
values | A single value assigned to tag 167 (SecurityType) within the NoRelatedSym group of the MarketDataRequest message. | |
| TT (Trading Technologies) |
values | Comma-separated list of at least 3 values assigned in order to the following tags within the NoRelatedSym group of the MarketDataRequest message: • Security Exchange (Tag 207) • ID Source (Tag 22) • Security ID (Tag 48) • optional 4th value 1 – also requests implied prices (Tag 269 = Y and Tag 269 = Z)A nonempty definition with fewer than 3 values is rejected as invalid data. A missing or incomplete definition prevents subscription. |
|
| PRIMEXM_SIM | values | Comma-separated list of 3 or 5 values: bid,ask,size[,tickStep,count].• bid, ask: the streamed prices (positive). • size: the streamed size for both sides (positive). • tickStep, count (optional): zigzag. On every update both prices move by tickStep, up to count steps above and below the configured prices. With tickStep 0, or with three values, the prices stay constant; a tickStep above 0 requires a count above 0, and the range must keep both prices positive.Empty or n/a streams nothing for the symbol; invalid values are logged and the symbol is not streamed. Prices are published every Interval milliseconds (see ProviderConfig). |