Массовая отправка заявок на сервер QUIK

Страницы: 1
RSS
Массовая отправка заявок на сервер QUIK
 
Предположим, что скрипту на Lua в течение одной секунды по сигналам торговой системы нужно отправить 1000 лимитных заявок по разным инструментам и счетам, после чего успокоиться на 60 минут. Известно, что на бирже у брокера логин с производительностью 200 транзакций в секунду. Числа в этом примере условные.

Вопросы:

1) Что мы увидим:
а) в скрипте Lua будут вылезать какие-то ошибки из-за большой частоты отправки заявок на сервер QUIK
или
б) сервер все эти заявки успешно примет в свою очередь и будет отправлять на биржу, ориентируясь на производительность логина брокера (при этом, понятное дело, ответы от биржи будут приходить в течение примерно 5 секунд).

2) Если мы увидим вариант 1а), то как понять (без экспериментов), с какой интенсивностью можно слать заявки из скрипта?

3) Если правильное функционирование сервера QUIK -- это вариант 1б), а ошибки внутри скрипта Lua вылезут, что делать (кто должен настраивать сервер QUIK, если он стоит на аутсорсинге ARQA)?
 
Здравствуйте,
При отправке большого количества транзакций сервер не будет делить их на порции а отправит как есть.
Далее транзакции будут отвергнуты и клиенту придет соответственная ошибка.

Решать вопрос нужно между клиентом и брокером, даже если сервер находится у нас.
Ибо сервер принадлежит не нам, хоть и находится в наших дата центрах.
 
1000 заявок в секунду по разным инструментам и разным счетам да еще через терминал КВИК?
Так Вы ж, батенька, фантазер!!!
Для начала попробуйте хотя бы 100 отправить.
 
Цитата
Sergey Gorokhov пишет:
При отправке большого количества транзакций сервер не будет делить их на порции а отправит как есть.
Далее транзакции будут отвергнуты и клиенту придет соответственная ошибка.
1. ну и смысл их тогда "отправит как есть", если потом "транзакции будут отвергнуты и клиенту придет соответственная ошибка"???

2. каким образом пользователь поймёт/узнает, что он полностью засрал канал брокера???

3. как определить оптимальное число транзакций на сервер???

<ответ обязателен, т.к. разработчиков "никто за язык не тянул">
 
Цитата
"тот самый пишет:
1. ну и смысл их тогда "отправит как есть", если потом "транзакции будут отвергнуты и клиенту придет соответственная ошибка"???
Смысл в том что сервер QUIK не умеет и никогда не будет уметь искусственно задерживать транзакции.
Цитата
тот самый пишет:
2. каким образом пользователь поймёт/узнает, что он полностью засрал канал брокера???
Уже был ответ "транзакции будут отвергнуты и клиенту придет соответственная ошибка.
Цитата
тот самый пишет:
3. как определить оптимальное число транзакций на сервер???
Спросить у брокера, ибо это зависит как от настроек на стороне сервера (там тоже есть флуд контроль) так и от прав на стороне биржи.
 
Цитата
Николай Камынин пишет:
1000 заявок в секунду по разным инструментам и разным счетам да еще через терминал КВИК?
Так Вы ж, батенька, фантазер!!!
Для начала попробуйте хотя бы 100 отправить.
Николай, на ежегодном нагрузочном тестировании отправляется в разы больше.
 
Цитата
тот самый пишет:
1. ну и смысл их тогда "отправит как есть", если потом "транзакции будут отвергнуты и клиенту придет соответственная ошибка"???
2. каким образом пользователь поймёт/узнает, что он полностью засрал канал брокера???
3. как определить оптимальное число транзакций на сервер???
< ответ обязателен, т.к. разработчиков "никто за язык не тянул" >
Я так понимаю что надо дистанцировать "отправить-транзакцию" и "отправить-транзакцию-с-ответом".

Если первый вариант, то квик может 1000 выплюнуть, в асинхронном режиме.

А вот сколько их реально обработается (и по скольки например успеют заявки выставиться) - вопрос другой.
Вероятно, посылка транзакций в синхронном режиме даст более-менее вменяемую цифру.
 
