Messages#

BatchBegin#

struct BatchBegin#

Identifies the beginning of a sequence of related messages.

BatchEnd#

struct BatchEnd#

Identifies the end of a sequence of related messages.

CancelAllOrders#

struct CancelAllOrders#

Fields required to cancel all orders.

Public Members

std::string_view account#

Account name.

CancelOrder#

struct CancelOrder#

Fields required to cancel an existing order.

Public Members

std::string_view account#

Account name.

uint32_t order_id = {}#

Order identifier.

std::string_view routing_id#

Routing identifier.

uint32_t version = {}#

Version number (strictly increasing, optional)

uint32_t conditional_on_version = {}#

Auto-reject if this version has positively failed (optional)

CreateOrder#

struct CreateOrder#

Fields required to create an order.

Public Members

std::string_view account#

Account name.

uint32_t order_id = {}#

Order identifier.

std::string_view exchange#

Exchange.

std::string_view symbol#

Symbol.

Side side = {}#

Order side.

PositionEffect position_effect = {}#

Position effect.

double max_show_quantity = NaN#

Quantity visible to market (requires exchange support)

OrderType order_type = {}#

Order type.

TimeInForce time_in_force = {}#

Time in force.

Mask<ExecutionInstruction> execution_instructions#

Execution instructions.

std::string_view order_template#

Order template.

double quantity = NaN#

Order quantity.

double price = NaN#

Limit price (depends on order_type)

double stop_price = NaN#

Stop price (depends on order_type and time_in_force)

std::string_view routing_id#

Routing identifier.

DownloadBegin#

struct DownloadBegin#

Identifies the beginning of a download sequence.

Public Members

std::string_view account#

Account name.

DownloadEnd#

struct DownloadEnd#

Identifies the end of a download sequence.

Public Members

std::string_view account#

Account name.

uint32_t max_order_id = {}#

Highest previous order identifier (as seen by gateway)

ExternalLatency#

struct ExternalLatency#

Update relating to external latency.

Public Members

uint16_t stream_id = {}#

Stream identifier.

std::string_view account#

Account name.

std::chrono::nanoseconds latency = {}#

latency measurement (1-way)

FundsUpdate#

struct FundsUpdate#

Update relating to available funds.

Public Members

uint16_t stream_id = {}#

Stream identifier.

std::string_view account#

Account name.

std::string_view currency#

Currency.

double balance = NaN#

Current funds.

double hold = NaN#

Funds on hold.

std::string_view external_account#

External account name.

GatewaySettings#

struct GatewaySettings#

Gateway settings.

Public Members

Mask<SupportType> supports#

Supported update types.

uint16_t mbp_max_depth = {}#

MBP max depth.

double mbp_tick_size_multiplier = NaN#

MBP multiplier used to manage prices as integer.

double mbp_min_trade_vol_multiplier = NaN#

MBP multiplier used to manage quantities as integer.

bool mbp_allow_remove_non_existing = false#

MBP allow remove operation on non-existing level?

bool mbp_allow_price_inversion = false#

MBP allow price inversion?

bool mbp_checksum = false#

MBP compute checksum?

bool oms_download_has_state = false#

OMS download includes state information?

bool oms_download_has_routing_id = false#

OMS download includes routing_id?

RequestIdType oms_request_id_type = {}#

OMS request identifier type.

GatewayStatus#

struct GatewayStatus#

Update relating to current gateway service status.

Public Members

std::string_view account#

Account name.

Mask<SupportType> supported#

Supported update types.

Mask<SupportType> available#

Available update types (union of all streams, one or more available)

Mask<SupportType> unavailable#

Unavailable update types (union of all streams, one or more unavailable)

MarketByOrderUpdate#

struct MarketByOrderUpdate#

Update relating to market by order.

Public Members

uint16_t stream_id = {}#

Stream identifier.

std::string_view exchange#

Exchange.

std::string_view symbol#

Symbol.

std::span<MBOUpdate> bids#

List of bids.

std::span<MBOUpdate> asks#

List of asks.

UpdateType update_type = {}#

Update type.

std::chrono::nanoseconds exchange_time_utc = {}#

Timestamp (from exchange, UTC)

int64_t exchange_sequence = {}#

Latest sequence number (from exchange)

Decimals price_decimals = {}#

Decimal digits required to represent prices.

Decimals quantity_decimals = {}#

Decimal digits required to represent quantities.

uint32_t checksum = {}#

Checksum (internal)

MarketByPriceUpdate#

struct MarketByPriceUpdate#

Update relating to market by price.

Public Members

uint16_t stream_id = {}#

Stream identifier.

std::string_view exchange#

Exchange.

std::string_view symbol#

Symbol.

std::span<MBPUpdate> bids#

List of bids.

std::span<MBPUpdate> asks#

