<HELP> for explanation

Блог им. 3XTR

Самый быстрый интерфейс FORTS = Plaza2 + CGate

Итак. Немного скучновато самому раскуривать тему быстрого доступа к бирже. Готов поделится информацией, которой владею на данный момент, а также последующим опытом написания реального торгового робота на этой платформе. Но для этого мне нужны ваши палюсики и хотя бы какая то активность в комментариях. Я не сомневаюсь, что уже давно имеется много людей, которые разобрались в технологии и успешно торгуют, однако на Смартлабе по прежнему достаточно участников, которые спрашивают с чего стоит начать программировать роботов и просят предложить им «что то посерьезнее» чем готовые платные фреймворки, оснащенные всеми необходимыми средствами интеграции как в инфраструктуру биржи так и в инфраструктуру брокера.

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

Вот ряд вопросов, ответы на которые вам нужно будет знать перед тем как начинать разработку своей торговой системы.
1) В чем отличие программных продуктов по типу TSLAb, StockSharp, LiveTradeHFT и прочих от голого софта без оболочки
2) Каким образом биржа пускает к себе внешние приложения, какова должна быть архитектура подобного взаимодействия по мнению биржи
3) Какую клиентскую часть/API для Плаза2 выбрать, их есть две ClientGate и СGate. Не смотря на похожие названия это разные вещи.
4) Как завести учетную запись на бирже, зачем нужна тестовая запись и когда можно будет пускать робота через торговую запись
5) Какой язык программирования выбрать для навписания приложения и где брать тестовые примеры и документацию по АПИ

В комментариях пишите какие еще вопросы вас интересуют по теме HFT, буду пристально обращать внимание на эти вопросы, буду пробовать разбираться в них и объяснять тут простым языком.

Самый быстрый интерфейс FORTS = Plaza2 + CGate 
 

Если и правда готовы рассказать то вот )
Интересно было бы узнать стек торгового робота. К примеру
1. На чем написано ядро робота
2. клиентская часть (MVC/WPF)
3. какая СУБД используется Microsoft SQL ?
4. используете ли Microsoft CEP
5. что вы там HFT'шники находите в стакане, хоть один пример.
6. Хотелось бы подробнее про эту схему, актуальна ли она, и схему hft на Российском рынке )
avatar

evgen000

Евгений, нужно понимать, что я не палю тему, а исследую, попутно освещаю подробности чтоб привлечь людей и посмотреть такие вот картиночки как ваша. Если бы у меня был готовый бизнес-цикл, врядли бы я стал его публиковать. Но все же я могу предложить свое мнение по вашим вопросам:
1) Ядро робота предпочтительно на С++, менее предпочтительно С# или Java. Мой выбор C# в угоду удобству.
2) Консольное приложение, внутренняя организация кода объектная.
3) Никакой СУБД в ядре, а так любая
4) Код должен быть кроссплатформенным, на Microsoft не ориентируюсь
5) В стакане ищутся крупные заявки, которые тормозят движение цены в одну из сторон. В какую сторону тормозят против того движения и засовываем свою заявку.
6) Схема очень общая, но как минимум не включает транспортную инфраструктуру, а это поважнее будет некоторых блочков.
Евгений, Это слишком сложно. CEP для HFT не годиться. Маркет-мейинг и арбитраж это сильно конкурентный бизнес. Движки написаны под конкретную задачу.
Здорово, что на смартлабике есть такие люди :>
ну и парочка вопросов от любопытного нуба
Прямое подключение, максимально оптимизированный алгоритм + сервер в локальной сети биржи это уже хфт, или хфт это нечто большее?
Как высока частота дискретизации времени, с которой биржа обрабатывает заявки, 1мс или гораздо глубже?
На сколько микро\миллисекунд я должен опаздывать, чтобы гарантированно не успевать за конкурентами?
avatar

v3Rtex

