Блог им. mariodo

Техническая сторона алготрейдинга (квантов)

    • 25 августа 2019, 12:49
    • |
    • mariodo
  • Еще

Добрый день!

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

На данный момент наткнулся на проблему масштабирования  (есть 1 стратегия и 200 аккаунтов).

Задача: произвести одновременный вход по всем аккаунтам (т.е должны зайти в одно время, по одной цене) <= небольшое отклонение допускаю в силу ограниченной пропускной способности стакана в моменте.

Начал упираться в железо (либо, уход на более низкие языки программирования) и получается так, что, если масштабировать систему до 100 / 200 / 300 и т.д аккаунтов — стоимость железа увеличивается на безумные суммы.

(работаю с крипто-биржами).

Хочу понять, как в традиционных финансах реализована техническая сторона алготрейдинга, какое железо используется, какие метрики по итогу есть. 

Буду признателен, если кто-то поделится личным опытом или полезными ссылками на эту тему.

★3
27 комментариев
Колокация
все крутые конторы расположены в непосредственной близости от биржи, их сервера просто забивают потоком ордеров других участников. Оборудование играет не последнюю роль, а может быть и первую.
Андрей Андреичъ, господи, что ты порешь
avatar
 фильм по теме «Операция колибри»
filmitorrentom.org/thriller/operaciya_kolibri_2018_skachat_torrent
Нэш Ван Дрейк (Кот Скрипаля), интересный фильм, посмотрю
avatar
Как сейчас решается задача?

Чтобы быть ближе к бирже насколько это возможно, достаточно арендовать 10-баксовый VPS в облаке Amazon.
avatar
МХ, сейчас это так и работает
avatar
МХ, как показывает мой скромный опыт 10 баксовые впс еле шевелятся. вроде памяти и ядер больше чем на моем старом ноуте под диваном пылящемся, а работают куда медленнее. но может я пока чего не понял. наверно расширюсь позднее, понаблюдаю еще месяцок.
avatar
Ilya, если задача состоит в одновременном выставлении ордеров то должно за глаза хватать.
avatar
МХ, 
10 баксовый дает ужасающее время исполнения из-за тупости пересчета котировок роботами в момент повышенной волатильности рынка. 
Устриц ел ©
Дмитрий Овчинников, время исполнения чего?  Я выше написал про одновременное выставление ордеров. Про исполнение ордеров — это уже к бирже, от стоимости вашего ВПС это время никак не зависит.
avatar
МХ, 

Вот это из лога терминала- время исполнения:

2019.09.09 15:05:47.076 Trades 'XXXXXX': order #108962573 sell limit 6.00 / 6.00 BR-10.19 at 62.15 done in 9.997 ms

А это пинг:

2019.09.09 14:39:33.392 Network 'ХХХХХХ': ping to current access point Access Server IX is 3.02 ms [next point Access Server VI is 3.00 ms]

Так вот у ВПС от Амазон, разница между пинг и исполнением будет не 3 раза, а 30. Или 300.
Дмитрий Овчинников, 
Я понял, вы под «временем исполнения» подразумеваете раундтрип + время необходимое бирже для исполнения вашей заявки. Тут действительно, чем дольше пинг тем дольше «время исполнения» (в вашей терминологии). Но если заметили, в посте речь идёт о криптобиржах, большинство из них используют облачные мощности того же Amazon (европейские, японские, американские) или Alibaba Cloud, Huawei Cloud (китайские и гонконгские), и пинг с арендованной 10-баксовой впски до «биржи» часто бывает даже меньше 1ms.
avatar
МХ, 
вопрос не в пинге, а в скорости обработки информации и выдаче ордеров терминалом, установленным на маломощный ВПС с разделением ресурсов.
По моему опыту работы с MOEX с терминала, размещенного в Amazon, достичь приемлемого времени исполнения не получилось.
Про криптобиржу ничего не скажу, информацией не владею и не интересуюсь.

Дмитрий Овчинников, вы невнимательно читали топик. Вопрос заключается в следующем — "Задача: произвести одновременный вход по всем аккаунтам (т.е должны зайти в одно время, по одной цене". Т.е. у человека на бирже 200 аккаунтов, надо синхронно выставить ордера по одинаковой цене. Обрабатывать например, ничего не надо.
Если вы торгуете на MOEX и достичь приемлемого времени не получилось — то это именно потому, что пинг слишком высокий. Сервера MOEX в Москве, а ближайшая точка присутствия Amazon — в Ирландии например. Или вы вообще не задавались таким вопросом, как регион размещения ВПС и по умолчанию подняли её в Америке. Вот ваш пинг вырос с 3 мс до 300.

avatar
МХ, 
а я отвечаю вам, а не топикстартеру. 
И отвечаю вам на ваш комментарий, что ВПС от Амазон за 10 USD решает.
Так вот ДЕШЕВЫЙ ВПС от Амазон или от любого другого провайдера не решает и совсем не из-за пинга, а из-за недостатка вычислительной мощности.

Дмитрий Овчинников, 
а какая вычислительная мощность требуется для отправки готового ордера на биржу, по вашему? ))

Ilya, если задача состоит в одновременном выставлении ордеров то должно за глаза хватать.

Вот мое утверждение. Вы с ним не согласны чтоли?
avatar
У вас один поток формирует и отправляет ордера по всем аккаунтам на биржу?
Про какую биржу идет речь?
avatar
yurikon, BitMex
avatar
mariodo, отправка 1 ордера через HTTP на Битмекс занимает примерно 0,5 секунды. Если вы делаете «синхронно» — последовательно  отправку 100 ордеров — это 50 секунд. Мощность железа тут ни причем. Расстояние до биржи поможет сэкономить вам не больше 50-100 мсек.
Сделайте, чтобы одним ордером занимался один поток. Также учтите, что там есть Rate Limit на кол-во запросов к бирже с одного IP. Поэтому вам надо дробить коннекты по разным адресам либо договариваться с биржей.
avatar
mariodo, все 200 аккаунтов на одной бирже? Какой в этом практический смысл? Почему нельзя все сделать в пределах одного аккаунта?
avatar
если у вас отправка ордеров синхронная, то надо, конечно, сделать асинхронной и разместиться поближе к бирже. но, вообще, схема выглядит «серой»
avatar
day0markets, что конкретно имеется ввиду под «асинхронностью»?
avatar

теги блога mariodo

....все тэги



UPDONW
Новый дизайн