developers:websocket:orders

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
developers:websocket:orders [2026/01/23 20:15] chaddevelopers:websocket:orders [2026/03/05 16:43] (current) – [AutoOCO Order] frank
Line 344: Line 344:
 An AutoOCO Order is a batch of three orders: An AutoOCO Order is a batch of three orders:
   * A Trigger Order that initiates the trade.   * A Trigger Order that initiates the trade.
-  * Two OCO Orders (Take Profit and Stop Loss) that execute based on the trigger order'fill price.+  * Two OCO Orders (Take Profit and Stop Loss) that are submitted with prices that are differentials to the fill price of the trigger order.
  
 If the Trigger Order fills, the OCO Orders are submitted. If the OCO Orders begin filling, any remaining volume in the Trigger Order is canceled. If the Trigger Order fills, the OCO Orders are submitted. If the OCO Orders begin filling, any remaining volume in the Trigger Order is canceled.
Line 351: Line 351:
  
 <code> <code>
-OrderSubmit +
-   UserId "efda0709-af12-4b65-8971-5089edb4aaf0", +  "UserId": "", 
-   AccountId "448c9ddd-6a50-4852-85ea-aad3b6d60620", +  "HasUserId": false, 
-   MarketId "XCME_C ZC (H25)", +  "AccountId": "60B90323-E72A-4BBF-A129-3882019E622C", 
-   OrderLink = OrderLink.AutoOCO+  "MarketId": "XCME_Eq ES (H26)", 
-   Orders +  "OrderLink": 2
-      +  "ManualOrderIndicator": true, 
-         BuySell = BuySell.Buy+  "Orders": 
-         PriceType = PriceType.Limit+    
-         TimeType = TimeType.Normal+      "BuySell": 1
-         Volume 1, +      "PriceType": 1
-         LimitPrice "2375.00+      "TimeType": 0
-      }, +      "Volume": 1, 
-      +      "MaxShow": 0, 
-         BuySell = BuySell.Sell+      "HasMaxShow": false, 
-         PriceType = PriceType.Limit+      "MaxVolume": 0, 
-         TimeType = TimeType.Normal+      "HasMaxVolume": false, 
-         Volume 0, +      "LimitPrice": { 
-         LimitPrice "2380.00+        "Value": "685800
-      }, +      }, 
-      +      "StopPrice": null, 
-         BuySell = BuySell.Sell+      "TrailDistance": null, 
-         PriceType = PriceType.StopMarket+      "Tag": "", 
-         TimeType = TimeType.Normal+      "HasTag": false, 
-         Volume 0, +      "ActivationType": 0, 
-         StopPrice "2365.00+      "HasActivationType": false, 
-      +      "ActivationData": null 
-   ]+    }, 
 +    
 +      "BuySell": -1
 +      "PriceType": 1
 +      "TimeType": 2
 +      "Volume": 0, 
 +      "MaxShow": 0, 
 +      "HasMaxShow": false, 
 +      "MaxVolume": 0, 
 +      "HasMaxVolume": false, 
 +      "LimitPrice": { 
 +        "Value": "250
 +      }, 
 +      "StopPrice": null, 
 +      "TrailDistance": null, 
 +      "Tag": "", 
 +      "HasTag": false, 
 +      "ActivationType": 1, 
 +      "HasActivationType": true, 
 +      "ActivationData": null 
 +    }, 
 +    
 +      "BuySell": -1
 +      "PriceType": 2
 +      "TimeType": 2
 +      "Volume": 0, 
 +      "MaxShow": 0, 
 +      "HasMaxShow": false, 
 +      "MaxVolume": 0, 
 +      "HasMaxVolume": false, 
 +      "LimitPrice": null, 
 +      "StopPrice": { 
 +        "Value": "125" 
 +      }, 
 +      "TrailDistance": null, 
 +      "Tag": "", 
 +      "HasTag": false, 
 +      "ActivationType": 1, 
 +      "HasActivationType": true, 
 +      "ActivationData": null 
 +    
 +  ]
 } }
 </code> </code>
