Как задать комментарий в заявке?

Страницы: 1
RSS
Как задать комментарий в заявке?
 
Пробовал:
CLIENT_CODE = <код клиента>/<комментарий>
CLIENT_CODE = <код клиента>//<комментарий>
CLIENT_CODE = /<комментарий>
CLIENT_CODE = //<комментарий>

В OnTransReply в поле brokerref отображается введённое в транзакции значение, а в OnOrder - всегда только <код клиента>
 
Длина комментария ограничена. Сначала проверьте в окне ввода заявки.
Также есть один брокер, который обрезает данное поле и не транслирует далее в OnOrder, OnTrade
 
Напоролся на эту же проблему - brokerref не передаётся в OnTrade, попытка идентифицировать ордер только по brokerref, закончилась неудачей? В результате мой PositionManager не может связать сделку с ожидающим ордером! Что это такое не знаю? Это проблема QUIK или отдельного брокера "не передаёт brokerref в OnTrade для сделок, исполненных по лимитным ордерам"?

У себя слепил из того что было:

Код
function OnTrade(trade)
    if not ctx or not ctx.instruments[trade.sec_code] then return end
    ctx.logger:info("OnTrade: %s %s qty=%d price=%.2f flags=0x%X brokerref=%s",
        trade.class_code, trade.sec_code, trade.qty, trade.price, trade.flags, trade.brokerref or "")

    -- Получаем номер заявки, связанной со сделкой
    local order_num = nil
    if trade.order_num and trade.order_num ~= "" then
        order_num = trade.order_num
    elseif trade.trade_num and trade.trade_num ~= "" then
        -- Пытаемся получить информацию о заявке по номеру сделки, если номер заявки недоступен напрямую
        local order_info = getOrderByNumber(trade.class_code, trade.trade_num)
        if order_info and order_info.order_num then
            order_num = order_info.order_num
        end
    end

    local event = ctx.pool:acquire()
    event.type_id = EVENT.TRADE
    event.sec_id = ctx.distributor.sec_to_id[trade.sec_code] or 0
    event.sec_code = trade.sec_code
    event.sec = trade.sec_code
    event.price = trade.price or 0
    event.qty = trade.qty or 0
    event.trade_num = trade.trade_num or 0
    event.flags = trade.flags or 0
    event.time = ctx.time:now()
    event.volume = trade.qty or 0
    event.brokerref = trade.brokerref
    event.order_num = order_num   -- сохраняем номер заявки
    ctx.queue:push(event)

    local pm = ctx.position_managers[trade.sec_code]
    if pm then
        pm:update_from_trade(trade, order_num)   -- передаём order_num
    end
    if ctx.executor then
        ctx.executor:on_trade(trade)
    end
end
Страницы: 1
Читают тему
Наверх