developers:websocket:pricing

This is an old revision of the document!


Pricing and Data Types

The WebSocket API represents market prices using the Price type, and cash values in the Decimal type. Both of these types wrap a string value for precision and consistency across different programming languages.

Note: Clients should parse Price and Decimal values into their programming language’s native decimal if available.

The Price type is used for market prices, while the Decimal type is used for cash values in messages. Both follow the same structure:

  • Price – Represents a price in the market (e.g., bid/ask prices, last traded price).
  • Decimal – Represents numerical values such as volumes, margins, or risk parameters.

Example representation:

 
Price = "4200.50"
Decimal = "5.25"

The T4 API Tools repository provides tools for converting between .NET decimals and Protobuf Price/Decimal types.

Note: Reach out to support if you would like an API tool for a language we have not covered yet.

Platform Proto Converter Tool
.Net ProtoConverters.cs

The WebSocket API provides prices exactly as published by the exchange, using a decimal format. However, understanding price movement requires knowledge of minimum price increments and point value calculations.

Markets do not trade at arbitrary price levels; instead, they move in predefined steps known as the Minimum Price Increment. This defines the smallest amount by which a price can change.

For example, if a market has a MinPriceIncrement of 25, price levels would move as follows:

  • 4000.00
  • 4025.00
  • 4050.00
  • 4075.00
  • 4100.00

This ensures that all price movements align with the market’s allowed increments.

*Reference:* The MinPriceIncrement field is found in the MarketDetails message.

To determine the cash value of a price movement, use the Point Value. This represents the dollar value of a single price unit.

The formula is:

  • *(Price2 - Price1) × PointValue = Cash Equivalent For example, if PointValue is 0.5 (as used in the ES market): * Price1 = 4200.00 * Price2 = 4225.00 * Point Value = 0.5 (4225.00 - 4200.00) × 0.5 = 12.5 This means a move from 4200.00 to 4225.00 corresponds to $12.50 per contract. *Reference:* The PointValue field is found in the MarketDetails** message.
  • developers/websocket/pricing.1741991792.txt.gz
  • Last modified: 2025/03/14 22:36
  • by chad