Line 450: Line 491:
  
  
 +===== Order Status Summary Messages Reference =====
 +
 +When displaying order status to end users, combining the ''OrderStatus'' and <del>OrderChange</del> fields provides more meaningful feedback than either field alone. The following table maps these field combinations to user-friendly status messages.
  
 +^ Order Status ^ Order Change ^ Status Summary Message ^ Notes ^
 +| **Finished States**  ||||
 +| Finished | ''PullFailed'', ''PullRejected'', ''PullRiskFailed'' | "Cancel Failed" | Includes StatusDetail |
 +| Finished | ''PullSuccess'', ''PullSent'', ''PullRiskSuccess'' //(with fills)// | "Completed, Partial Fill" | When TotalFillVolume ≠ 0 |
 +| Finished | ''PullSuccess'', ''PullSent'', ''PullRiskSuccess'' //(no fills)// | "Canceled" | When TotalFillVolume = 0 |
 +| Finished | ''TradeCompleted'' //(partial)// | "Completed, Partial Fill" | When TotalFillVolume < CurrentVolume |
 +| Finished | ''TradeCompleted'' //(full)// | "Completed, Filled" | When TotalFillVolume = CurrentVolume |
 +| Finished | ''StatusRequestFailed'', ''StatusRequestRejected'', ''StatusRequestRiskFailed'', ''StatusRequestRiskSuccess'', ''StatusRequestSent'', ''StatusRequestSuccess'', ''TagFailed'', ''TagSuccess'' //(partial)// | "Completed, Partial Fill, {OrderChange}" | When TotalFillVolume < CurrentVolume |
 +| Finished | ''StatusRequestFailed'', ''StatusRequestRejected'', ''StatusRequestRiskFailed'', ''StatusRequestRiskSuccess'', ''StatusRequestSent'', ''StatusRequestSuccess'', ''TagFailed'', ''TagSuccess'' //(full)// | "Completed, Filled, {OrderChange}" | When TotalFillVolume = CurrentVolume |
 +| Finished | ''RevisionRiskFailed'' //(filled)// | "Completed, Filled, {OrderChange}" | When TotalFillVolume = CurrentVolume |
 +| Finished | ''TradeBusted'' | "Completed, {OrderChange}" | |
 +| Finished | ''SubmissionSuccess'' //(RFQ only)// | "Completed" | Only for PriceType.RFQ |
 +| **Rejected States**  ||||
 +| Rejected | ''StatusRequestFailed'', ''StatusRequestRejected'', ''StatusRequestRiskFailed'', ''StatusRequestRiskSuccess'', ''StatusRequestSent'', ''StatusRequestSuccess'' | "Rejected, {OrderChange}" | Includes StatusDetail |
 +| Rejected | //(Other changes)// | "Rejected" | Includes StatusDetail |
 +| **Working States**  ||||
 +| Working | ''PullRiskSuccess'', ''PullSent'', ''PullSuccess'' | "Canceling..." | |
 +| Working | ''RevisionSent'', ''RevisionRiskSuccess'' | "Revising..." | |
 +| Working | ''RevisionSuccess'' | "Working, Revised" | |
 +| Working | ''RevisionFailed'', ''RevisionRejected'', ''RevisionRiskFailed'' | "Working, Revision Failed" | Includes StatusDetail |
 +| Working | ''PullFailed'', ''PullRejected'', ''PullRiskFailed'' | "Working, Cancel Failed" | Includes StatusDetail |
 +| Working | ''Trade'', ''SubmissionSent'', ''SubmissionSuccess'', ''SubmissionRiskSuccess'' | "Working..." | |
 +| Working | ''Handover'' | "Working, Handover" | |
 +| Working | ''Rollover'' | "Working, Rollover" | |
 +| Working | ''StatusRequestFailed'', ''StatusRequestRejected'', ''StatusRequestRiskFailed'', ''StatusRequestRiskSuccess'', ''StatusRequestSent'', ''StatusRequestSuccess'', ''TagFailed'', ''TagSuccess'' | "Working, {OrderChange}" | |
 +| Working | //(Any change with fills)// | "{Base Message}, Partial Fill" | Appended when TotalFillVolume > 0 |
 +| **None (Pre-Submission) States**  ||||
 +| None | None | "Submitting..." | |
 +| None | ''SubmissionRiskSuccess'' | "Submitting to Exchange" | |
 +| None | ''SubmissionRejected'', ''SubmissionRiskRejected'' | "Submission Rejected" | |
 +| None | ''SubmissionFailed'' | "Submission Failed" | |
 +| None | ''SubmissionSent'', ''SubmissionSuccess'' | "Submission Sent" | |
 +| **Held States**  ||||
 +| Held | //(Any)// | "Held on Server..." (Real Market) \\ "Held on Client..." (Non-Real Market) | |
  • developers/websocket/orders.1769199321.txt.gz
  • Last modified: 2026/01/23 20:15
  • by chad