Когда Вы отправляете заявку:
1. Сначала, она выглядит, как транзакция
2. Как только серевер её принял и, (возможно, бо как не все транзакции биржевые) получил ответ с биржи - она становится не просто транзакцией, а полноценной заявкой. И вот в этом самом месте и идёт разделение по времени. Бо как тут уже учитывается полный roundtrip заявки с учётом её пути до биржи и обратно.
Конкретно о том, что было упомянуто выше - речь шла о другом (насколько я понял):
а именно, сколько можно подать из скрипта квик-клиента транзакций в секунду на квик-сервер - прежде чем он упадёт. На что уже ответил техсуппорт.
 
вообще, конечно, было бы неплохо взглянуть в ознакомительных целях на Quik Dedicated Server
 
Цитата
тот самый пишет:
Когда Вы отправляете заявку:
1. Сначала, она выглядит, как транзакция
2. Как только серевер её принял и, (возможно, бо как не все транзакции биржевые) получил ответ с биржи - она становится не просто транзакцией
Думаю дело в том, что вы путаете понятия "транзакция" и "заявка".

Транзакция - это просто отправка команды серверу. Любой.
И ответ на нее приходит когда транзакция была обработана.

А вот заявка - это результат исполнения транзакции,
а уведомление, например, о созданной заявке (тот же OnTrade) - приходит отдельно и к поданной транзакции отношения-то как бы и не имеет.
 
нет никакой путаницы, именно об этом и акцентировал.
 
Если речь именно про транзакции, то отправить их можно более 1000 в секунду.
Так на тестовом QUIK я отправлял 12-14 тыс. транзакций за одну секунду.
Другое дело, что заявки по ним выставляются в течение нескольких секунд. А ответ по всем транзакциям приходит так вообще в течение более минуты.
Надо делать так, как надо. А как не надо - делать не надо.
 
Добавлю, что при этом заявки выставлялись на сервере примерно по 250 в секунду.
Надо делать так, как надо. А как не надо - делать не надо.
 
я думаю, для грубого подсчёта - можно привязаться к пингу, т.е. принять: число транзакций в сек = 0.7(1/пинг)
 
Цитата
Старатель пишет:
Добавлю, что при этом заявки выставлялись на сервере примерно по 250 в секунду.
Это результат в моменты низкой активности на тестовом контуре. Во время более активных периодов результат хуже: менее 100 заявок в сек.
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель пишет:
Если речь именно про транзакции, то отправить их можно более 1000 в секунду.
Так на тестовом QUIK я отправлял 12-14 тыс. транзакций за одну секунду.
Другое дело, что заявки по ним выставляются в течение нескольких секунд. А ответ по всем транзакциям приходит так вообще в течение более минуты.
это говорит о том, что:
на сервере достаточно мощный комп,
под приём транзакций выделен отдельный поток.
канал до биржи - (в данном случае, её эмулятора) - работает тоже весьма неплохо.
приём и отправка ответа на клиентские транзакции - разделены по отдельным потокам.
запись в базу заявок происходит быстрее считывания.

IMHO
 
Это говорит только о производительности рабочего места  :lol:
Далее появляется объект с неизвестными нам свойствами в виде трассы до сервера QUIK, который не позволяет сделать каких-либо объективных выводов о производительности самого сервера, поскольку не известно, с какой частотой эти транзакции попадали к нему на обработку.
Надо делать так, как надо. А как не надо - делать не надо.
 
#чостявзять
 
Добрый вечер,
Объясняю для тех,кто не понял.
--------------------------
Речь идет не об отправлении пулеметом 1000 транзакций по 1 сделке в каждой,
а об отправлении 1000 транзакций по различным бумагам и различным счетам.
-------------------------------------
Кратко рассказываю про грабли.
-------------------
Для начала,
решите на основе какой информации будут отправляться эти 1000 транзакций.
-----------------------------
Если это информация по свечам, то она приходит не чаще, чем 10 раз в секунду.
Кроме того, на Вашем компе работает алгоритм энгл,
который обеспечит вам отправку транзакций примерно 10 раз в секунду
Ну и так далее...
====================
Кроме того, учтите ,
то время обработки транзакции ядром сервера брокера да и биржи примерно 1 ms.
А Вы в очереди не первый.
------------------------
После того, как учтете все это,
то можете попробовать отправить хотя бы 100 в секунду,
хотя бы по 10 бумагам,
хотя бы по 5 счетам.
-------------------------------------------
Успехов Вам мечтатели.
 
