LINUX.ORG.RU

Внутренности фондовых бирж: софт, который исполняет ордера.

 


0

4

Посоветуйте бложиков/статей по теме.

На биржу летят ордера разных типов, биржа их матчит/исполняет. Вот интересно как физически всё это работает. Например, сколько железных серваков на санкт-петербургской бирже - наверняка же одного однопоточного хватает (по моему опыту разработки игровых серваков). Какой софт это физически делает, как называется, на чём и кем написан. Сходу кажется, что это должен быть не сложный однопоточный сетевой демон на сишечке, который жрёт много оперативы, висит на epoll, умеет матчить ордера, умеет куда-то быстро писать логи/историю.

https://www.youtube.com/watch?v=gfdAfhSM724 - такое смотрел


Ответ на: комментарий от pon4ik

Лицемерие в критике без предложения альтернатив

Альтернативное определение для «лицемерия» - это «честные правила».

без предложения альтернатив

Альтернативы были предложены - ввести «честные правила».

А лицемерие это… Если сажают за «финансовые пирамиды», то почему избирательно.

anonymous
()
Ответ на: комментарий от anonymous

Я где-то оправдывал ритейл - еще одну торговую площадку.

Собственно это суть капитализма, всё есть торговая площадка. Примерно как в ООП - всё есть объект.

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

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

pon4ik ★★★★★
()
Ответ на: комментарий от anonymous

Альтернативное определение для «лицемерия» - это «честные правила».

Давай ещё введём определения для «альтернатива», «лицемерие» и «правила»…

Альтернативы были предложены - ввести «честные правила».

Попытка увести беседу в рекурсию всегда расценивалась мной как акт трусости.

А лицемерие это… Если сажают за «финансовые пирамиды», то почему избирательно.

Сажают за неудачные схемы и только неудачников.

pon4ik ★★★★★
()
Ответ на: комментарий от anonymous

Тот анон мощно напоминает джуниора, который рассуждает какие мененджеры плохие и как едят его хлеб и ничего не делают, да ещё и процесс дурацкий какой-то ввели, нет что бы просто всем вместе кодить.

pon4ik ★★★★★
()
Ответ на: комментарий от anonymous

про заговоры капиталистов

Ты лучше поведай почему ты суда влез с национализмом и теорией заговора? Да еще хочешь приписать эту чушь мне.

anonymous
()
Ответ на: комментарий от pon4ik

Тот анон мощно напоминает джуниора, который рассуждает какие мененджеры плохие и как едят его хлеб и ничего не делают

Где я это сказал? Не приписывай свою шизу мне.

anonymous
()
Ответ на: комментарий от anonymous

Ты тут вообще один в треде, Серёжа. Серёжа, мы голоса в твоей голове.

anonymous
()
Ответ на: комментарий от anonymous

Ну там было что-то про отсутствие честности в том, что при прочих равных обладающий бОльшим ресурсом побеждает обладающего меньшим.

pon4ik ★★★★★
()
Ответ на: комментарий от anonymous

Сделай это, Серёжа! Пусть эти мрази ответят за свои слова! Сделай это прямо сейчас!

anonymous
()
Ответ на: комментарий от pon4ik

А ну да, точно. Это грибная квантовая физика до добра не доводит.

anonymous
()
Ответ на: комментарий от pon4ik

какие мененджеры плохие и как едят его хлеб и ничего не делают

обладающий бОльшим ресурсом побеждает обладающего меньшим

Как одно выводится от другого?

Заметь, я не говорил второе предложение, это тоже твоя шиза.

Я говорил про эксплуатацию положения в пирамиде. Что такая «честность», а именно, положение в пирамиде - это про пирамиду.

anonymous
()
Ответ на: комментарий от anonymous

это тоже твоя шиза.

А ты не охуел ли а? Это моя, сука. Положил обратно. Резко, блядь.

anonymous
()
Ответ на: комментарий от pon4ik

Давай ещё введём определения

Давай сверим часы. Что такое «лицемерие»? По моим часам «лицемерие» - когда слова не савпадают с делом, когда сам себе противоречишь.

Жду твоих показаний часов, непротиворечащих предыдущим

Лицемерие в критике без предложения альтернатив

anonymous
()
Ответ на: комментарий от anonymous

Анон, залезь на табуретку. Будешь воображать себя Лениным на броневичке.

anonymous
()

Анон ушел писать свой «Манифестъ».

anonymous
()
Ответ на: комментарий от XoFfiCEr

надо знать где торговать

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

cocucka ★★★★☆
()
Ответ на: комментарий от cocucka

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

XoFfiCEr ★★☆☆
()
Ответ на: комментарий от XoFfiCEr

