Снятие всех заявок

Страницы: 1
RSS
Снятие всех заявок
 
При тестировании на снятие всех заявок по типу: "KILL_ALL_ORDERS"

QUIK выдает: "Ошибка транзакции 1582102111 Отправка транзакций данного типа из QPILE-скрипта не поддерживается."

Как из lua можно снять все заявки по торговому счету+код инструмента 1 командой?

Нужно снятие заявок и по фьючерсам и акциям.

Понятно что можно перебрать все заявки в таблице заявок и по 1 снять, но хотелось бы сразу все.
 
Такой заявки нет.

когда вы говорите терминалу вручную "сними все" он посылает транзакции для каждой бумаги, которая есть у вас в портфеле. То же самое необходимо делать и вам из скрипта
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
s_mike@rambler.ru написал:
Такой заявки нет.

когда вы говорите терминалу вручную "сними все" он посылает транзакции для каждой бумаги, которая есть у вас в портфеле. То же самое необходимо делать и вам из скрипта
Естественно, что я заполняю поля, пример:
['TRANS_ID'] = '1'     -- Номер транзакции
 ['ACCOUNT'] = 'SPBFUT00001'                -- Код счета
 ['CLASSCODE'] = 'SPBFUT'              -- Код класса
 ['SECCODE']    = 'BRG0'              -- Код инструмента
 ['ACTION']    = 'KILL_ALL_ORDERS',    -- Тип транзакции

Ругается именно на тип.
 
До кучи. При заполнении полей для примера:

['TRANS_ID']  = '1',   -- Номер транзакции
 ['ACCOUNT']   = 'L01-00000F00',              -- Код счета  
 ['CLASSCODE'] = 'TQBR',             -- Код класса
 ['CLIENT_CODE'] = '123456',             -- Код клиента
 ['SECCODE']   = 'ALRS',             -- Код инструмента
 ['ACTION']    = 'KILL_ALL_ORDERS',    -- Тип транзакции ('NEW_ORDER' - новая заявка)

Ошибка точно такая же:
"Отправка транзакций данного типа из QPILE-скрипта не поддерживается."
 
Уважаемая тех.поддержка, когда вы ответите на мой запрос?
 
Цитата
Александр М написал:
Уважаемая тех.поддержка, когда вы ответите на мой запрос?
Добрый день.

Транзакции, выполняющие групповое снятие заявок, не поддерживаются:

   «KILL_ALL_ORDERS» – снять все заявки из торговой системы,
   «KILL_ALL_STOP_ORDERS» – снять все стоп-заявки,
   «KILL_ALL_NEG_DEALS» – снять все заявки на внебиржевые сделки и заявки на сделки РЕПО.

 
Цитата
Egor Zaytsev написал:
Цитата
Александр М написал:
Уважаемая тех.поддержка, когда вы ответите на мой запрос?
Добрый день.
Транзакции, выполняющие групповое снятие заявок,  не поддерживаются:

   «KILL_ALL_ORDERS» – снять все заявки из торговой системы,
   «KILL_ALL_STOP_ORDERS» – снять все стоп-заявки,
   «KILL_ALL_NEG_DEALS» – снять все заявки на внебиржевые сделки и заявки на сделки РЕПО.
Тогда непонятно почему, в Документации по QUIK "Раздел 6. Совместная работа с другими приложениями" начиная как минимум с 7 версии и по текущую есть описание групповых типов:

"6.11 Импорт транзакций"
6.11.3 Формат .tri-файла с параметрами транзакций
ACTION Вид транзакции, имеющий одно из следующих значений:
 «KILL_ALL_ORDERS» – снять все заявки из торговой системы,
 «KILL_ALL_STOP_ORDERS» – снять все стоп-заявки,
 «KILL_ALL_NEG_DEALS» – снять все заявки на внебиржевые сделки
и заявки на сделки РЕПО,
 «KILL_ALL_FUTURES_ORDERS» – снять все заявки на рынке FORTS,

Команды снятия группы заявок по условию («KILL_ALL_ORDERS», «KILL_ALL_STOP_ORDERS»,
«KILL_ALL_NEG_DEALS», «KILL_ALL_FUTURES_ORDERS») обрабатываются следующим образом:
1. Параметры «CLASSCODE», «TRANS_ID», «ACTION», ACCOUNT являются обязательными.
2. Возможные дополнительные параметры для команд снятия заявок по условию:
— «KILL_ALL_ORDERS»: «SECCODE», «ACCOUNT», «OPERATION», «CLIENT_CODE»,
«COMMENT»,
— «KILL_ALL_STOP_ORDERS»: «SECCODE», «ACCOUNT», «OPERATION», «CLIENT_ CODE»,
«COMMENT», «EXPIRY_DATE»,
— «KILL_ALL_NEG_DEALS»: «SECCODE», «ACCOUNT», «OPERATION», «CLIENT_ CODE»,
«COMMENT», «PARTNER», «SETTLE_CODE»,
— «KILL_ALL_FUTURES_ORDERS»: «SECCODE», «ACCOUNT», «OPERATION», «COMMENT»,
«CLIENT_CODE», «BASE_CONTRACT».
3. Снятию подлежат заявки, соответствующие всем указанным в транзакции параметрам
(логическое «И»).

Также вы НЕ указали тип KILL_ALL_FUTURES_ORDERS, значит он поддерживается? Если да, то почему фьючерсы я могу снять 1 командой, а акции нет?
 
