Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
developers:fixapi:collateralreport [2025/09/12 01:39] – ↷ Page moved and renamed from developers:fixapi.collateralreport to developers:fixapi:collateralreport chad | developers:fixapi:collateralreport [2025/09/17 01:10] (current) – chad | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== Collateral Report | + | ====== COLLATERAL REPORT [35=BA] ====== |
- | **Application Reports** | + | |
- | The **Collateral Report** message | + | The Collateral Report message |
- | * Account | + | |
- | * Account updates | + | |
- | * Account | + | |
- | * Account balances | + | |
- | Reports are generated as a result of: | + | ===== Report Types (QtyType 854) ===== |
- | * Listing Account Details for a connected user | + | |
- | * Account Subscription Requests | + | |
- | * Account Updates | + | |
- | * Account Position Updates | + | |
- | * Account and Exchange notifications | + | |
- | * User/Trader Information Requests | + | |
- | ---- | + | ^ Type ^ Value ^ Purpose ^ Key Fields ^ |
+ | | Account List | 1 | List user's accessible accounts | Account (1), PartyID (448), StartCash (921) | | ||
+ | | Account Details | 2 | Account configuration/ | ||
+ | | Account Update | 3 | Current balances/ | ||
+ | | Position Update | 4 | Position details by market | SecurityID (48), Quantity (53), Working orders (3002/3003) | | ||
+ | | Account Notice | 5 | Account-level alerts | Text (58) | | ||
+ | | Exchange Notice | 6 | Exchange bulletins | Text (58) | | ||
+ | | Market RFQ | 7 | Request for quote | SecurityID (48), Text (58) | | ||
+ | | User Info | 8 | Trader information | UserName (3141), UserRoles (3145) | | ||
- | === Responding to the Request to List User Accounts | + | ===== Message Specification |
- | A **Collateral Inquiry** (`MsgType=BB`, `Tag 263=0`) returns Collateral Reports for each account the user has access to: | + | |
- | * **Account name** in `Account` (`Tag 1`) | + | |
- | * **Account ID** in `PartyID` (`Tag 448`) | + | |
- | * Basic balance info (`StartCash` | + | |
- | Differentiated by **Quantity Type** = Account-List (`Tag 854=1`). | + | **Message Direction:** T4 → Client |
- | ---- | + | ^ Tag ^ Field Name ^ Type ^ Req'd ^ Description ^ |
+ | | | **Message Header** | | Y | MsgType = BA | | ||
+ | | 909 | CollInquiryID | String | O | Original inquiry ID | | ||
+ | | 908 | CollRptID | String | Y | Unique report ID | | ||
+ | | 854 | QtyType | Int | Y | Report type (see table) | | ||
+ | | 910 | CollStatus | String | O | Entity status | | ||
+ | | 911 | TotNumReports | Int | O | Total reports in set | | ||
+ | | 912 | LastRptRequested | Boolean | O | Y=Last report | | ||
+ | | 1 | Account | String | O | Account code | | ||
+ | | 453 | NoPartyIDs | Int | O | Number of party IDs | | ||
+ | | →448 | PartyID | String | C | Account/ | ||
+ | | →452 | PartyRole | Int | C | 22=Exchange, | ||
+ | | | **=== Balance Fields (Type 3) ===** | | | | | ||
+ | | 921 | StartCash | Float | O | Beginning balance | | ||
+ | | 899 | MarginExcess | Float | O | Available margin | | ||
+ | | 900 | TotalNetValue | Float | O | Realized P&L | | ||
+ | | 901 | CashOutstanding | Float | O | Option premium | | ||
+ | | 53 | Quantity | String | O | "Total Long Short" positions | | ||
+ | | | **=== Position Fields (Type 4) ===** | | | | | ||
+ | | 48 | SecurityID | String | O | T4 Market ID | | ||
+ | | 55 | Symbol | String | O | T4 Contract ID | | ||
+ | | 207 | SecurityExchange | String | O | T4 Exchange ID | | ||
+ | | 167 | SecurityType | String | O | FUT, OPT, STK | | ||
+ | | 75 | TradeDate | LocalMktDate | O | Position date | | ||
+ | | 3000 | Buys | Int | O | Lots bought today | | ||
+ | | 3001 | Sells | Int | O | Lots sold today | | ||
+ | | 3002 | WorkingBuys | Int | O | Open buy orders | | ||
+ | | 3003 | WorkingSells | Int | O | Open sell orders | | ||
+ | | 3011 | TotalOpenVolume | Int | O | Net open position | | ||
+ | | | **=== Account Config (Type 2) ===** | | | | | ||
+ | | 3117 | MaxClipSize | Int | O | Max order size | | ||
+ | | 3119 | MaxPosition | Int | O | Position limit per market | | ||
+ | | 3115 | MarginPC | Float | O | Day margin percentage | | ||
+ | | 3123 | OvernightMarginPC | Float | O | Overnight margin percentage | | ||
+ | | 3121 | Mode | Char | O | M=Market, C=Contract, A=Account | | ||
+ | | 3105 | DayLossLimit | Float | O | Daily loss limit | | ||
+ | | 58 | Text | String | O | Notifications (Type 5/6/7) | | ||
+ | | | **Message Trailer** | | Y | | | ||
- | === Responding to Account Subscription Requests | + | ===== Calculation Formulas |
- | A subscription request (`MsgType=BB`, `Tag 263=1`) returns | + | |
- | | + | |
- | | + | * **Working Orders** = WorkingBuys (3002) - WorkingSells (3003) |
- | * Account updates | + | |
- | | + | |
- | **Collateral Report Categories: | + | ===== Sample Messages |
- | + | ||
- | 1. **Account Details** | + | |
- | * Privileges, permissions, | + | |
- | * **Quantity Type** | + | |
- | + | ||
- | 2. **Account Updates** | + | |
- | * Instantaneous balances: Start Cash, Margin Requirements, | + | |
- | * **Quantity Type** | + | |
- | * Can be received asynchronously without an inquiry | + | |
- | * Cash available | + | |
- | + | ||
- | 3. **Account Position Updates** | + | |
- | * Open positions, working orders, fills by market | + | |
- | * Includes `Buys` (`3002`), `Sells` (`3003`), `Short/ | + | |
- | * **Quantity Type** | + | |
- | * Can be received asynchronously | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | === Asynchronous Account Notifications === | + | |
- | Unsolicited Collateral Reports may be received for: | + | |
- | * **Account notifications** (`Tag 854=5`) | + | |
- | * **Exchange notifications** (`Tag 854=6`) | + | |
- | * **Market RFQ** (`Tag 854=7`) | + | |
- | + | ||
- | Enabled by default for all FIX connections. | + | |
- | Can be suppressed with **Logon** `MsgType=CB` (`Tag 372=CB`). | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | === Message Dictionary === | + | |
- | ^ Tag ^ Field Name ^ Req'd ^ Comments | + | |
- | | **Standard Header** | Y | MsgType = BA | | + | |
- | | 909 | CollInquiryID | + | |
- | | 908 | CollRptID | + | |
- | | 910 | CollStatus | + | |
- | | 911 | TotNumReports | + | |
- | | 912 | LastReportRequested | + | |
- | | 1 | Account | + | |
- | | **Start Repeating Group** | + | |
- | | 453 | NoPartyIDs | + | |
- | | 448 | PartyID | + | |
- | | 452 | PartyRole | + | |
- | | **End Repeating Group** | + | |
- | | **Start Repeating Group** | + | |
- | | 136 | NoMiscFees | + | |
- | | 137 | MiscFeeAmt | + | |
- | | 138 | MiscFeeCurr | + | |
- | | 139 | MiscFeeType | + | |
- | | 891 | MiscFeeBasis | + | |
- | | **End Repeating Group** | + | |
- | | 58 | Text | N | Free text | | + | |
- | | 899 | MarginExcess | + | |
- | | 900 | TotalNetValue | + | |
- | | 901 | CashOutstanding | + | |
- | | 921 | StartCash | + | |
- | | 53 | Quantity | + | |
- | | 854 | QuantityType | + | |
- | | 48 | SecurityID | + | |
- | | 55 | Symbol | + | |
- | | 207 | SecurityExchange | + | |
- | | 167 | SecurityType | + | |
- | | 201 | PutOrCall | + | |
- | | 202 | StrikePrice | + | |
- | | 75 | TradeDate | + | |
- | | 3000 | Buys | N | Lots bought today | | + | |
- | | 3001 | Sells | N | Lots sold today | | + | |
- | | 3002 | WorkingBuys | + | |
- | | 3003 | WorkingSells | + | |
- | | 3004 | OvernightUPL | + | |
- | | 3005 | AverageOpenTicks | + | |
- | | 3006 | OvernightPosition | + | |
- | | 3007 | CurrencyRate | + | |
- | | 3008 | TotalBuyFillTicks | + | |
- | | 3009 | TotalSellFillTicks | + | |
- | | 3010 | TotalOpenTicks | + | |
- | | 3011 | TotalOpenVolume | + | |
- | | 3100 | AccountID | + | |
- | | 3101 | AccountName | + | |
- | | 3102 | ActiveTimeStart | + | |
- | | 3103 | ActiveTimeStop | + | |
- | | 3104 | BlockExpiring | + | |
- | | 3105 | DayLossLimit | + | |
- | | 3106 | Deleted | + | |
- | | 3107 | DisplayName | + | |
- | | 3108 | EditMargin | + | |
- | | 3109 | EMail | N | Fill notification email | | + | |
- | | 3110 | Enabled | + | |
- | | 3111 | Firm | N | Firm name | | + | |
- | | 3112 | FirmID | + | |
- | | 3113 | LossLimit | + | |
- | | 3114 | LossLimitPC | + | |
- | | 3115 | MarginPC | + | |
- | | 3116 | MaxAccountPosition | + | |
- | | 3117 | MaxClipSize | + | |
- | | 3118 | MaxContractMargin | + | |
- | | 3119 | MaxPosition | + | |
- | | 3120 | MinBalance | + | |
- | | 3121 | Mode | N | M=By Market, C=By Contract, A=By Account | + | |
- | | 3122 | OrderRouting | + | |
- | | 3123 | OvernightMarginPC | + | |
- | | 3124 | ParentFirmID | + | |
- | | 3125 | PLRollover | + | |
- | | 3126 | PositionRollover | + | |
- | | 3127 | PreTradeDisabled | + | |
- | | 3128 | RiskAlerts | + | |
- | | 3131 | StrategyMaxClipSize | + | |
- | | 3132 | StrategyMaxPosition | + | |
- | | 3133 | StrategyTotalPitTrades | + | |
- | | 3134 | TotalPitTrades | + | |
- | | 3135 | UsePLForMargin | + | |
- | | 3136 | WarningThresholdLossLimit | N | Warning threshold % of Loss Limit | | + | |
- | | 3137 | WarningThresholdMargin | + | |
- | | 3138 | WarningThresholdPL | + | |
- | | 3139 | WideMarket | + | |
- | | 3140 | UserID | + | |
- | | 3141 | UsrName | + | |
- | | 3142 | UserFirm | + | |
- | | 3143 | UserParentFirm | + | |
- | | 3144 | UserIsMaster | + | |
- | | 3145 | UserRoles | + | |
- | | 3146 | UserType | + | |
- | | 12 | Commission | + | |
- | | 13 | CommType | + | |
- | | **Standard Trailer** | Y | + | |
- | + | ||
- | + | ||
- | Sample Messages | + | |
- | + | ||
- | Account Details | + | |
+ | **Account Update (Type 3):** | ||
< | < | ||
- | [FIXCOLLATERALINQUIRY] 34=64|49=T4Example|56=T4|52=20121218-15: | + | 8=FIX.4.2|9=200|35=BA|49=T4|56=T4Example|50=T4FIX|52=20121218-15: |
- | 448=9A65B2FE-1D27-4230-A942-F60983CFB33B|452=24|938=1|896=0| | + | 908=cr-634914191578066280|909=ci-12/ |
- | + | 1=Account1|921=-3501094.92|899=50935|900=0|901=0|53=15 13 -2|10=234| | |
- | [MsgSeqNum] 34 = 64 | + | |
- | [SenderCompID] 49 = T4Example | + | |
- | [TargetCompID] 56 = T4 | + | |
- | [SendingTime] 52 = 20121218-15: | + | |
- | [CollInquiryID] 909 = ci-12/ | + | |
- | [SubscriptionRequestType] 263 = 2 (DISABLE_PREVIOUS_SNAPSHOT_PLUS_UPDATE_REQUEST) | + | |
- | [ResponseTransportType] 725 = 0 (IN_BAND) | + | |
- | [NoPartyIDs] 453 = 1 | + | |
- | [PartyID] 448 = 9A65B2FE-1D27-4230-A942-F60983CFB33B | + | |
- | [PartyRole] 452 = 24 (CUSTOMER_ACCOUNT) | + | |
- | [NoCollInquiryQualifier] 938 = 1 | + | |
- | [CollInquiryQualifier] 896 = 0 (CUSTOMER_ACCOUNTS) | + | |
- | + | ||
- | + | ||
- | + | ||
- | [fixcollateralreport] 34=1463|49=T4|56=T4Example|50=T4FIX|52=20121218-15: | + | |
- | |910=3|911=1|912=Y|1=Account1|453=1|448=9A65B2FE-1D27-4230-A942-F60983CFB33B|136=1|137=-1|139=C|854=2 | + | |
- | |3100=9A65B2FE-1D27-4230-A942-F60983CFB33B|3101=Account1|3104=-1|3105=0|3106=N|3108=N|3110=Y|3111=test | + | |
- | |3112=2884B215-4A4B-4E9D-A40E-F8212D713E13|3113=0|3114=0|3115=100|3116=-1|3117=10|3118=-1|3119=-1|3120=0|3121=C | + | |
- | |3122=N|3123=100|3124=2884B215-4A4B-4E9D-A40E-F8212D713E13|3125=Y|3126=Y|3127=Y|3128=Y|3131=1000 | + | |
- | |3132=-1|3133=100|3134=100|3135=Y|3136=-1|3137=-1|3138=10|3139=-1|12=2.5| | + | |
- | + | ||
- | [MsgSeqNum] 34 = 1463 | + | |
- | [SenderCompID] 49 = T4 | + | |
- | [TargetCompID] 56 = T4Example | + | |
- | [SenderSubID] 50 = T4FIX | + | |
- | [SendingTime] 52 = 20121218-15: | + | |
- | [CollRptID] 908 = cr-634914191578066280 | + | |
- | [CollInquiryID] 909 = ci-12/ | + | |
- | [CollStatus] 910 = 3 (ASSIGNED) | + | |
- | [TotNumReports] 911 = 1 | + | |
- | [LastRptRequested] 912 = Y (YES) | + | |
- | [Account] 1 = Account1 | + | |
- | [NoPartyIDs] 453 = 1 | + | |
- | [PartyID] 448 = 9A65B2FE-1D27-4230-A942-F60983CFB33B | + | |
- | [NoMiscFees] 136 = 1 | + | |
- | [MiscFeeAmt] 137 = -1 | + | |
- | [MiscFeeType] 139 = C | + | |
- | [QtyType] 854 = 2 (ACCOUNT_DETAILS) | + | |
- | [AccountID] 3100 = 9A65B2FE-1D27-4230-A942-F60983CFB33B | + | |
- | [AccountName] 3101 = Account1 | + | |
- | [BlockExpiring] 3104 = -1 | + | |
- | [DayLossLimit] 3105 = 0 | + | |
- | [Deleted] 3106 = N | + | |
- | [EditMargin] 3108 = N | + | |
- | [Enabled] 3110 = Y | + | |
- | [Firm] 3111 = test | + | |
- | [FirmID] 3112 = 2884B215-4A4B-4E9D-A40E-F8212D713E13 | + | |
- | [LossLimit] 3113 = 0 | + | |
- | [LossLimitPC] 3114 = 0 | + | |
- | [MarginPC] 3115 = 100 | + | |
- | [MaxAccountPosition] 3116 = -1 | + | |
- | [MaxClipSize] 3117 = 10 | + | |
- | [MaxContractMargin] 3118 = -1 | + | |
- | [MaxPosition] 3119 = -1 | + | |
- | [MinBalance] 3120 = 0 | + | |
- | [Mode] 3121 = C | + | |
- | [OrderRouting] 3122 = N | + | |
- | [OvernightMarginPC] 3123 = 100 | + | |
- | [ParentFirmID] 3124 = 2884B215-4A4B-4E9D-A40E-F8212D713E13 | + | |
- | [PLRollover] 3125 = Y | + | |
- | [PositionRollover] 3126 = Y | + | |
- | [PreTradeDisabled] 3127 = Y | + | |
- | [RiskAlerts] 3128 = Y | + | |
- | [StrategyMaxClipSize] 3131 = 1000 | + | |
- | [StrategyMaxPosition] 3132 = -1 | + | |
- | [StrategyTotalPitTrades] 3133 = 100 | + | |
- | [TotalPitTrades] 3134 = 100 | + | |
- | [UsePLForMargin] 3135 = Y | + | |
- | [WarningThresholdLossLimit] 3136 = -1 | + | |
- | [WarningThresholdMargin] 3137 = -1 | + | |
- | [WarningThresholdPL] 3138 = 10 | + | |
- | [WideMarket] 3139 = -1 | + | |
- | [Commission] 12 = 2.5 | + | |
</ | </ | ||
- | Account | + | **Position |
< | < | ||
- | [fixcollateralreport] 34=1464|49=T4|56=T4Example|50=T4FIX|52=20121218-15: | + | 8=FIX.4.2|9=300|35=BA|49=T4|56=T4Example|50=T4FIX|52=20121218-15: |
- | |909=ci-12/ | + | 908=cr-634914191578066280|909=ci-12/ |
- | |136=1|137=5|899=50935|900=0|901=0|921=-3501094.9228|53=15 13 -2|854=3| | + | 1=Account1|48=CME_20121200_ESZ2|55=ES|207=CME_Eq|167=FUT| |
- | + | 75=20121218|3000=4|3001=0|3002=1|3003=0|3011=5|10=234| | |
- | [MsgSeqNum] 34 = 1464 | + | |
- | [SenderCompID] 49 = T4 | + | |
- | [TargetCompID] 56 = T4Example | + | |
- | [SenderSubID] 50 = T4FIX | + | |
- | [SendingTime] 52 = 20121218-15: | + | |
- | [CollRptID] 908 = cr-634914191578066280 | + | |
- | [CollInquiryID] 909 = ci-12/ | + | |
- | [CollStatus] 910 = Unrestricted | + | |
- | [TotNumReports] 911 = 1 | + | |
- | [LastRptRequested] 912 = Y (YES) | + | |
- | [Account] 1 = Account1 | + | |
- | [NoPartyIDs] 453 = 1 | + | |
- | [PartyID] 448 = 9A65B2FE-1D27-4230-A942-F60983CFB33B | + | |
- | [NoMiscFees] 136 = 1 | + | |
- | [MiscFeeAmt] 137 = 5 | + | |
- | [MarginExcess] 899 = 50935 | + | |
- | [TotalNetValue] 900 = 0 | + | |
- | [CashOutstanding] 901 = 0 | + | |
- | [StartCash] 921 = -3501094.9228 | + | |
- | [Quantity] 53 = 15 13 -2 | + | |
- | [QtyType] 854 = 3 (ACCOUNT_UPDATE) | + | |
</ | </ | ||
- | Account Position Update | + | ===== Notes ===== |
- | < | + | * Unsolicited updates sent for account/position changes |
- | + | * Suppress notifications with Logon Tag 372=CB | |
- | [fixcollateralreport] 34=1465|49=T4|56=T4Example|50=T4FIX|52=20121218-15: | + | * Position updates include working orders and fills |
- | |909=ci-12/ | + | |
- | |55=ES|48=CME_20121200_ESZ2|207=CME_Eq|200=201212|167=FUT|75=20121218|3000=4|3001=0|3002=1|3003=0|3004=287.5|3005=141575|3006=2 | + | |
- | |3007=1|3008=566300|3009=0|3010=709150|3011=5| | + | |
- | + | ||
- | [MsgSeqNum] 34 = 1465 | + | |
- | [SenderCompID] 49 = T4 | + | |
- | [TargetCompID] 56 = T4Example | + | |
- | [SenderSubID] 50 = T4FIX | + | |
- | [SendingTime] 52 = 20121218-15: | + | |
- | [CollRptID] 908 = cr-634914191578066280 | + | |
- | [CollInquiryID] 909 = ci-12/18/2012 8:54:31 AM | + | |
- | [TotNumReports] 911 = 1 | + | |
- | [LastRptRequested] 912 = Y (YES) | + | |
- | [Account] 1 = Account1 | + | |
- | [NoPartyIDs] 453 = 1 | + | |
- | [PartyID] 448 = 9A65B2FE-1D27-4230-A942-F60983CFB33B | + | |
- | [NoMiscFees] 136 = 1 | + | |
- | [MiscFeeAmt] 137 = 5 | + | |
- | [MarginExcess] 899 = 21875 | + | |
- | [TotalNetValue] 900 = 0 | + | |
- | [CashOutstanding] 901 = 0 | + | |
- | [Shares] 53 = 5 5 0 | + | |
- | [QtyType] 854 = 4 (ACCOUNT_POSITION_UPDATE) | + | |
- | [Symbol] 55 = ES | + | |
- | [SecurityID] 48 = CME_20121200_ESZ2 | + | |
- | [SecurityExchange] 207 = CME_Eq | + | |
- | [MaturityMonthYear] 200 = 201212 | + | |
- | [SecurityType] 167 = FUT (FUTURE) | + | |
- | [TradeDate] 75 = 20121218 | + | |
- | [Buys] 3000 = 4 | + | |
- | [Sells] 3001 = 0 | + | |
- | [WorkingBuys] 3002 = 1 | + | |
- | [WorkingSells] 3003 = 0 | + | |
- | [OvernightUPL] 3004 = 287.5 | + | |
- | [AverageOpenTicks] 3005 = 141575 | + | |
- | [OvernightPosition] 3006 = 2 | + | |
- | [CurrencyRate] 3007 = 1 | + | |
- | [TotalBuyFillTicks] 3008 = 566300 | + | |
- | [TotalSellFillTicks] 3009 = 0 | + | |
- | [TotalOpenTicks] 3010 = 709150 | + | |
- | [TotalOpenVolume] 3011 = 5 | + | |
- | </ | + | |
- | + | ||
- | [[developers: | + | |
- | + |