Login Page - Create Account

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