Support Board
Date/Time: Fri, 03 Apr 2026 04:22:37 +0000
Post From: DTC Binary Type 101 - TradeAccount Field Alignment
| [2026-04-03 01:27:43] |
| Sierra_Chart Engineering - Posts: 23417 |
|
This is the data structure and those first four fields are not all 64 bytes. In the header file, check the value for each of the constant lengths: struct s_SubmitNewSingleOrder
{ static constexpr uint16_t MESSAGE_TYPE = SUBMIT_NEW_SINGLE_ORDER; uint16_t Size = sizeof(*this); uint16_t Type = MESSAGE_TYPE; char Symbol[SYMBOL_LENGTH] = {}; char Exchange[EXCHANGE_LENGTH] = {}; char TradeAccount[TRADE_ACCOUNT_LENGTH] = {}; char ClientOrderID[ORDER_ID_LENGTH] = {}; OrderTypeEnum OrderType = ORDER_TYPE_UNSET; BuySellEnum BuySell = BUY_SELL_UNSET; double Price1 = 0; double Price2 = 0; double Quantity = 0; TimeInForceEnum TimeInForce = TIF_UNSET; t_DateTime GoodTillDateTime = 0; uint8_t IsAutomatedOrder = 0; uint8_t IsParentOrder = 0; char FreeFormText[ORDER_FREE_FORM_TEXT_LENGTH] = {}; OpenCloseTradeEnum OpenOrClose = TRADE_UNSET; double MaxShowQuantity = 0; char Price1AsString[PRICE_STRING_LENGTH] = {}; char Price2AsString[PRICE_STRING_LENGTH] = {}; double IntendedPositionQuantity = 0; uint16_t GetMessageSize() const; void CopyFrom(void * p_SourceData); const char* GetSymbol(); void SetSymbol(const char* NewValue); const char* GetExchange(); void SetExchange(const char* NewValue); const char* GetTradeAccount(); void SetTradeAccount(const char* NewValue); const char* GetClientOrderID(); void SetClientOrderID(const char* NewValue); OrderTypeEnum GetOrderType() const; BuySellEnum GetBuySell() const; double GetPrice1() const; double GetPrice2() const; double GetQuantity() const; TimeInForceEnum GetTimeInForce() const; t_DateTime GetGoodTillDateTime() const; uint8_t GetIsAutomatedOrder() const; uint8_t GetIsParentOrder() const; const char* GetFreeFormText(); void SetFreeFormText(const char* NewValue); OpenCloseTradeEnum GetOpenOrClose() const; double GetMaxShowQuantity() const; const char* GetPrice1AsString(); void SetPrice1AsString(const char* NewValue); const char* GetPrice2AsString(); void SetPrice2AsString(const char* NewValue); double GetIntendedPositionQuantity() const; }; You definitely cannot mix encodings. You cannot use one type of encoding for one structure and another encoding for another structure. It does not work that way: Does the DTC Server require the TradeAccount field in Type 101 to be a VLS field if the Logon used VLS, or does Type 101 strictly use the Fixed-Length Binary structure regardless of Logon encoding? Sierra Chart Support - Engineering Level Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy: https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation For the most reliable, advanced, and zero cost futures order routing, use the Teton service: Sierra Chart Teton Futures Order Routing Date Time Of Last Edit: 2026-04-03 01:29:08
|