List of asks.

UpdateType update_type = {}#

Update type.

std::chrono::nanoseconds exchange_time_utc = {}#

Timestamp (from exchange, UTC)

int64_t exchange_sequence = {}#

Latest sequence number (from exchange)

Decimals price_decimals = {}#

Decimal digits required to represent prices (dynamic)

Decimals quantity_decimals = {}#

Decimal digits required to represent quantities (dynamic)

uint16_t max_depth = {}#

Maximum depth (zero means unlimited)

uint32_t checksum = {}#

Checksum (internal)

MarketStatus#

struct MarketStatus#

Update relating to current trading status of a symbol.

Public Members

uint16_t stream_id = {}#

Stream identifier.

std::string_view exchange#

Exchange.

std::string_view symbol#

Symbol.

TradingStatus trading_status = {}#

Trading status.

ModifyOrder#

struct ModifyOrder#

Fields required to modify an existing order.

Public Members

std::string_view account#

Account name.

uint32_t order_id = {}#

Order identifier.

double quantity = NaN#

New (total) quantity.

double price = NaN#

New limit price.

std::string_view routing_id#

Routing identifier.

uint32_t version = {}#

Version number (strictly increasing, optional)

uint32_t conditional_on_version = {}#

Auto-reject if this version has positively failed (optional)

OrderAck#

struct OrderAck#

Acknowledgement that a create/modify/cancel order request has been seen by gateway/exchange.

Public Members

uint16_t stream_id = {}#

Stream identifier.

std::string_view account#

Account name.

uint32_t order_id = {}#

Order identifier.

std::string_view exchange#

Exchange.

std::string_view symbol#

Symbol.

Side side = {}#

Side.

RequestType type = {}#

Request type.

Origin origin = {}#

Origin of ack.

RequestStatus status = {}#

Request status.

Error error = {}#

Error code.

std::string_view text#

Descriptive text.

std::string_view request_id#

Request identifier.

std::string_view external_account#

External account name.

std::string_view external_order_id#

External order identifier.

std::string_view routing_id#

Routing identifier.

uint32_t version = {}#

Version number (strictly increasing, optional)

std::chrono::nanoseconds round_trip_latency = {}#

Round-trip latency between gateway and exchange.

OrderUpdate#

struct OrderUpdate#

Update relating to current status of an order.

Public Members

uint16_t stream_id = {}#

Stream identifier.

std::string_view account#

Account name.

uint32_t order_id = {}#

Order identifier.

std::string_view exchange#

Exchange.

std::string_view symbol#

Symbol.

Side side = {}#

Side.

PositionEffect position_effect = {}#

Position effect.

double max_show_quantity = NaN#

Quantity visible to market (requires exchange support)

OrderType order_type = {}#

Order type.

TimeInForce time_in_force = {}#

Time in force.

Mask<ExecutionInstruction> execution_instructions#

Execution instructions.

std::string_view order_template#

Order template.

std::chrono::nanoseconds create_time_utc = {}#

Created timestamp (UTC)

std::chrono::nanoseconds update_time_utc = {}#

Updated timestamp (UTC)

std::string_view external_account#

External account name.

std::string_view external_order_id#

External order identifier.

OrderStatus status = {}#

Order status.

double quantity = NaN#

Quantity (total, indicative)

double price = NaN#

Price.

double stop_price = NaN#

Stop price (depends on order_type and time_in_force)

double remaining_quantity = NaN#

Quantity (remaining)

double traded_quantity = NaN#

Quantity (total traded)

double average_traded_price = NaN#

Average price (total traded)

double last_traded_quantity = NaN#

Traded quantity (last trade)

double last_traded_price = NaN#

Traded price (last trade)

Liquidity last_liquidity = {}#

Liquidity indicator (last trade)

std::string_view routing_id#

Routing identifier.

uint32_t max_request_version = {}#

Last request version.

uint32_t max_response_version = {}#

Last response version.

uint32_t max_accepted_version = {}#

Last accepted version.

UpdateType update_type = {}#

Update type.

std::string_view user#

User name (optional, only relevant for drop-copy)

PositionUpdate#

struct PositionUpdate#

Update relating to current position for a symbol/side/account.

Public Members

uint16_t stream_id = {}#

Stream identifier.

std::string_view account#

Account name.

std::string_view exchange#

Exchange.

std::string_view symbol#

Symbol.

std::string_view external_account#

External account name.

double long_quantity = NaN#

Current long position.

double short_quantity = NaN#

Current short position.

double long_quantity_begin = NaN#

Long position at period begin.

double short_quantity_begin = NaN#

Short position at period begin.

RateLimitUsage#

struct RateLimitTrigger#

Rate-limit trigger.

Public Members

std::string_view name#

Configuration name.

Origin origin = {}#

