developers:predictionmarkets

This is an old revision of the document!


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.

Unlike traditional futures contracts, prediction market instruments resolve to one of two discrete values at expiration:

  • 1 – The event occurred; the “Yes” side wins.
  • 0 – The event did not occur; the “No” side wins.

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.

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's native price format. See System Price Format.
  • Order Type[TBD – settlement order type tag/value]
  • Quantity – Equal to your open position size.
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

Your application should identify a settlement message by checking for the following combination of fields in an order update:

  1. The instrument is a prediction market type. See Market Data & Definitions for how to identify prediction market instruments.
  2. The order update represents a closing fill (opposite side of the open position).
  3. Price is exactly 0 or 1.
  4. Order type is [TBD].

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.

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 FIX API.

Tag Field Name Settlement Value
1 Account Account holding the position being settled
8 BeginString FIX protocol version in use
9 BodyLength Number of bytes in message body
10 CheckSum Three-digit checksum for message validation
11 ClOrdID Client-assigned order identifier for the settlement order
14 CumQty Cumulative quantity filled so far
17 ExecID Unique identifier for this execution
21 HandlInst Order handling instruction (automated, no intervention)
31 LastPx Price of the last fill; 0 or 1 for settlement
32 LastQty Position size being closed
34 MsgSeqNum Sequence number of this message in the session
35 MsgType 8 (Execution Report)
37 OrderID Identifier assigned by broker/exchange for the settlement order
38 OrderQty Total quantity of the settlement order
39 OrdStatus Order Status
40 OrdType Order Type
44 Price 0 or 1
48 SecurityID Identifier for the underlying contract/instrument
49 SenderCompID Identifier of the sending firm/system
50 SenderSubID Sub-identifier of the sending system
52 SendingTime Timestamp the message was sent
54 Side Opposite of open position (1=Buy, 2=Sell)
55 Symbol Prediction market instrument identifier
56 TargetCompID Identifier of the receiving firm/system
59 TimeInForce Duration the settlement order remains valid
60 TransactTime Timestamp of the actual transaction/execution
97 LocateReqd Whether a locate was required (relevant for short positions)
107 SecurityDesc Name of the contract
151 LeavesQty Remaining quantity left to be filled (0 once fully settled)
167 SecurityType Type of instrument (e.g., option) being settled
200 MaturityMonthYear Contract expiration month/year
201 PutOrCall Indicates whether contract is a put or call
204 CustOrderCapacity Capacity in which the order was entered (customer/firm)
207 SecurityExchange Exchange where the contract is listed/settled
447 PartyIDSource Source/type of identifier used for the party
448 PartyID Identifier of the party involved in settlement (e.g., administrator)
452 PartyRole Role of the identified party in the settlement process
453 NoPartyIDs Number of party ID entries included in the message
<< 8 : 1=ExampleAccount| 8=FIX.4.2 | 9=451 | 10=180 | 11=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854 | 14=1 | 17=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854_0_T | 21=1 | 31=0 | 32=1 | 34=70 | 35=8 | 37=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854 | 38=1 | 39=2 | 48=Contract Ticker | 49=test | 50=T4FIX | 52=20260827-15:15:45.148 | 54=2 | 55=Market | 56=TradeBook | 59=0 | 60=20260827-15:15:45.147 | 97=Y | 107=Example Contract Name | 150=F | 151=0 | 167=OPT | 200=202608 | 201=1 | 204=0 | 207=Exchange Name | 447=D | 448=Administrator | 452=44 | 453=1 |
[9=451|35=8] EXECUTION: Market **SELL 1@1** | Order=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854 | Filled=1/1@0 | Remaining=0 | Status=Filled
<< 8 : 1=ExampleAccount| 8=FIX.4.2 | 9=451 | 10=180 | 11=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854 | 14=1 | 17=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854_0_T | 21=1 | 31=0 | 32=1 | 34=70 | 35=8 | 37=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854 | 38=1 | 39=2 | 48=Contract Ticker | 49=test | 50=T4FIX | 52=20260827-15:15:45.148 | 54=2 | 55=Market | 56=TradeBook | 59=0 | 60=20260827-15:15:45.147 | 97=Y | 107=Example Contract Name | 150=F | 151=0 | 167=OPT | 200=202608 | 201=1 | 204=0 | 207=Exchange Name | 447=D | 448=Administrator | 452=44 | 453=1 |
[9=451|35=8] EXECUTION: Market **SELL 1@0** | Order=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854 | Filled=1/1@0 | Remaining=0 | Status=Filled
<< 8 : 1=ExampleAccount| 8=FIX.4.2 | 9=451 | 10=180 | 11=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854 | 14=1 | 17=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854_0_T | 21=1 | 31=0 | 32=1 | 34=70 | 35=8 | 37=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854 | 38=1 | 39=2 | 48=Contract Ticker | 49=test | 50=T4FIX | 52=20260827-15:15:45.148 | 54=2 | 55=Market | 56=TradeBook | 59=0 | 60=20260827-15:15:45.147 | 97=Y | 107=Example Contract Name | 150=F | 151=0 | 167=OPT | 200=202608 | 201=1 | 204=0 | 207=Exchange Name | 447=D | 448=Administrator | 452=44 | 453=1 |
[9=451|35=8] EXECUTION: Market **BUY 1@0** | Order=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854 | Filled=1/1@0 | Remaining=0 | Status=Filled

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

Note: Confirm the contract multiplier for each prediction market instrument via the Instruments API.

  • developers/predictionmarkets.1787857642.txt.gz
  • Last modified: 2026/08/27 19:07
  • by chris