v3Rtex, не могу ответить на эти вопросы, надежных данных пока не имею, по моему, не менее 10мс заявка обрабатывается только в ядре биржи, но не понятно возможно и на шлюзе. Кроме того, это при подключении через интернет. При колокейшене биржа обещает подключать к отдельной инфраструктуре, возможно там ситуация иная, но тогда это плохо, ведь если все игроки были бы в равных условиях, то вообще не имело бы значения какая задержка на стороне биржи. Кроме того, выставление заявок и получение рыночных данных это две разные истории.
v3Rtex, это хфт. Гарантированно опаздывать вы будете, даже если будете отставать на одну наносекунду, так что любая оптимизация имеет смысл, если ваша цель среагировать на событие раньше других. Раундтрип заявки на бирже сейчас около 11-и миллисекунд. Это время от посылки вами приказа, до получения вами идентификатора вашего ордера в стакане. Данные с биржи приходят каждые 3-мс. Тоесть участники узнают о вашей заявке через 3-мс после того как она встала в стакан. Еще, могу добавить к автору. Не существует на рынке коммерческих систем для тестирования hft стратегий, так что таковую вам придется писать самому, что весьма сложнее, чем реализация робота, т.к вам придется практически переписывать алгоритмы торговой системмы биржи, чтобы тестировать алгоритмы в условиях максимально приближенных к реальным. Так же, если в ваших алгоритмах будет много подстроек, то вам нужны будут прорвы вычислительных ресурсов для подстройки.
stitrace, не дешевле ли проводить тестирование на живой системе? Существуют процессы, которые нельзя смоделировать, например, та же турбуленция в авиации никак не учитывается конструкторами, просто берется самолет поднимается в воздух и там уже смотрят как он ведет себя на деле. До этого примерно понимают на глазок, что такой запас прочности должен быть достаточным, а еще проще просто берут параметры предыдущего самолета.
Cristopher Robin, иногда дешевле, иногда нет. Но в самой системе есть один весомый плюс, в процессе реализации, досконально разбираешься в системе биржи. Турбуленция, кстати, тестируется в аэродинамической трубе, насколько я знаю.
stitrace, ошибаетесь, в трубе нет турбуленции, там ламинарный набегающий поток.
Cristopher Robin, турбуленция это тоже самое, что и турбулентность? Тогда как раз её и тестируют в аэродинамической трубе, подкрашивая поток воздуха и изучая завихрения за различными элементами конструкции ЛА и изучая какое влияние они оказывают на динамические характеристики. Хотя я не специалист в аэродинамике, могу и ошибаться. Что касается темы. У вас имеется, алгоритм, скажем с парой тройкой различных параметров с известным диапазоном значений. Сколько уйдёт времени на оптимизации на реальных торгах?
stitrace, все верно, только вы имеете в виду турбуленцию которую создает сам самолет, а я говорю о зоне турбуленции в которую самолет попадает, когда его трясет в воздухе. Первый эффект можно минимизировать, подобрав более гладки формулы поверхностей и это вполне себе неплохо расчитывается, можно даже на компьютерных моделях без трубы придумать годную форму объекта. В вот на турбуленцию которая вызвана конвекцией среды тупо забивают, даже зная все дифуры и параметры среды, все равно считать бессмысленно — процесс не линейный и слишком быстро расходится.
хорошие сиськи
Шакиров Альберт, сорян не попал по плюсику…
Шакиров Альберт, Но и тема автора достойна внимания…
avatar

alt

alt, достойна, если разбираешься в ней
Шакиров Альберт, тем кто разбирается моя тема бесполезна, имхо.
Интервал между приходом коммитов на колокейшене 3 мс, на удаленном — 15 мс. Реально раундтрип заявок у меня где- то 5 мс, и это без колокейшена
avatar

uralpro

uralpro, вместе с задержкой транспорта сколько получается?
Cristopher Robin, а это и есть с транспортом. Пинг от хостинга до биржи около 1 мс, то есть 2 мс на транспорт. Но это, конечно, в идеальных условиях. Вообще, раундтрип сильно зависит от объемов торгов
uralpro, у меня на тестовом полигоне, где вообще нет нагрузки ни разу меньше 10мс не получалось, при этом среднее было около 17
Cristopher Robin, про тестовый полигон сказать ничего не могу, давно уже там не тестирую
uralpro, возьмем ваши данные как самые актуальные, а можно еще айпи адрес вашего промсервера узнать?
Cristopher Robin, лучше воздержусь от сообщения моего IP, но могу сказать, что это TEL hosting. Выбирал по меньшей задержке до биржи
uralpro, я спрашивал айпи промсервера биржи, а не айпи клиента.
Cristopher Robin, на тестовом полигоне совсем другие цифры задержек, конечно.
stitrace, больше или меньше?
Cristopher Robin, сильно больше. Я в начале неправильно написал, т.к. давно не смотрел сколько задержка на колокэшне. Раундтрип заявки действительно около 3-х миллисекунд, но в моменты активности бывает что подскакивает до 10-11, а в редких случаях бывает и >30.

На тестовом полигоне же, я никогда не видел задержки меньше 16 мс.

Задержку я считаю, от момента исполнения POST в приложении до получения ответа в коллбэк своего робота.
stitrace, очень интересно. Вы через интернет подключены?
Cristopher Robin, бывает через инет тестирую, это добавляет максимум пару ms к раундтрипу. Но сути не меняет.
uralpro, 5 мс по плазе2, так?
вопрос, если у меня из дома до брокера пинг порядка 5мс,
есть ли шанс что из дома до биржи будет пинг пошустрее?
я пробовал пинговать 91.208.232.246 (нашел где-то в интернетах) — он не возвращает ответ.
до ближайшего к нему xxx.MACcomnet.net порядка 3 мсек.
как достичь пинга 1мс без колокейшена? у меня до роутера домашнего 1 мс…
avatar