Я лично заработал на росте цены.

Другими словами «Выиграл в рулетку», т.е. на каждые, скажем, 10 удачных сделок будет 1 неудачная, которая весь твой профит и съест.

А ты продолжай всего боятся.

Я не боюсь, я просто оцениваю риски. Твоя биржа годится только на поиграться, с арбитражом например. Но там объемы не стоят трудозатрат. А чем там торгуют вообще курам на смех. Ладно крипта, но там еще есть «ноты обеспеченные акциями», там даже дивиденты обещают. Но нотой на гугл вообще торговали полтора инвалида. Детский сад.

тысячи людей там торгуют без проблем и кстати без комиссий.

Отличный показатель. Ставки на спорт тоже тысячи людей делают.

cocucka ★★★★☆
()
Ответ на: комментарий от cocucka

Выиграл в рулетку

Если в рулетке нет сектора «зеро», то казино придется играть по «честному» - на равне со всеми игроками. Но кому нахрен нужна такая «честность» (особенно американской рулетке с двумя секторами «зеро»).

anonymous
()
Ответ на: комментарий от XoFfiCEr

Не знаю, что у тебя там за стратегия. Но все «криптотрейдеры», которых я знал, пытались предугадать куда двинется рынок и заработать на этом. Это именно что лотерея, причем хреновая лотерея. Выигрыши там небольшие, зато проигрыши огромные. Ты можешь предугадать волну хайпа, как было с битком несколько лет назад и быть в +200%, но такое редко бывает. Обычно ты чуть-чуть опаздываешь и покупаешь ровно перед обвалом или продаешь перед ростом. Еще никому не удавалось предугадать поведение рынка.

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

cocucka ★★★★☆
()
Ответ на: комментарий от cocucka

ты очень упрощенно сосиска все воспринимаешь. но я тоже сначала погорел на ripple. а потом создал свою стратегия и она неизменно выигрышная.

XoFfiCEr ★★☆☆
()
Ответ на: комментарий от cocucka

я видел сотни идиотов-новичков которые возмущались а почему купленная мною крипта не растет в цене.

  • купили на хаях
  • купили то что с малым объемом торгов
  • купили не волатильное

это 3 типичные ошибки.

XoFfiCEr ★★☆☆
()
Ответ на: комментарий от cocucka

Ну может на криптобирже от Васяна такого хватит.

В реальности разница куда меньше, чем ты можешь себе представить.

Они не могут себе позволить ни одного ордера потерять.

Могут. Никакой ответственности за это нет.

Нагрузка там гигантская,

Нет.

задержка должна быть минимальная.

Опять же - нет. «минимальная» и минимальная - это две большие разницы.

Хз, как на стороне биржи, знаю только общие принципы. А вот со стороны трейдинга все очень серьезно.

Это ты узнал из историй в интернете?

Для некоторых биржевых продуктов допустимая задержка десятки наносекунд.

Похоже, что да. Впрочем, это было очевидно. Ты даже не понимаешь что такое десятки наносекунд. Ты ошибся порядков так этак на 6-10.

Это с момента получения последнего состояния с биржи до отправки ордера на биржу.

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

Самые критические компоненты сделаны на FPGA

Даже здесь ты ошибся. Наносекунд в принципе не существует в рамках фпга. К тому же, почти вся обработка - лукапы в памяти. Очевидно, что fpga никак не ускорит память. Как и места у тебя не хват на какой-либо осмысленное кол-во памяти.

Поэтому фпга это больше про трупут и про условный реалтайм.

остальное что должно быть быстрым на C++

С++ и быстро не совместимые вещи.

в основном на шаблонах.

В основном на паре трюков умерших десять лет назад.

Не самый критичный софт на С# и Java.

Странная какая-то у тебя логика. В пайплайне нету «не самых» мест. К тому же жава/дотнет - это про квалификацию разработчиков. Какой смысл её экономить, если у тебя уже есть те, кто может в fpga?

И не стоит недооценивать нагрузку на бирже. На открытии торгов «провода докрасна накаляются», особенно после выходных.

Насколько я знаю они гоняют текст по tcp? О чём ещё можно говорить?

anonymous
()
Ответ на: комментарий от cocucka

Никаких гарантий, что твой ордер будет исполнен в порядке очереди, а не прилетит в нее хз когда.

Это везде как.

anonymous
()
Ответ на: комментарий от cocucka

Все эти истории про fpga/лисы/макросы/шаблоны - сказки для бедных. Это не про летенси - это про развод на доллары. А уход от базовых подходов имеет лишь одну цель - усложнить аудит.

Как пишут софт на C++ для HFT.

Это не С++.

Темплейты,

Это не темплейты.

прогрев CPU, все дела.