Origin.

RateLimitType type = {}#

Rate-limit type.

std::span<User const> users#

Sorted list of users being affected (empty list means: all)

std::span<Account const> accounts#

Sorted list of accounts being affected (empty list means: all)

std::chrono::nanoseconds ban_expires = {}#

System time when ban expires (zero means: ban is no longer effective)

std::string_view triggered_by#

Trigger activated by this user.

BufferCapacity buffer_capacity = {}#

Buffer capacity (indicator for how full or empty the buffer is)

uint32_t remaining_requests = {}#

The buffer becomes full if this many requests are sent instantly.

ReferenceData#

struct ReferenceData#

Update relating to the reference data for a symbol.

Public Members

uint16_t stream_id = {}#

Stream identifier.

std::string_view exchange#

Exchange.

std::string_view symbol#

Symbol.

std::string_view description#

Description.

SecurityType security_type = {}#

Security type.

std::string_view base_currency#

Base currency.

std::string_view quote_currency#

Quote currency.

std::string_view margin_currency#

Margin currency.

std::string_view commission_currency#

Commission currency.

double tick_size = NaN#

Minimum price increment.

double multiplier = NaN#

Multiplier (notional)

double min_notional = NaN#

Minimum notional (price * quantity)

double min_trade_vol = NaN#

Minimum trade volume.

double max_trade_vol = NaN#

Maximum trade volume.

double trade_vol_step_size = NaN#

Trade volume step size.

OptionType option_type = {}#

Option type.

std::string_view strike_currency#

Strike currency.

double strike_price = NaN#

Strike price.

std::string_view underlying#

Underlying instrument.

std::string_view time_zone#

Time-zone.

std::chrono::days issue_date = {}#

Issue date.

std::chrono::days settlement_date = {}#

Settlement date.

std::chrono::seconds expiry_datetime = {}#

Expiry datetime.

std::chrono::seconds expiry_datetime_utc = {}#

Expiry datetime.

bool discard = false#

Discard market data updates?

StatisticsUpdate#

struct StatisticsUpdate#

Update relating to statistics published by the exchange.

Public Members

uint16_t stream_id = {}#

Stream identifier.

std::string_view exchange#

Exchange.

std::string_view symbol#

Symbol.

std::span<Statistics> statistics#

List of statistics.

UpdateType update_type = {}#

Update type.

std::chrono::nanoseconds exchange_time_utc = {}#

Timestamp (from exchange, UTC)

StreamStatus#

struct StreamStatus#

Update relating to current stream status.

Public Members

uint16_t stream_id = {}#

Stream identifier.

std::string_view account#

Account name.

Mask<SupportType> supports#

Supported update types.

Transport transport = {}#

Transport type (layer 4)

Protocol protocol = {}#

Communication protocol (layer 7)

Mask<Encoding> encoding#

Message encoding.

Priority priority = {}#

Priority.

ConnectionStatus connection_status = {}#

Connection status (when applicable)

TopOfBook#

struct TopOfBook#

Update relating to top of book (aggregate price)

Public Members

uint16_t stream_id = {}#

Stream identifier.

std::string_view exchange#

Exchange.

std::string_view symbol#

Symbol.

Layer layer#

Top of book.

UpdateType update_type = {}#

Update type.

std::chrono::nanoseconds exchange_time_utc = {}#

Timestamp (from exchange, UTC)

int64_t exchange_sequence = {}#

Latest sequence number (from exchange)

TradeSummary#

struct TradeSummary#

Update relating to trade reporting by the exchange.

Public Members

uint16_t stream_id = {}#

Stream identifier.

std::string_view exchange#

Exchange.

std::string_view symbol#

Symbol.

std::span<Trade> trades#

List of trades.

std::chrono::nanoseconds exchange_time_utc = {}#

Timestamp (from exchange, UTC)

int64_t exchange_sequence = {}#

Latest sequence number (from exchange)

TradeUpdate#

struct TradeUpdate#

Update relating to order being partially or fully filled.

Public Members

uint16_t stream_id = {}#

Stream identifier.

std::string_view account#

Account name.

uint32_t order_id = {}#

Order identifier.

std::string_view exchange#

Exchange.

std::string_view symbol#

Symbol.

Side side = {}#

Side.

PositionEffect position_effect = {}#

Position effect.

std::chrono::nanoseconds create_time_utc = {}#

Created timestamp (UTC)

std::chrono::nanoseconds update_time_utc = {}#

Updated timestamp (UTC)

std::string_view external_account#

External account name.

std::string_view external_order_id#

External order identifier.

std::span<Fill> fills#

List of fills.

std::string_view routing_id#

Routing identifier.

UpdateType update_type = {}#

Update type.

std::string_view user#

User name (optional, only relevant for drop-copy)