Да, еще забыл сказать, что речь конечно о боевой работе,
а не ...изме на тестовом сервере или на ежегодных или месячных  тестах.
 
Цитата
"Николай Камынин пишет:

После того, как учтете все это,
то можете попробовать отправить хотя бы 100 в секунду,
хотя бы по 10 бумагам,
хотя бы по 5 счетам.
Если Вы не работами с большим числом счетов, то зачем влазить влазить в тему? Данный вопрос ответа не требует!

Был конкретный вопрос как поведет себя сервер квика в такой ситуации, пользователь получил ответ.

Цитата
Sergey Gorokhov пишет:
Здравствуйте,
При отправке большого количества транзакций сервер не будет делить их на порции а отправит как есть.
Далее транзакции будут отвергнуты и клиенту придет соответственная ошибка.

Решать вопрос нужно между клиентом и брокером, даже если сервер находится у нас.
Ибо сервер принадлежит не нам, хоть и находится в наших дата центрах.
А как же "QUIK как риск-сервер (RISQ server)"?
Цитата
Сам модуль RISQ filter умеет проводить простые проверки (fat fingers):
* списка разрешенных для торговли бумаг (фильтр допустимых/запрещенных инструментов, наличие инструмента в справочнике);
* максимально допустимого объема заявки;
* кратности количества, указанного в заявке, размеру лота по данному инструменту;
* частоты подачи заявок (flood control).
Что понимается по последним пунктом (проверка частоты подачи заявок)?
Как работают крупные брокеры, типа БКС, Финам, у которых 50 тыс. клиентов?
Они резервируют сотни "Транзакционных логинов"?
 
Цитата
Сергей пишет:
А как же "QUIK как риск-сервер (RISQ server)"?
Ответ уже был
Цитата
Sergey Gorokhov пишет:
Цитата
тот самый пишет:
3. как определить оптимальное число транзакций на сервер???
Спросить у брокера, ибо это зависит как от настроек на стороне сервера (там тоже есть флуд контроль) так и от прав на стороне биржи.
Цитата
Сергей пишет:
Что понимается по последним пунктом (проверка частоты подачи заявок)?
Частоту заявок никто не проверяет, идет проверка на частоту транзакций.
Цитата
Сергей пишет:
Как работают крупные брокеры, типа БКС, Финам, у которых 50 тыс. клиентов?
Спросите у них, мы не имеем права разглашать информацию касающуюся брокеров.
 
Что касается проверки на сервере QUIK:
Есть отдельные FIX решения для претрейда о них мы сейчас говорить не будем, так как эти продукты специфичны.
На сервере QUIK есть своя встроенная проверка.
По умолчанию проверка на сервере отключена.
Проверяется частота транзакций в секунду на каждого отдельного пользователя.
Проверяются все транзакции пользователей типа "Новая заявка".
В количестве разрешенных транзакций будут учтены только те транзакции, которые прошли FloodControl. Не прошедшие его учитываться не будут.
Если Ваша транзакция прошла наш FloodControl, но ее отвергла биржа, то такая транзакция попадет в счетчик.
Какая частота настроена у каждого конкретного брокера нам не известно.
Пример:
Если пользователь за раз подает 100 транзакций а на севере разрешено только 10, то это означает что первые 10 транзакций пройдут, а последующие будут отвергнуты.

Текст ошибки в случае нарушения ограничения, будет следующим:
"Количество транзакций превышает максимально разрешённое <число> в секунду."

Что касается проверки на стороне биржи, рекомендуем уточнить у специалистов биржи.
 
хотелось бы поддержать разработчиков и некоторых пользователей. На мой взгляд, они и так сказали вполне достаточно.
Страницы: 1
Читают тему
Наверх