Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| developers:predictionmarkets [2026/04/29 19:45] – created chad | developers:predictionmarkets [2026/04/29 19:55] (current) – chad | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | Comin soon | + | ====== THIS PAGE IS UNDER CONSTRUCTION ====== |
| + | |||
| + | |||
| + | |||
| + | ====== Prediction Markets ====== | ||
| + | |||
| + | Prediction markets on the T4 platform are binary-outcome instruments that settle at either **0** or **1** (expressed as a price). This page explains how to interpret settlement messages so your application can correctly determine the outcome of a prediction market trade. | ||
| + | |||
| + | ===== Overview ===== | ||
| + | |||
| + | Unlike traditional futures contracts, prediction market instruments resolve to one of two discrete values at expiration: | ||
| + | |||
| + | * **1** -- The event occurred; the " | ||
| + | * **0** -- The event did not occur; the " | ||
| + | |||
| + | When a prediction market settles, the T4 platform generates a synthetic order update on the **opposite side** of your position at the settlement price. Your application should watch for this message to determine whether a held position resolved in or out of the money. | ||
| + | |||
| + | ===== Settlement Mechanics ===== | ||
| + | |||
| + | ==== How Settlement Works ==== | ||
| + | |||
| + | At market expiration, T4 will evaluate the outcome and issue a closing order update for each open position. The message will always be: | ||
| + | |||
| + | * **Side** -- Opposite of your open position (long positions receive a sell; short positions receive a buy). | ||
| + | * **Price** -- Either **0** (lost) or **1** (won), expressed in the instrument' | ||
| + | * **Order Type** -- '' | ||
| + | * **Quantity** -- Equal to your open position size. | ||
| + | |||
| + | ==== Outcome Matrix ==== | ||
| + | |||
| + | ^ Your Position ^ Settlement Price ^ Outcome ^ | ||
| + | | Long | 1 | Won -- event occurred | | ||
| + | | Long | 0 | Lost -- event did not occur | | ||
| + | | Short | 1 | Lost -- event occurred | | ||
| + | | Short | 0 | Won -- event did not occur | | ||
| + | |||
| + | ===== Identifying a Settlement Message ===== | ||
| + | |||
| + | Your application should identify a settlement message by checking for the following combination of fields in an order update: | ||
| + | |||
| + | - The instrument is a prediction market type. See [[developers: | ||
| + | - The order update represents a closing fill (opposite side of the open position). | ||
| + | - Price is exactly **0** or **1**. | ||
| + | - Order type is '' | ||
| + | |||
| + | <WRAP callout> | ||
| + | **Note:** Settlement messages are generated by the platform and do not represent a resting order in the book. They will not appear in the order book feed and should be treated as system-generated close events. | ||
| + | </ | ||
| + | |||
| + | ===== WebSocket API ===== | ||
| + | |||
| + | Settlement is communicated via the standard order update message on the Trading API WebSocket feed. Subscribe to the account feed and watch for order updates matching the criteria above. | ||
| + | |||
| + | For full message field definitions see [[developers: | ||
| + | |||
| + | ==== Example: Won (Long Position, Settles at 1) ==== | ||
| + | |||
| + | The following is an example order update received when a long position of 1 contract settles in the money. | ||
| + | |||
| + | <code javascript> | ||
| + | // [TBD -- WebSocket order update JSON/ | ||
| + | // Fields to highlight: | ||
| + | // | ||
| + | // | ||
| + | // | ||
| + | // | ||
| + | // | ||
| + | </ | ||
| + | |||
| + | ==== Example: Lost (Long Position, Settles at 0) ==== | ||
| + | |||
| + | <code javascript> | ||
| + | // [TBD -- WebSocket order update JSON/ | ||
| + | // Fields to highlight: | ||
| + | // | ||
| + | // | ||
| + | // | ||
| + | // | ||
| + | // | ||
| + | </ | ||
| + | |||
| + | ==== Example: Won (Short Position, Settles at 0) ==== | ||
| + | |||
| + | <code javascript> | ||
| + | // [TBD -- WebSocket order update JSON/ | ||
| + | // Fields to highlight: | ||
| + | // | ||
| + | // | ||
| + | // | ||
| + | // | ||
| + | // | ||
| + | </ | ||
| + | |||
| + | ===== FIX API ===== | ||
| + | |||
| + | Settlement is communicated via an **Execution Report (tag 35=8)** on the FIX session. The report will reflect the closing fill at the settlement price. | ||
| + | |||
| + | For full FIX tag definitions see [[developers: | ||
| + | |||
| + | ==== Key FIX Tags ==== | ||
| + | |||
| + | ^ Tag ^ Field Name ^ Settlement Value ^ | ||
| + | | 35 | MsgType | ||
| + | | 39 | OrdStatus | ||
| + | | 54 | Side | Opposite of open position (1=Buy, 2=Sell) | | ||
| + | | 44 | Price | 0 or 1 | | ||
| + | | 40 | OrdType | ||
| + | | 32 | LastQty | ||
| + | | 150 | ExecType | ||
| + | | 55 | Symbol | ||
| + | |||
| + | ==== Example: Won (Long Position, Settles at 1) ==== | ||
| + | |||
| + | < | ||
| + | [TBD -- FIX Execution Report example message] | ||
| + | 8=FIX.4.2|35=8|49=[SenderCompID]|56=[TargetCompID]| | ||
| + | 54=2|44=1|40=[TBD]|32=1|39=[TBD]|150=[TBD]|55=[Symbol]|10=[checksum] | ||
| + | </ | ||
| + | |||
| + | ==== Example: Lost (Long Position, Settles at 0) ==== | ||
| + | |||
| + | < | ||
| + | [TBD -- FIX Execution Report example message] | ||
| + | 8=FIX.4.2|35=8|49=[SenderCompID]|56=[TargetCompID]| | ||
| + | 54=2|44=0|40=[TBD]|32=1|39=[TBD]|150=[TBD]|55=[Symbol]|10=[checksum] | ||
| + | </ | ||
| + | |||
| + | ==== Example: Won (Short Position, Settles at 0) ==== | ||
| + | |||
| + | < | ||
| + | [TBD -- FIX Execution Report example message] | ||
| + | 8=FIX.4.2|35=8|49=[SenderCompID]|56=[TargetCompID]| | ||
| + | 54=1|44=0|40=[TBD]|32=1|39=[TBD]|150=[TBD]|55=[Symbol]|10=[checksum] | ||
| + | </ | ||
| + | |||
| + | ===== P&L Calculation ===== | ||
| + | |||
| + | Settlement P&L for a prediction market position is straightforward: | ||
| + | |||
| + | * **P&L per contract** = (Settlement Price - Entry Price) * Contract Multiplier * Quantity | ||
| + | * For a long at entry price 0.60 settling at 1: (1 - 0.60) * [multiplier] * qty = profit | ||
| + | * For a long at entry price 0.60 settling at 0: (0 - 0.60) * [multiplier] * qty = loss | ||
| + | |||
| + | <WRAP callout> | ||
| + | **Note:** Confirm the contract multiplier for each prediction market instrument via the [[developers: | ||
| + | </ | ||
| + | |||