electron (Автор тем)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
тестовый квик не учитывает размер лота в getDepoEx и OnDepoLimit
 
Здравствуйте,

Если на тестовом счете у нас 1 лот акций Газпрома, то скрипт ниже так и напишет для тестового счета на старте "getDepoEx 1", при покупке еще одной напишет "OnDepoLimit 2". То есть выводит currentbal в лотах. Хотя по таблице текущих торгов у Газпрома 10.

Если же скрипт запустить на боевом клиенте QUIK, то позиция будет кратна 10 (выводит в акциях).
Код
//вопросы ниже заменить на идентификаторы
clientCode = "?"
firmId = "?"
trdAccId = "?"
t2_kind = 0

function OnDepoLimit(bt)
    if (bt.client_code == clientCode and bt.limit_kind == t2_kind) then
        PrintDbgStr("OnDepoLimit "..bt.currentbal)
    end
end

function main()

    local dt = getDepoEx(firmId, clientCode, "GAZP", trdAccId, t2_kind)
    if dt ~= null then
        PrintDbgStr("getDepoEx "..dt.currentbal)
        else  PrintDbgStr("null")
    end

    while true do
        sleep(1000)
    end

end
неуникальный номер сделки
 
В тестовом квике заметил, что в таблице сделок могут появляться мои сделки с одинаковыми номерами. Они всегда соседние, по одному инструменты, кол-ву и цене и дате. Разное - это номер заявки и направление сделки (если первая купля, то вторая продажа).
Это нормально, что идентификатор сделки на самом деле не уникален? Или это такая хитрая оптимизация биржи, что по сути состояние счета не меняется.
Пример во вложении
OnMoneyLimit шлет четыре события вместо одного
 
Суть проблемы - подписываюсь на изменение денежного лимита, совершаю одну сделку и OnMoneyLimit срабатывает аж четыре раза.
Код
function OnMoneyLimit(bt)
    -- просто выводит все поля таблицы
    PrintDbgStr(table.tostring(bt))
end

Логи такие (первое событие чуть отличается от след. трех одинаковых):
Код
[2932] {leverage=2,currentbal=280000.67,limit_kind=0,client_code="11309",openlimit=0,firmid="NC0011100000",locked_margin_value=0,currcode="SUR",openbal=281330.93,locked=1448.19,locked_value_coef=0.29,currentlimit=0,tag="EQTV"}
[2932] {leverage=2,currentbal=278672.11,limit_kind=0,client_code="11309",openlimit=0,firmid="NC0011100000",locked_margin_value=0,currcode="SUR",openbal=281330.93,locked=0,locked_value_coef=0,currentlimit=0,tag="EQTV"}
[2932] {leverage=2,currentbal=278672.11,limit_kind=0,client_code="11309",openlimit=0,firmid="NC0011100000",locked_margin_value=0,currcode="SUR",openbal=281330.93,locked=0,locked_value_coef=0,currentlimit=0,tag="EQTV"}
[2932] {leverage=2,currentbal=278672.11,limit_kind=0,client_code="11309",openlimit=0,firmid="NC0011100000",locked_margin_value=0,currcode="SUR",openbal=281330.93,locked=0,locked_value_coef=0,currentlimit=0,tag="EQTV"}

Ответьте, пожалуйста, на вопросы:
1) Согласно документации, OnMoneyLimit вызывается только при изменении денежного лимита. Тогда почему первое события в currentbal содержит старое значение лимита?
2) Почему 3 след. события одинаковые? Я подозреваю, что это связано с режимами T0, T1, T2, но ведь limit_kind там 0 ?


QUIK последний 7.14.
Страницы: 1
Наверх