Разработчики! Ошибка 10024 (Слишком частые запросы) - страница 5

 
Renat:

1. Контролировать буфер можно по коду 10024 - это мгновенный ответ самого терминала. То есть, комбинируя OnTradeTransaction и код ответа 10024 можно достаточно точно регулировать скорость, поддерживая ее на максимуме.

2. Нужно контролировать все типы ошибок, обрабатывая известные, а остальные по плану критической неизвестной ошибки.

Главный вопрос - вы уверены, что хотите строить торговую систему на уровне сотен транзакций в секунду так, чтобы упираться в лимиты? Это ведь только для краткосрочного теста годится.

Моя техника торговли далека от HFT трейдинга. Но асинхронный режим использую как основной (не ради скорости, а что бы эксперты могли завершить текущий поток как можно быстрее). Отсюда и интерес. Хочется серьезных знаний о работе асинхронных торговых операций.

Второй момент: действительно хочется пощупать мощность МТ5 архитектуры, пусть только на тесте. У меня в фирме несколько лет разрабатывали специализированный HTF-терминал и прямо руки чешутся устроить небольшое соревнование:))

 

   Любителям "стругать" заявки - для осведомления

http://smart-lab.ru/blog/152259.php 

http://lenta.ru/news/2012/09/10/spam/ 

АХТУНГ: Сбор за неэффективные транзакции Московской биржи / Блог им. porsh / Клуб трейдеров sMart-Lab. Мы делаем деньги на бирже.
  • smart-lab.ru
Торгую на срочном рынке. Обнаружил в брокерском отчете списания биржи «За неэффективные транзакции». Вкратце, тезисно: 1. Неэффективная транзакция (по мению биржи) — любые подача+снятие лимитной заявки без совершения сделки!!! 2. Если у вас >2000 таких транзакций, вы автоматом попадаете на дополнительную комиссию. Т.е. если ваш...
 

Я , так понимаю, биржевой  брокер может настраивать сервер МТ5 чтобы бороться со спамом заявок, ограничивать их частоту при определенных условиях.  К примеру, если товарищ влупил 200 заявок в минуту, его сервер ограничивает по частоте  на определенное время.   Это так?

Как узнать эти ограничения? 

 

В общем подвожу итог своего небольшого исследования. 

Удалось протолкнуть 50 заявок за 50 миллисекунд; 100 заявок за 180 мсек.; 200 за 2100 мсек; 500 заявок за 9000 мсек; 1000 заявок за 23000 мсек. (время указано среднее). Т.е. чем больше нужно протолкнуть тем больше требуется на это времени. Возможно дело в неграмотном составлении кода. 

Фактическое время исполнения пучка заявок конечно больше. Это время по всей видимости равно худшему варианту Время отправки заявки + время исполнения заявки. Но в любом случае в пределе оно стремится к среднему времени исполнения заявки биржой + времени которое уходит на общение с торговым сервером. Если заявок меньше 60, то общаться с торговым сервером не надо, отправили все заявки и ждем их исполнения. На саму отправку уходит миллисекунд 40-60. Если заявок больше - здесь сложней. Нужно дождаться ответа сервера, снова включить отправку заявок, дождаться отказа и т.д. Т.е. идет такой обмен сообщениями по сети. Когда заявок много пул освобождается постепенно, по мере исполнения заявок. Последующие отправки идут маленькими порциями, по одной две заявки, а это сеть. Следовательно время растет. В общем похоже код работает правильно, просто нужно понимать механизм отправки/получения заявок.

Код тестирующий такую отправку прикрепил ниже. 

p.s. Резюмируя можно сказать что 60 заявок - более чем достаточно даже для HFT торговли. Ведь фактически требуется осознанный анализ торговых действий - отправили заявку, получили результат, проанализировали торговое окружение, в случае необходимости отправили новую. Весь цикл явно будет превышать масштаб 40-60 миллисекунд + среднее время исполнения 1 заявки.

Файлы:
 
papaklass:

К большому сожалению, почему то очень грустно.

МТ5 с самого начала продвигается как МУЛЬТИВАЛЮТНАЯ торговая платформа. И что же имеем в сухом остатке?

Возьмем нейтральный портфель из 7 инструментов. При поступлении 10-ти тиков в секунду попытаемся его модифицировать на каждом тике (трейлинг-стоп) ....

А если инструментов в портфеле больше 7-ми? А если нужно модифицировать не одну секунду, а в течение пары минут? А если тики будут поступать чаще, чем 10 тик/сек? А если несколько разных портфелей?

И заметьте НИКАКОЙ ВЫСОКОЧАСТОТНОЙ ТОРГОВЛИ, просто подтягивание стопа.

Вы издеваетесь или просто не понимаете сути?