Этот раздел относит в tri файлам. В разделе Раздел 8. Алгоритмический язык QPILE/Функции для работы с заявками сказано как раз про ограничения для Qpile.
 
Цитата
Egor Zaytsev написал:
Этот раздел относит в tri файлам. В разделе Раздел 8. Алгоритмический язык QPILE/Функции для работы с заявками сказано как раз про ограничения для Qpile.
К сожалению по Lua вы вообще в документации не расписали структуру таблицы транзакций для ее отправки с описанием всех ДЕЙСТВУЮЩИХ полей и ДЕЙСТВУЮЩИХ значений. Язык Lua работает с версии 6.17 (насколько я помню), а документации все нет.

Вы не ответили. Тип "KILL_ALL_FUTURES_ORDERS" работает в Lua? Если да, то почему фьючерсы я могу снять 1 командой, а акции нет?
 
Уважаемая тех.поддержка, когда вы до конца ответите на мой запрос (см. выше)?

Зачем это искусственное ограничение сделали? Транзакции преобразуются в стандартные запросы пользователя, кто мешает транзакцию на групповое снятие отработать, если в ручном режиме это прекрасно работает и в документации по транзакциям эти типы предусмотрены?
 
Цитата
Александр М написал:
Вы не ответили. Тип "KILL_ALL_FUTURES_ORDERS" работает в Lua? Если да, то почему фьючерсы я могу снять 1 командой, а акции нет?

KILL_ALL_FUTURES_ORDERS работает
по акциям не работает.
связано это с исторически сложившимися (еще со времен QPILE) архитектруными особенностями.
Изменить это нельзя.

Сами по себе транзакции ALLL Выполняются НЕ сервером QUIK, а непосредственно терминалом QUIK.
Терминал просто в цикле перебирает заявки и снимает те которые удовлетворяют заданным условиям.
В коде Вы легко можете сделать то же самое.
 
Цитата
Sergey Gorokhov написал:
Цитата
Александр М написал:
Вы не ответили. Тип "KILL_ALL_FUTURES_ORDERS" работает в Lua? Если да, то почему фьючерсы я могу снять 1 командой, а акции нет?

KILL_ALL_FUTURES_ORDERS работает
по акциям не работает.
связано это с исторически сложившимися (еще со времен QPILE) архитектруными особенностями.
Изменить это нельзя.

Сами по себе транзакции ALLL Выполняются НЕ сервером QUIK, а непосредственно терминалом QUIK.
Терминал просто в цикле перебирает заявки и снимает те которые удовлетворяют заданным условиям.
В коде Вы легко можете сделать то же самое.
Удивительно, с технической точки зрения не вижу разницы в сложности между снятием фьючерсной заявки или по акциям.

В терминале есть ограничение на число транзакций на снятие в секунду? Я могу в цикле запулить 500 транзакций через sendTransaction(Transaction), если мне надо снять 500 заявок? Если нет, то как мне гарантированно это сделать?
 
Цитата
Александр М написал:
Я могу в цикле запулить 500 транзакций
Если ваши лимиты позволяют в цикле (сиречь в пределах секунды) пулять по 500 заявок на спот, может стоит рассмотреть другие продукты от той же арки или от мамбы или еще от кого-нибудь вместо попыток участвовать в формуле 1 на запорожце?
 
Цитата
Александр М написал:
В терминале есть ограничение на число транзакций на снятие в секунду?
В терминале нет. И даже на сервере нет. А вот на бирже есть. Легко можно попасть на флуд контроль.

Цитата
Александр М написал:
Я могу в цикле запулить 500 транзакций через sendTransaction(Transaction), если мне надо снять 500 заявок? Если нет, то как мне гарантированно это сделать?
Вы можете в цикле делать что угодно, вопрос с какой скоростью оно обработается дальше.
 
Цитата
Sergey Gorokhov написал:
Цитата
Александр М написал:
В терминале есть ограничение на число транзакций на снятие в секунду?
В терминале нет. И даже на сервере нет. А вот на бирже есть. Легко можно попасть на флуд контроль.

Цитата
Александр М написал:
Я могу в цикле запулить 500 транзакций через sendTransaction(Transaction), если мне надо снять 500 заявок? Если нет, то как мне гарантированно это сделать?
Вы можете в цикле делать что угодно, вопрос с какой скоростью оно обработается дальше.
На счет скорости я понимаю, мне главное понять, я могу в цикле выставить условно 500 транзакций, каждая на снятие 1 заявки без всяких sleep, ожиданий отработки предыдущей и т.д.

По вашим же словам Групповая ручная заявка преобразуется на клиентском QUIK в кучу запросов на снятие конкретной заявки и если у меня стоит 500 открытых заявок, то они должны сняться максимально быстро подряд, откуда тут флуд-контроль?
 
Что вам мешает попробовать?


впрочем,

ответ. Можете. Скорость исполнения транзакция и получени ответов на них зависит от инфраструктуры.
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
s_mike@rambler.ru написал:
Что вам мешает попробовать?


впрочем,

ответ. Можете. Скорость исполнения транзакция и получени ответов на них зависит от инфраструктуры.
Я проверил, ручное групповое снятие заявок работает гораздо быстрее. Код не причем, там просто в цикле пуляются транзакции.
Я должен иметь право снимать ВСЕ свои заявки независимо от их количества, поэтому я хочу получить ответ на вопрос на счет флуд-контроля на бирже.
Страницы: 1
Читают тему
Наверх