Это просто смешно. Никакого прогрева не существует. Но и самое важное, для общего развития, как только видишь stl в рассказах о лоулетенси - знай, что перед тобою клоуны.

https://youtu.be/NH1Tta7purM?t=748 - проверка флагов ифом, использование else, абсолютное непонимание что такое инлайн и как работает кэширование.

https://youtu.be/NH1Tta7purM?t=987 - хип и смартпоинтеры в лоулетенси. Это даже не начальная школа. Динамический диспатч туда же. Указатели - туда же.

https://youtu.be/NH1Tta7purM?t=1028 - ясли, попытка рассказать о том, что лямбда чем-то отличается. Отличий нет, кроме проблем. К тому же - асинхронщина в контексте high Performance - это даже не ясли.

https://youtu.be/NH1Tta7purM?t=1133 - попытки оправдаться за аллокации. Никакие пуллы ничего не меняют. Фрагментация памяти - позорище. Рассуждения про строки кода во free, уверенность в том, что free куда-то отдаёт какую-то память. Пациент не понимает механизмы работы памяти даже на самом базовом уровне.

Запись msvc в компиляторы. О С++ пациент ничего не знает. Туда же и clang.

Нелепые заявления про исключения. Замер оверхеда в us(это уже само по себе нелепо и говорит лишь о том, что перед нами), которых там не может быть - он перепутал свои фантазии и реальность.

https://youtu.be/NH1Tta7purM?t=1225 - флоаты в контексте летенси.

https://youtu.be/NH1Tta7purM?t=1285 - нелепость. Ни то, ни другое - знающий С++ человек не напишет. Хотя ни первое ни второе не С++.

https://youtu.be/NH1Tta7purM?t=1549 - хорошо жить во вселенной, в которой хешмапа из stl быстрая. Да он ещё и использует o-нотацию в контексте летенси. Это уже в принципе полная профнепригодность.

anonymous
()
Ответ на: комментарий от anonymous

Насколько я знаю, FPGA применялся некоторыми трейдерами для парсинга FAST/FIX-пакетов. Напрямую был подключен к системной шине древних AMD-процессоров, которые тогда позволяли это делать. FAST - это бинарная версия FIX. На ММВБ сейчас часто используют свой бинарный Plaza II. Так что уже не совсем текст.

Ну и говоря про 6-10 порядков, ты, наверное, имеешь ввиду исполнение ордера, а не его прием. NYSE в 2009 писали, что у них время приема ордера 5 мс. Не наносекунды, но уже близк. 10 лет прошло.

r_a_vic
()
Ответ на: комментарий от r_a_vic

Ну и еще, кто-то тут выше писал, что для исполнения ордера его цена должна сойтись. Это не совсем так, ордер может исполниться по другой цене. И это не приятно, если этот был SL-ордер.

r_a_vic
()
Ответ на: комментарий от r_a_vic

Насколько я знаю, FPGA применялся некоторыми трейдерами для парсинга FAST/FIX-пакетов.

А использовать нормальные протоколы им в голову не приходило? К тому же, летенси у этого парсинга никак не может измеряться в наносекундах.

FAST - это бинарная версия FIX.

Это не имеет смысла. Разница между текстом/бинарём не в том как кодируются числовые значения.

На ММВБ сейчас часто используют свой бинарный Plaza II. Так что уже не совсем текст.

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

Ну и говоря про 6-10 порядков, ты, наверное, имеешь ввиду исполнение ордера, а не его прием.

Что такое приём? Хотя колхозники очень любят придумывать ахренительные метрики и замерять хрен пойми что. Ну в целом схема уже понятна. Нам нужно рассказать обывателю о том как у нас всё быстро и круто. Мы берём вычленяем какое-то место из пайплайна, наиболее примитивное и рассказываем об этом. Хотя приём какой-либо управляющей команды даже на пхп не занимает много времени.

NYSE в 2009 писали, что у них время приема ордера 5 мс.

Ты наверное хотел сказал мкс? Опять же, ты понимаешь почему используется эта метрика? Это чисто внутренняя метрика, которую невозможно никак замерить из вне. Зачем о ней говорить? Это же чисто для развода лохов на деньги.

Не наносекунды, но уже близк.

Даже если ты говорил об мкс - у тебя крайне странная логика. Подумаешь три порядка. Совсем близко.

10 лет прошло.

Здесь ещё одна проблема. Может это будет тайной для тебя, но мир уже давно не развивается в сторону летенси - это невозможно. Наоборот - современное железо разменивает летенси на трупут.

Поэтому нет смысла рассказывать про 10 лет. С того времени ничего не поменялась. Задержи памяти остались теми же, задержки исполнения тоже.

