====== 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. Clients should parse **Price** and **Decimal** values into their programming language’s native **decimal** if available. ===== Price and Decimal Types ===== 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" ===== Proto Converter Tools ===== The [[https://github.com/CTS-Futures/t4-api-tools|T4 API Tools repository]] provides tools for converting between .NET decimals and Protobuf **Price**/**Decimal** types. Reach out to support if you would like an API tool for a language we have not covered yet. ^ **Platform** ^ **Proto Converter Tool** ^ | **.Net** | [[https://github.com/CTS-Futures/t4-api-tools|ProtoConverters.cs]] | ===== Understanding Price Representation ===== 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**. ===== Minimum Price Increment ===== 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. ===== Converting Price Differences to Cash Value ===== To determine the cash value of a price movement, use the **Point Value**. This represents the dollar value of a single price unit. Formula: ''(Price2 - Price1) × PointValue = Cash Equivalent'' Example: 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.