Market Data & Quoting Messages

Overview

ACY Connect currently supports Full refresh streaming quotes, which is specified in the MDUpdateType <265> field of the first Market Data Request (35=V). This specification will be remained for subsequent requests within this session.

Messaging Sequence

sequenceDiagram participant Client as Client FIX Engine participant ACY as ACY Connect Client->>ACY: MarketDataRequest (35=V),SubscriptionRequestType <263> = 1 Subscribe to request market data ACY->>Client: MarketDataSnapshotFullRefresh (35=W) Respond market data snapshot alt Subscription Reject ACY->>Client: MarketDataRequestReject (35=Y) Subscription request rejected else Unsubscribe Client->>ACY: MarketDataRequest (35=V),SubscriptionRequestType <263> = 2 Unsubscribe market data request end

Market Data Request (35=V)

The Market Data Request message is used to subscribe to streaming market data feeds. This message enables clients to request real-time price updates for specified instruments with configurable refresh mechanisms.

Usage Guidelines

  • Single Symbol Recommendation – Though multiple symbols are supported, send one request per symbol for cleaner error handling and easier subscription control.
  • Update Type Consistency – The MDUpdateType set in the first request defines the delivery method for the entire session.
  • Session Persistence – Subscriptions stay active until explicitly cancelled or the session ends.

Message Structure

Tag Field Name Required Type Description
<Standard Header> Y - MsgType <35> = A
262 MDReqID Y String Unique identifier for this market data subscription request per session. Should include timestamp components to ensure session-wide uniqueness. Maximum length: 64 characters.
263 SubscriptionRequestType Y char Specifies the type of market data subscription being requested.
Valid Values:
1 = Snapshot Plus Updates (Subscribe)
2 = Disable Previous Snapshot + Update Request (Unsubscribe)
264 MarketDepth Y int Indicates the number of price levels requested. Standard values are 1–10, and 0 requests the full available depth.
Note: Regardless of the value sent, the system currently always publishes 6 price levels of quotes.
265 MDUpdateType Y int Defines the update mechanism for streaming data delivery.
Must be set to 0 = Full Refresh (Complete book snapshots)
267 NoMDEntryTypes Y int Number of market data entry types being requested. Must be 2 for standard bid/offer subscription.
>269 MDEntryType Y char Specifies the side of market data being requested.
Better include both following Valid Values:
0 = Bid
1 = Offer (Ask)
146 NoRelatedSym Y int Number of symbols being subscribed in this request. Supports both single and multiple symbol subscription.
>55 Symbol Y String Instrument symbol (for FX, use CCY1CCY2 format). Supports both single and multiple symbol subscription.

Market Data Request Reject (35=Y)

The Market Data Request Reject (Y) is sent in response to an invalid or unsupported Market Data Request (V), due to business or technical reasons. It provides detailed rejection reasons to facilitate troubleshooting.

Error Handling

  • Symbol Validation – Requests with invalid or unavailable symbols are rejected.
  • Parameter Validation – Unsupported MarketDepth / MDUpdateType combinations trigger rejection.
  • Rate Limiting – Too many requests in quick succession may lead to temporary rejections.

Message Structure

Tag Field Name Required Type Description
<Standard Header> Y - MsgType <35> = Y
262 MDReqID Y String Echo of the MDReqID from the rejected Market Data Request message.
281 MDReqRejReason N char Enumerated reason code for the rejection.
58 Text N String Human-readable explanation of the rejection reason. Provides additional context beyond the standardized reason code.

Market Data Snapshot Full Refresh (35=W)

The Market Data messages are used as the response to a Market Data Request (V) message, and provides a complete market data snapshot for subscribed symbols. This message contains the full order book state at the time of transmission.

Message Structure

Tag Field Name Required Type Description
<Standard Header> Y - MsgType <35> = W
262 MDReqID Y String References the original Market Data Request that initiated this subscription.
55 Symbol Y String Instrument identifier for which market data is being provided.
268 NoMDEntries Y NumInGroup Count of market data entries in this message, which represents bid/offer pairs plus any trade information.
>269 MDEntryType Y char Type of market data entry.
Valid Values:
0 = Bid
1 = Offer
>270 MDEntryPx Y Price Price level for this market data entry. Precision follows instrument-specific tick size rules.
>271 MDEntrySize N Qty Available quantity at the specified price level. Absence indicates price-only information.
>276 QuoteCondition N MultipleValueString Describes the state and tradability of the quote.
Valid Values:
A = Tradeable Quote
>282 MDEntryOriginator N String Identifies the source of this market data entry.
>299 QuoteEntryID Y String Unique identifier for this market data entry within the session context.

Quote Cancel (35=Z)

Enables cancellation of previously submitted quotes. Supports both individual quote cancellation and bulk cancellation operations.

Cancellation Behavior

  • Selective Cancellation – QuoteCancelType=1 cancels specific symbols while keeping others active.
  • Bulk Operations – QuoteCancelType=4 cancels all active quotes in one step.
  • Confirmation – Cancellations can trigger market data updates to show removed liquidity.
  • Error Handling – Canceling non-existent quotes is acknowledged without error (idempotent).

Message Structure

Tag Field Name Required Type Description
<Standard Header> Y - MsgType <35> = Z
117 QuoteID Y String Unique identifier for this quote cancellation request. Should be distinct from any previously used QuoteID values.
298 QuoteCancelType Y int Specifies the scope of the cancellation operation.
Valid Values:
1 = Cancel for specific Symbol(s)
4 = Cancel All Quotes
295 NoQuoteEntries C NumInGroup Required when QuoteCancelType = 1. Specifies the number of symbols being cancelled.
>55 Symbol C String Instrument identifier for quote cancellation. Required when NoQuoteEntries > 0. Must match previously quoted symbols.