Возможно только в fpga частоты заметно подросли, но в любом случае до наносекунд там ещё далеко. Я за их прогрессом не слежу.

anonymous
()
Ответ на: комментарий от XoFfiCEr

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

Поэтому бирже ничего не мешает менять порядок ордеров как угодно. И ты об этом ничего не узнаешь. А даже если узнаешь - ты ничего не сделаешь. Потому как никакой ответственности за это нет.

anonymous
()
Ответ на: комментарий от anonymous

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

XoFfiCEr ★★☆☆
()
Ответ на: комментарий от anonymous

Судя по описанию это такой же текст

Plaza II - бинарный протокол с шифрованием. Причем он устроен так, что у клиента должен стоять некий роутер сообщений (программный), который их шифрует и по сети засылает на биржу по закрытому протоколу. ПОдключение к самому роутеру тоже по сети или локально через IPC (вроде разные варианты для разных ОС, но я уже не помню). Многие жалуются на задержки Plaza II.

Насчет миллисекунд. Тут я не прав, да. Были действительно миллисекунды, но это время исполнения ордера. Время приема (регистрации) очень важно для фронтраннига. Ты засылаешь ордер. Он регистрируется, ему присваивается номер. И дальше он при нахождении парного ордера исполняется в порядке присвоенного номера. Если таких ордеров было два, то важно, чтобы твой зарегистрировали раньше. А время, когда найдется парный ордер может быть достаточно большим.

Скорее всего что-то доказать бирже ты действительно не сможешь.

r_a_vic
()
Ответ на: комментарий от r_a_vic

Кроме того. Если я правильно помню, то до примерно 2009 у ФОРТС подключение было через MS SQL Server. То есть взаимодействие было устроено вызовом хранимок MS SQL. Не знаю, было ли при этом ядро биржи реализовано на нем же, но это немного характеризует используемые тогда технологии.

r_a_vic
()
Ответ на: комментарий от r_a_vic

Там очень приближенно описана архитектура самого быстрого трейдера FORTS шестилетней давности.

Здесь написана полная чушь. С тем уровнем колхозников, которые обитают в данном области - впарить можно что угодно. Да что там говорить - они даже сервера говна выдают за что-то достаточное. Продаётся просто мусор даже по меркам 14 года.

Далее, если кто-то замеряет оверхед в микросекундах(и вообще в каких-то там секнудах) - это уже клоун, по определению.

Судя по всему это маздайское говно на делфятне, потому как автор рассказывает о том, что маздай и делфятня - это круто. Это не просто клоун - это всем клоунам клоун.

Очередное подтверждение уровню квалификации участников данной области.

anonymous
()
Ответ на: комментарий от anonymous

Ты не получаешь обновления каждый ордер

В Plaza II Есть возможность видеть журнал всех ордеров. Поэтому по сути ты получаешь каждый ордер. Но при этом стакан придется посчитать самому. Хотя может и обновление стакана приходит на каждый ордер журанала. Надо читать документацию для этого.

В большинстве других подключений ты вообще не получаешь информацию о чужих ордерах. Только стакан и статус своих ордеров.

r_a_vic
()
Ответ на: комментарий от anonymous

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

r_a_vic
()
Ответ на: комментарий от r_a_vic

Plaza II - бинарный протокол с шифрованием.

Ещё раз. Есть правильные представления о бинарном протоколе, а есть представления колхозников-птушников. Вот твой пример из второго, а я говорю о первом. Там нет ничего бинарного. То, что к олхозники решили не кодировать числовые значения текстом - это не делает протокол бинарным. Там существует много критерием помимо кодирования числовых значений.

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

ПОдключение к самому роутеру тоже по сети или локально через IPC (вроде разные варианты для разных ОС, но я уже не помню). Многие жалуются на задержки Plaza II.

ipc/сеть - это уже птушный колхоз.

Время приема (регистрации) очень важно для фронтраннига. Ты засылаешь ордер. Он регистрируется, ему присваивается номер. И дальше он при нахождении парного ордера исполняется в порядке присвоенного номера. Если таких ордеров было два, то важно, чтобы твой зарегистрировали раньше. А время, когда найдется парный ордер может быть достаточно большим.

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

К тому же, в данном случае вообще неважна летенси - важен лишь сохранять порядок прихода ордеров «из провода». Здесь у тебя так же проблема с логикой.

Судя по всему это какая-то птушная метрика для развода лохов, как я уже и говорил. Колхозники просто замеряют время на парсинг сообщения и пишут его.

К тому же, в рамках современного железа замерить летенси чего-то даже на уровне микросекунд невозможно. Не говоря уже о нано-секундах. Это всё проявления невежества, не более.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.