Cyber (Автор тем)

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

Страницы: 1
Альтернатива CanSell/CanBuy
 
У трех брокеров всегда использовал
getBuySellInfo(FIRM_ID,CLIENT_CODE,CLASS_CODE,SEC_CODE,price).can_sell
для подсчета возможной позы.
И там где не давали шортить can_sell = 0 выдавал.
Но тут у БКС выяснилось, что эти значения не соответствуют реальности, и шортить не дают бумаги у которых can_sell не равон нулю.
Есть ли в квике какая-то другая таблица с реальными значениями? Откуда еще можно узнать доступную позу?
Что изменилось в 11.1.1.11, что перестали приходить данные по CreateDataSource?
 
Все было нормально, но после обновления до последней версии перестали приходить данные по CreateDataSource без последних параметров.
Вернее приходит только значения из открытого графика. По остальным инструментам не приходят.
Уже перепробовал отключать в настройках "Исходя из настроек открытых пользователем таблиц". Не помогло.
Не могу понять, что изменилось то?
Неверное отображение своих заявок в стакане Android X
 
Неверное отображение своих заявок в стакане Android X. На графике рядом правильно отображается. На стационарном квике тоже норм.
Страшно тормозит квик при исполнении айсберг заявки
 
При исполнении крупной айсберг заявки состоящей из 10 частей в 1000 лотов страшно тормозит квик, практически виснет. Пакеты почти перестают приниматься. Все таблицы виснут, кроме стакана, который немного шевелится, но запаздывает по времени.
Если посмотреть в это время в мобильном квике другого брокера, то заявка давно исполнилась и цена ушла ниже минут 5 назад.
Вы бы хотя бы таблицы в отдельные потоки сделали и прием данных в буфер.
SearchItems не успевает обновить данные по заявкам при вызове в OnTrade
 
Пытаюсь найти оставшиеся заявки по текущей цене внутри OnTrade
Код
function findNumOrderPrice(ordtable, TRADE_CLASS_CODE, TRADE_SEC_CODE, fPrice)
    function myFindPriceNum(C,S,F,P)        
        if (tostring(C) == tostring(TRADE_CLASS_CODE)) and (tostring(S) == tostring(TRADE_SEC_CODE)) and (bit.band(F, 0x1) ~= 0) and (tostring(P) == tostring(fPrice)) then 
            return true 
        end
        return false
    end       
    local norders = SearchItems(ordtable, 0, getNumberOf(ordtable)-1, myFindPriceNum, "class_code,sec_code,flags,price")
    if (norders ~= nil) and (#norders > 0) then
        myLog('norders='..tostring(#norders))
        return #norders
    end
    return 0
end
Но, в таблице заявок к этому моменту не успевают обновится данные, даже флаги, что заявка исполнена.
Как их принудительно перепроверить внутри этой функции?
myLog('norders='..tostring(#norders)) возвращает количество в последней сделке, даже если там несколько заявок было и все они разом исполнились.
Точно такой же код поиска нормально работает в main cо старыми долговисящими заявками
История ошибок выполнения скрипта
 
Где-то в квике сохраняется история ошибок выполнения скриптов, хотя бы последнего ввполнения? Или только в окне запуска скриптов можно увидеть? А после закрытия квика больше эту ошибку н.бю. посмотреть?
Работа асберг-заявки
 
Недавно был удивлен, ставил айсберг примерно 1% от дневного оборота по акции кусочками по 100 лотов. До этого всегда думал, что если по этой же цене стоит кто-то еще за тобой, то между кусочками айсберга его пропустят вперед твоего очередного кусочка, при удовлетворении заявки. А тут кто-то крупный бахнул по рынку и мой айсберг почти полностью съел, но не весь, а тот чел так и остался за мной. Но самое удивительной, что в потоке обезличенных сделок эта сделка прошла одной строкой в несколько тысяч контрактов.
Это как?
Я вообще думал, что айсберги, как и стопы, хранятся на сервере брокера и отправляются на биржу по мере исполнения кусочков?
Пусть даже это ММ шалит и убрал свою же заявку перед тем как бахнуть по моей. Но в потоке сделок должны же быть видны все кусочки айсберга?
Последовательность обработки функций обратного вызова
 
Цитата
Функции обратного вызова обрабатываются в основном потоке терминала QUIK.
Я так понял, что они все ставятся в одну очередь на обработку независимо от функции? Или у каждой функции своя очередь или есть приоритет в обработке?
И пока не выполнится предыдущая полностью, следующая не вызывается?
Если я например в OnTrade создам заявку и она сразу выполнится, то меня новая OnTrade не прервет?
И функция может выполнятся сколь угодно долго и даже задержки в ней можно ставить (но лучше так не делать)?
Или лучше по возможности максимально все в main переносить?
Значения цены в таблице заявок
 
Пытаюсь искать заявки по равенству значения поля price в таблице orders цене типа 0.213. Использую функцию SearchItems. Но работает через раз. Причем этот же скрипт нормально работает на обычныйх фьючах и через раз на спредах фьючей. Заявки выставляю в формате цены, как выше писал.
Соответсвует ли формат цены в этой таблице той, что в терминале? В чем причина такого поведения? Кривое округление или его отсутствие?
не работает таблица futures_client_holding и функция getFuturesHolding для FUTSPREAD
 
не работает таблица futures_client_holding и функция getFuturesHolding для FUTSPREAD
для SPBFUT код ниже прекрасно работает, для FUTSPREAD не хочет
функция getFuturesHolding тоже не выдает реальные значения
для SPBFUT все работает нормально
openbuys и opensells должны же для FUTSPREAD что-то выдавать, там же стакан отдельный. Понятно что другие параметры могут не выдавать, например totalnet, так как фьючи, а не спреды уже будут в портфеле.
Код
function GetFutPos(class_code, sec_code)
    local onb uys = 0
    local onse lls = 0
    if class_code == 'SPBFUT' or class_code == 'SPBOPT' or class_code == 'FUTSPREAD' then
        for i = 0,getNumberOf('futures_client_holding') - 1 do
          local futures_client_holding = getItem('futures_client_holding',i)
          if futures_client_holding.sec_code == sec_code then
             onb uys = futures_client_holding.openbuys
             onse lls = futures_client_holding.opensells
          end
       end
    end      
    return onbuys, onsells
end

Нигде больше не смог найти рабочий пример для FUTSPREAD. Может я не правильно что-то делаю? Как для FUTSPREAD посмотреть активные заявки?
Страницы: 1
Наверх