Это вы считаете, что "просто стопы подтягиваете", а на самом деле шлете громадное количество торговых операций, которые не заканчиваются торговыми сделками. Все вокруг занимаются обслуживанием и накоплением баз данных по вашим пустым транзакциям, а вы делаете вид, что ничего не понимаете.

Вы же не в одиночку со своей железкой играете, а заставляете впустую работать компании и биржи. И этим исполнителям очень не нравится убивать свои базы данных ради тех трейдеров, кто предпочитает не думать, а грузить всех впустую.

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


Реальные примеры для отрезвления:

  • Большой банк-ликвидити провайдер намертво блокирует ваш институциональный FIX коннект при привышении 20 транзакций в секунду. Разблокировка вручную, лимиты повысить не дают.
  • Множество ликвидити провайдеров жестко уведомляют о неприемлемости некоторого вида транзакций, а при игнорировании замораживают торговлю или грозят разорвать договор
  • Насколько я помню, на MOEX(RTS) брокеры покупают канал исполнения пакетами всего по 20 транзакций в секунду.


Ну чтобы совсем отрезвить:

  • вам показали, что 100 заявок на клиентском МТ5 терминале далеко от биржи улетает за 180 мс.
  • поставьте терминал на VPS поближе к брокеру и бирже - получите еще бОльшую скорость.

И после этого вы еще заявляете про "грустно"? По моему, это клиника.

 
papaklass:

.......

Я подтягиваю стопы, КОТОРЫЕ В ЛЮБОЙ МОМЕНТ МОГУТ СРАБОТАТЬ !!! Это реальные приказы на совершение сделки С УСЛОВИЕМ. А то что они не срабатывают - не моя вина, так ведет себя рынок. Ну нет в этот момент на рынке стороны, которая захотела бы закрыть мой ордер. Кстати, никто не мешает тому же брокеру стать второй стороной сделки. Стопы - это мое ПРАВО ограничивать свои убытки!

Так что Ваши рассуждения ...... в "пользу бедных".

   Зачем все время дергать этот трейлинг-стоп, долбя сервер брокера,  если можно сделать его "виртуальным" т.е с выходом по рынку при достижении ценой уровня трейлинга?  Вроде по такому принципу даже "родной" МТ  трейлинг организован.
 
papaklass:

.......

Я подтягиваю стопы, КОТОРЫЕ В ЛЮБОЙ МОМЕНТ МОГУТ СРАБОТАТЬ !!! Это реальные приказы на совершение сделки С УСЛОВИЕМ. А то что они не срабатывают - не моя вина, так ведет себя рынок. Ну нет в этот момент на рынке стороны, которая захотела бы закрыть мой ордер. Кстати, никто не мешает тому же брокеру стать второй стороной сделки. Стопы - это мое ПРАВО ограничивать свои убытки!

Так что Ваши рассуждения ...... в "пользу бедных".

Ну я не сомневался, что в вашей вселенной вы в ЦЕНТРЕ со своими ПРАВАМИ.

Но рекомендую слушать людей, раз собственный голос разума не подсказывает границ. В данном случае границы устанавливает кто-то другой, уверенный в своей центральной позиции. И он более прав, так как именно он несет расходы, обеспечивает инфраструктуру и предоставляет равноправный доступ клиентам.

Так что если придете на MOEX и будете делать более чем 40 пустых транзакций на 1 сделку, то готовьтесь платить комиссию за свое право "всего лишь двигать стопы".

 
  • Насколько я помню, на MOEX(RTS) брокеры покупают канал исполнения пакетами всего по 20 транзакций в секунду.

 Однозначно.

Где-то раньше видел тарифы эти на  MOEX, сейчас не могу найти.   Там не только за частоту транзакций плата, еще и за  частоту получения рыночной информации  -глубины и принтов.  Рроботы -арбитражеры на прямом подключении добрутко денег вваливают на это.

 
papaklass:

у кого то торговый терминал с ограничениями.

Нет в терминале ограничений.

Встаньте в 1 мс от сервера брокера и гоните столько сделок, на сколько хватит денег и терпения брокера/биржи.

Хватит уже глупости нести. Как только перейдете к практике, сразу просветление наступит. И комиссии за пустой трейдинг спам будете с брокером обсуждать.

 
papaklass:

Вы хоть раз торговали 10ю инструментами, имели одновременно 10 позиций, и сопровождали их тралом?
И на каждом инструменте было по 10 тиков в минуту, и все в сторону прибыли позиции, и все заявки по модификации исполнялись за 100 мс? И уперлись в лимит транзакций?

Или это теоретическое ограничение, а в реале вам хватает скорости с головой?

 

Ренат часто перегибает, но не в этот раз.