ProviderTrade

ProviderTrade contains the trading settings for each provider in the system. All such settings can be defined in ProviderTradeSetting. ProviderTrade 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 provider-scoped trade-group ID. It is separate from the trading connection ID. Ordinary execution uses group 0 and trading config 1 unless Dealer Link selects another group or channel. |
| provider | Y | – | INT | The ID of the provider (shown by name in the Portal). |
| name | Y | – | VARCHAR | The name of the provider trade. |
| description | N | – | VARCHAR | Free text. |
| margin | N | – | INT | The optional maker-side account used for trade admission and fill booking. n/a means no linked account. An assigned account must exist, have no child accounts, and belong to a non-RISK group. Its account, group and profile controls apply; a failed account check can exclude provider liquidity. |
ProviderTradeSetting

ProviderTradeSetting defines the trade settings for each liquidity provider defined in the system. XCore owners can configure the available trade settings for an LP within this component. ProviderTradeSetting 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). |
| trade | Y | – | INT | The ID of the provider trade group (shown by name in the Portal). |
| security | – | – | VARCHAR | Read-only: the security of the selected symbol, shown by the Portal. |
| symbol | Y | – | VARCHAR | The name of the symbol. |
| min | Y | – | DOUBLE | The minimum allowed trade size accepted by the provider for the symbol. • For trades with a size smaller than this value, the specific provider will not be considered for execution. • The min and step values use internal symbol quantity units before provider scaling and depend on the size_unit of the symbol component. • At startup the value is rounded to the symbol’s size precision and raised to at least the symbol size_unit. |
| ccy | N | n/a | VARCHAR | Optional outgoing currency override. Empty or n/a uses the request currency; this is not universally the symbol base or quote currency. With source scaling, the source-symbol setting in the selected trade group supplies any override. This setting does not convert amounts, and transmission depends on the provider adapter. |
| step | Y | – | DOUBLE | The increment in the trade size that is considered a valid size accepted by the provider for the symbol. • The step value depends on the size_unit of the symbol component. At startup it is rounded to the symbol’s size precision and raised to at least the symbol size_unit.Example: • if min = 1000 and step = 1000, a trade of size 96500 will not be of a valid size to be sent to the Provider. The XCore will open a leg of 96000 with the Provider (as it complies with the min and step) while the remaining 500 depends on other eligible liquidity and order conditions; rounding alone does not guarantee that it expires. |
| consume | Y | 1 | INT | Controls local consumption of a quote’s available A-book liquidity when a leg opens, before a maker fill is confirmed. • 0 — Disabled: Leave the available quantity unchanged. • 1 — Enabled: Subtract the opened leg’s quantity. • 2 — Consume all: Remove all remaining A-book liquidity from that quote. |
| sweep | Y | 1 | INT | Permits separate executions against multiple candidates from the same provider when the connector-account and liquidity-pool modes also permit sweeping. With sweep = 0, an execution round sends at most one request to that provider: a further quote of the provider is used only if it can take the combined quantity, in which case one request for the combined quantity is sent at that quote's price; otherwise the remainder can be requested in a later round while the order's TTL allows. |
| precision | Y | 1 | INT | Maker limit-price rounding unit, relative to symbol.price_unit. • 0 — REDUCED: 10 × price unit. • 1 — DEFAULT: 1 × price unit. • 2 — EXTENDED: 0.1 × price unit. • 3 — HIGH: 0.01 × price unit. Buy-side maker limits round downward and sell-side limits upward, subject to other price bounds. Applies to the maker limit that a DealerTrade dev allowance adds to a client limit order (with the PrimeXM FIX maker: 44 ± 10001); quote prices and the allowance on market orders are not re-rounded. |
| pending_timeout | Y | 180000 | INT | When a leg is submitted for execution, the system assigns a Time-To-Live (TTL). By default, the TTL matches the remaining TTL of the leg’s order. However, this can be further restricted by configuring the dealer_trade.ttl setting. If the maker has not completed the leg, the system can attempt cancellation before the final timeout. The initial cancellation schedule depends on both TTL and pending_timeout; it is not necessarily the moment TTL expires. Should the leg not reach a final state within pending_timeout milliseconds after the leg’s TTL expiry, the system will initiate the following actions: 1. Send a final leg cancel request to the maker. 2. Book a canceled deal to this leg with the message ‘warn: pending leg timeout.’ 3. Close the leg. 4. Raise a ‘PendingLeg’ error in the system.log, which monitoring can pick up. IMPORTANT: Local timeout closure does not confirm that the maker canceled the remaining quantity. Prior partial fills remain booked, and late maker reports require reconciliation. Re-enabling a setting does not resolve uncertain executions. The timeout is captured when the leg opens; later edits apply to future legs. Pending_timeout serves as a last-resort measure to prevent indefinitely blocking a client’s order if the maker fails to reach a final leg state due to connectivity or technology issues. It is crucial to set the pending_timeout value to exceed the longest anticipated response times, even under the most volatile market conditions. Supported values: 100 to 1,800,000 milliseconds; values outside this range are clamped at startup. |
| pending_limit | Y | 0 | DOUBLE | Cumulative threshold for uncertain timed-out legs, in internal symbol quantity units, scoped to the provider, trade group and symbol across channels and order directions. A timed-out leg can contain prior partial fills; its full original size contributes to this total. At or above the threshold, the affected trade-setting row is disabled. A zero limit acts on the first qualifying timeout. The symbol stream may also be disabled when alternatives are available; this does not guarantee executable replacement liquidity or disable the entire provider. Reconcile uncertain maker executions before recovery. Supported values: x >= 0. |
| enable | Y | – | TINYINT | Enables or disables this symbol as an execution candidate for this provider trade group. Disabling stops new legs from being sent; it does not cancel existing legs or affect pricing. XCore can disable the row automatically when pending_limit is reached. |
| values | N | n/a | VARCHAR | Provider-specific execution parameters whose format and read timing depend on the adapter of the provider type. The catalog below lists the formats. For comma-separated formats, quoting is not supported and trailing empty positions are dropped. Any documented comparisons with n/a are case-sensitive. Connection properties belong to ProviderConfig and stream parameters to ProviderStream. |
Trade values by provider type
Catalog of the provider types that read values. The checks listed are the local ones; whether a counterparty accepts a transmitted identifier is not established by them.
| Provider type | Format | Meaning |
|---|---|---|
| PRIMEXM_FIX44, PRIMEXM_FIX44_FR, PRIMEXM_XC, REACTIVE_MARKETS | text |
Optional text carried on the outgoing order (FIX tag 58). Empty or n/a omits it. |
| LMAX, LMAXPRIME, LMAX_DIGITAL, LMAX_NY4 | security_id |
Raw SecurityID of the provider instrument; the identifier source is fixed to the exchange symbol. No local validation; a missing setting sends an empty string. LMAX_PERP does not read this field. |
| AUTEX | securityID[,securityType] |
SecurityID (source RIC) and an optional SecurityType. |
| CMC_V3 | securityIDSource[,securityType] |
Optional SecurityIDSource that switches identification from Symbol to SecurityID, and an optional SecurityType. Empty or n/a omits a position. |
| CBOE_CMC | instrument |
Instrument identifier used as SecurityID; must not be empty. The identifier source comes from the provider configuration (Source|symbol, then Source, default 101). |
| CBOE_SAXO | unused,isin,mic,instrument |
Four positions: an unused first position, the ISIN for stock and CFD-stock orders, the MIC and the instrument. Read when the trading connection starts; use all four positions. |
| IB | exchange,securityType,maturityMonthYear,customerOrFirm |
The first three positions identify non-FX instruments: destination or SecurityExchange, security type (FUT selects the futures branch), and MaturityMonthYear for futures; n/a suppresses the applicable field. FX orders use fixed identification values. The fourth position applies to both FX and non-FX orders: 0 selects customer; any other value or absence selects firm. |
| IG_DMA | security_exchange |
SecurityExchange for non-FX submissions and cancellations. |
| TT | exchange,idSource,securityID[,implied] |
SecurityExchange, identifier source and SecurityID; at least three positions. Read when the trading connection starts. The fourth position has no verified trading effect. |
| NSE | securityID,securityType,maturity |
At least three positions; the maturity must have at least six characters, of which the first six become MaturityMonthYear. Read when the trading connection starts. |
| HST_360T | tenor,productType |
Tenor (custom tag 15001) and product type (custom tag 7071); at least two positions. |
| ONEZERO, ONEZERO_IR | gtc|<threshold ms> |
Allows GTC time in force when the leg TTL is at least the threshold. Other values, or a bare gtc|, keep the normal time in force; a malformed number logs a warning. |
| LASER_DIGITAL | security_type |
Optional SecurityType; empty or n/a omits it. |
| BARCLAYS | settlement_date |
FutSettDate for NDF orders only; other security types ignore the field. |
| FSS | settlement_type |
SettlType for NDF orders only. |
CBOE_SAXO, NSE and TT read these parameters when the trading connection starts, from the trade group whose ID is the trading configuration ID minus one. Selecting a different trade group for an individual order does not switch those cached parameters; confirm the supported refresh procedure after edits.
Provider types whose trading parameters come from ProviderStreamSetting values instead (formats provided by PrimeXM Support): PRIMEXM_FIX44_ICE_SAXO, SAXO_DIRECT, SAXO_DIRECT_IR and TWOGOTRADE. ICE also reads stream values; its trading support is not established by this catalog. For the types not listed here no use of this field was found.
Liquidity consumption
For a 100,000-unit leg opened against a 1,000,000-unit quote, the remaining available liquidity is 1,000,000 with consume=0, 900,000 with consume=1, and 0 with consume=2.
A fresh quote update supplies new liquidity. Some error paths can restore the leg’s quantity if the current valid quote matches. With mode 2, this does not guarantee restoration of all the liquidity removed.