ПBМ

ПBМ, ну если вы в Москве, то есть шанс что напрямую к бирже будет пошустрее. Пинга в 1 мс без колокейшна достичь нельзя. У меня от хостинга до биржи в одну сторону 2 мс. К роутеру вы через вай фай подключены? тогда может быть, там еще шифрование, коррекция ошибок и т.п.
Правильно ли я понимаю разницу между CGate и ClientGate?
Это две разные библиотеки об одном и том же.
CGate больше подходит для любителей всяких Си и линуксов, а ClientGate для Дельфи/C# и виндовса?
И разницы в скорости, логике потоков и таблиц у них нет?
Алексей_a72, разница в скорости есть, об этом говорит сама биржа. ClientGate более старая и медленная, ее поддержка скоро прекратится, а CGate новая и быстрая. Насколько я понимаю, преимущество CGate в отказе от СОМ и промежуточных преобразований данных.
как оцениваете прирост производительности, с появлением возможности компилировать код C# в машинный?
avatar

moonwalker

moonwalker, не оценивал, ориентируюсь на мнение других людей в этой области. Скажу только что в примерах CGate присутствуют даже исходники на ASM.
на asm это уже хардкор, хотя можно в fpga зашиться, но надо ли это частнику.
avatar

moonwalker

Кстати к вопросу о том, что для hft софт должен быть только самописный. Есть уже много компаний, который предлагают готовые решения, включая бэктест и оптимизацию, в том числе и с fgpa. К примеру deltix, за который просят 90к в год. А маркетсетера вообще бесплатная и обеспечивает хороший латенси.
avatar

moonwalker

moonwalker, что такое маркетсетера?
Cristopher Robin, marketcetera.org
moonwalker, вряд ли они предложат решение для РТС за вменяемые деньги.
stitrace, по фикс протоколу спокойно подключается
moonwalker, FIX/FAST это, как говрят, обвязка вокруг Plaza 2. Тоесть подключившись в FIX/FAST вы будете гарантированно медленнее других, т.к. получаете оверхед на приведение данных к FAST/FIX формату.
Как зарабатывает htf, скальпинг?
avatar

Anton

Anton, так же как и обычный скальпинг. За счет большого количества сделок достигается большая прибыльность.
тут еще один момент — плаза2 она небесплатная, стоит например 4700 в ITInvest+10% от биржевого сбора+сам биржевой сбор. Т.е. имеет смысл заниматься этим если стратегия, которую надо реализовывать на плаза2 приносит хотя бы 10тр в месяц (ну 5тр расходы, 5тр останется) — да и то это смешно. Если бы 100тр в месяц приносит, тогда да. Но, предположим, 100тр в месяц. В месяц допустим 2% (т.е. 24% годовых — неплохо). Т.о. депо должно быть 5млн рублей или около того. Просто хотел сказать, если у кого нет 5млн рублей, то плаза2 особого смысла не имеет, проще автоматизировать через терминал брокера.
Счастливый Конец, HFTшники не меряют прибыль в процентах, т.к. от размера депозита величина прибыли мало зависит.
Это потому, что тема почти не масштабируется. Если HFT робот даёт надёжную прибыль при выставлении заявок в 1 лот, это не гарантирует прибыль при заявках в 100 лотов и даже при 10.
Если имеешь хороший грааль (а они есть, см. ЛЧИ) то можно хорошо рубить и при 100к и 200к депозита. Хорошо это от 10к в день.
А вообще отгонять народ от плазы это для правильных людей гуд! Денег вначале надо не мало.
4000р за логин, +4000р если нужен ордер лог и ещё раз и то и то за подключение единовременно. + НДС + ещё брокер своё накручивает + за хостнг, если хош нормальный пинг. moex.com/s324#gateway
А если хочешь в сетку биржи свой комп, то просто за место для него там 10000р/мес + интернет там 2000р/мес(1мbit, 10м->15к). + 1000р за ip-адрес. moex.com/a1374.
Но это всё копейки. Потому, как комп того форм-фактора, что они требуют(1U) стоит от 80000. www.wit.ru/equipment/server/server-Intel-1cpu-e3-1u-hotswap.asp
И биржа ещё не малые бабки возьмёт за установку и конфигурирование всего этого, даже если всё и так настроено.
Так шо, если нет рабочего, проверенного алгоритма, лучше не соваться. Вариант, «щас не пашет потому что скорость мала. а на плазе пойдёт» не прокатит!

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Залогиниться

Зарегистрироваться
....все тэги
Регистрация
UP