tgindex

Один микросек - C++, low latency, concurrency, HFT

883
подписчиков
Охват к подписчикам
328,3%
ERR
Реакции к просмотрам
0,70%
404 на 20 постов
Пересылки к просмотрам
1,05%
609
Постов в день
0,0
всего 20

Где отзываются чаще

доля реакций к просмотрам
  • 22 апр. 2025 г.Месяц-два назад начал изучать новый язык, чего не делал уже несколько лет. Предыдущим новым языком был Golang аж в 2018-м, но он меня не вштырил, хотя были приятные моменты и откровения. Что за язык то? Вы угадаете его с 2х слов: blazingly fast. Подсказываю: 100% memory safe. Правильно, это Ржавый. Не буду ничего больше писать, а то получу сотни отписок от недовольных коллег по плюсам. Но мне он нравится. Параллельно вникаю в Solana.1,45%
  • 30 авг. 2024 г.Обнаружил, что Алиса теперь использует YandexGPT для ответа на несценарные вопросы. Пока ещё не придумал, как это использовать, но вот вам Алиса, пишущая на плюсах1,20%
  • 14 сент. 2024 г.Что я понял про ведение телеграм канала (с января 2024) - Можно ссылку на свой канал положить в свой профиль. Смотри пример: @yukigaru. - Очень хорошо для меня сработала публикация в Linkedin, она принесла несколько десятков новых подписчиков. Чувствую, что в этом способе привлечения для меня еще есть большой потенциал. Взаимопиар похожих каналов работает, но мне принесло умеренно (до 20, насколько помню, у "on the way to 10x engineer"). Платная реклама в инфо-канале @seniorcpp принесла мне очень мало, это того не стоило, но попробовать хотелось. - Если вы премиум юзер, то вы можете оставлять комментарии в чужих каналах от имени своего канала. - Простые комментарии в чужих каналах дают мне примерно +1 подписчик на комментарий. Качественные расписанные комментарии могут дать больше, но я не уделяю этому время. - Однако некоторые каналы заранее запрещают писать от имени своего канала (в них просто нельзя выбрать свой канал). Существуют так же боты, удаляющие комментарии от чужих каналов. - Легко отличить какой канал создан для души, а какой чисто ради заработка. Вторые пишут общую якобы полезную информацию, но по факту инфо-мусор. Используют chat gpt для контента, содержат ошибки, но при этом имеют в десять раз больше подписчиков. Доказательств нет, но возможно, что часть подписчиков - это боты, и нужны для повышения цен на рекламу. - Развить свой блог всё еще можно, и даже без вложений. Пробуйте, если вам интересно! Если вы начинающий, то могу написать о вас. Да, у меня пока аудитория небольшая, но если у вас до 50 человек, то это имеет смысл. - По наблюдениям, высоко востребовано высоко-профессиональное уникальное чтиво, где автор показывает мастерство, и чего нигде больше не найдешь, и хорошо заходят подборки с полезными материалами. - Я не зарабатываю на канале, и пока не планирую. Если бы начал монетизацию, вам бы полилась реклама курсов, а мне этого не хочется. - У меня много идей, о чем я могу написать, но не хватает времени на реализацию. Чего я не понял, но хотел бы понять: - Я вижу статистику по постам, например, пост со ссылками на интересные мне материалы (https://t.me/hft_dev/49) расшарили 27 раз и в это число не входит "Saved messages". Спасибо, что делитесь постами! Но все же, кто и куда forward'ит мои посты?1,07%
  • 7 окт. 2024 г.Что почитать по C++? https://www.saminiir.com/lets-code-tcp-ip-stack-1-ethernet-arp/ - серия статей "Let's code a TCP/IP stack" https://pthorpe92.dev/programming/systems/common-misunderstandings/ - серия статей "Common misunderstandings" по processes, tasks, async I/O. https://eli.thegreenplace.net/2017/concurrent-servers-part-1-introduction/ - базовое "Concurrent servers" про select/epoll. https://accu.org/journals/overload/32/182/teodorescu/ - базовый гайд про атомики "In an atomic world" от accu. https://www.think-cell.com/en/career/devblog/cpp-needs-undefined-behavior-but-maybe-less - про UB и будущий erroneous behavior. https://lemire.me/blog/2024/09/09/replace-stdstring-by-stdstring_view-when-you-can/ - один mega-string вместо кучи мелких от Daniel Lemire. https://habr.com/ru/companies/pvs-studio/articles/846532/ - std::array не медленнее C-массива от PVS studio. https://www.studyplan.dev/pro-cpp/concepts - серия доступных уроков по C++20 concepts, если еще не вкатились.1,01%
  • 5 окт. 2024 г.Если подумать, каких провалов я опасаюсь в работе, то это такой тип сбоев, в которых ваша торговая система набирает очень большую и нежелательную позицию. Она начинает неконтролируемо и быстро слать ордера на биржу, превышая заложенные в систему величины рисков. Такое произошло с Knight Capital (в блоге и на хабре на русском), что впоследствии привело к продаже фирмы. Всё произойдет за минуты или секунды, и уже после случившегося вы будете какое-то время только осознавать "эээ а что происходит". Либо, как вариант, баг в логике, неверные подсчёты или парсинг ответов приводит к тому, что подсчитанная позиция расходится с реальной. Вы думаете, у вас лонг на 100k, а у вас шорт на 100k, и рынок, зараза, идет вверх. Подобное случалось и со мной и с коллегами. Второй неприятный тип сбоев: когда из-за бага торговая система простаивает. Представьте, что ваша, с любовью разработанная, фича остановила весь терминал, и фирма не зарабатывает, скажем, 5k в минуту, во всех рабочих чатах пишут ваше имя (а вы в отпуске). Понятно, что такая ситуация есть в других IT сферах, Crowdstrike подтвердит. Третим в списке поставлю утечку приватных ключей и паролей (в результате небрежности или злого умысла сотрудников или внешней атаки). Вот вам любопытный случай c 3commas. Предлагаю порассуждать, какие бы вы ввели механизмы, практики, правила в своем стартапе для защиты от подобных провалов? А точно хватит времени на это (в стартапе)? А точно не будет багов в самих механизмах защиты (если речь о коде)?0,97%
  • 5 авг. 2024 г.Наверное, уже все заметили: красный цвет на всех рынках. Свечи вниз, другими словами. Слив. Дамп. Крипта приняла на себя первый удар, т.к. классические фондовые биржи закрыты в выходные. Краткосрочного резкого падения рынка HFT'шники не боятся, они этого ждут: деньги зарабатываются на движениях в любую сторону. Однако, торговая инфра переходит в такое время в режим повышенной нагрузки (опасности): - Повышенный трафик с рынка, выжирается RAM, CPU в сотку, сервисы могут начать не вывозить, очереди наполняются и переливаются, начинают тормозить сопутствующие сервисы, и т.п. - Вы хотите много наторговать, и выжираете API rate limits. - Логи сыпятся так быстро, что не успеваешь вычитывать. Разбираешь несколько уже часов после движения. - API бирж начинает присылать новые виды ошибок/ответов/состояний, на которые, возможно, вы не рассчитывали. - События с биржи могут начать вести себя непредсказумо: молчать некоторое время, иметь увеличивенные задержки, идти в другом порядке и т.п. - Из-за большого количества событий повышаются шансы нароллить маловероятные события: спящие баги, коллизии, переполнения, совпадение событий по времени и неожиданные реордеры.0,94%
  • 31 июл. 2024 г.Alber Blanc, где я работаю, активно нанимает, и у нас несколько вкусных вакансий. Например: — C++ developer (Core team), core классы и сервисы, инфраструктура для быстрой торговли, обработка и пересылка маркет даты, оптимизация, взаимодействие с FPGA и т.п. — C++ developer (Gates team), коннекторы к биржам, оптимизация сетевых подключений, работа с маркет датой, метрики и т.п. — Network/SRE engineer, работа с различными сетями, тюнинг линукса, отлаживание проблем ОС, автоматизация сетевых задач, работа с AWS, хостами, инфра сервисами. Нанимаем на Кипр (Лимассол), но есть офисы и в других локациях. Особенности: — Нет bullshit практик и траты времени, мало бюрократии, доступы выдаются быстро. — Топы открыты, доступны, и работают наравне с нами (программируют, например), плоская структура компании. — По оплате HFT сфера, пожалуй, самая привлекательная: приятная ЗП, полугодовые бонусы по результатам работы, оплата дежурств, если участвуешь. — Четкие критерии успешности, быстрый результат от твоей работы. — Работа в офисе, удалёнки нет. Не всем это подходит, но мне вполне. — Мало документации, кое-где не хватает комментариев и читаемости/вылизанности кода. Вы можете податься самостоятельно, а можете через меня: я посмотрю ваше резюме, дам базовые советы, если нужно, и сделаю вам рефку. Потом, если проходите, то я получаю бонус. Чего я не делаю: не рассказываю, что конкретно спрашивают на собесе (только в общих словах). Советую не пропускать такую возможность. Полный список тут (нужны также кванты, трейды, QA, аналитики, фронтендеры)0,84%
  • 5 февр. 2025 г.Когда перешел в перспективный крипто HFT стартап... (автор: KNADCORE)0,82%
  • 26 сент. 2024 г.GDB позволяет вводить команды из файла Приведу несколько примеров. Поставить breakpoint с условием: > cat 1.gdb break my_func if (var > 10000) commands print var info locals info registers backtrace continue end Поставить одноразовый catch на write syscall: tcatch syscall write commands printf "Syscall write\n" printf "File descriptor: %d\n", $rdi printf "Buffer: %p\n", $rsi printf "Bytes: %d\n", $rdx continue end Объявить функцию, которая принимает адрес и ставит условный watch на этот адрес: define my_int_watch watch *(int*)$arg0 if *(int*)$arg0 % 3 == 0 commands printf "New value: %d\n", *(int*)$arg0 continue end end Реальные сценарии как правило чуть сложнее, т.к. дебаг символов может и не быть, условия посложнее, но для демонстрации идеи эти подходят. Далее команды можно запустить из файла: gdb -p 1234 -x 1.gdb или прямо в cli: > source 1.gdb Да, то же самое можно ввести вручную поэтапно в cli, однако ручной ввод комманд требует времени, что может быть непозволительно в уже запущенных программах, которые нельзя прерывать. GDB также умеет в Python скрипты, но на питоняке я писал только pretty-printer'ы. Кто-то использовал python в gdb?0,71%
  • 22 нояб. 2024 г.Интересная статья 2014 года, в которой автор пытается увидеть манипуляции на рынке через визуализацию ордербука во времени. К сожалению, картинки сжатые, но понять можно (прищурившись). Для новичков будет интересна первая часть, где объясняется принципы устройства ордербука, а для бывалых - вторая. Интересно, что это происходило 10 лет назад, а все перечисленные паттерны до сих можно увидеть в ордербуках. https://parasec.net/blog/order-book-visualisation/0,69%
  • 5 сент. 2024 г.Взял себе новую клаву (Nuphy Airv2, brown switches, low profile) на замену предыдущей. Теперь кайфую. Пора снова писать после долгого перерыва.0,63%
  • 9 нояб. 2024 г.Что мне нравится в API крипто бирж: — наличие batch запросов (несколько запросов отправляется одной пачкой) — таймстемпы в микросекундах, а лучше даже в наносекундах (у некоторых только в миллисекундах, а встречались даже секунды) — несколько таймстемпов из различных этапов ордера (время приема, время матчинга, время отправки отчета) — когда можно задать окно, позже которого биржа не примет моё сообщение — наличие запросов: order info, get open orders, cancel all, kill switch on disconnect — в ответе есть request id и тип запроса — api ключи с гранулярным доступом — доки не устаревшие и не содержат банальных ошибок (редкость) Не нравится: — когда json ответа слишком глубокий: {"channel":"post","data":{"id":167248,"response":{"type":"action","payload":{"status":"ok","response":{"type":"cancel","data":{"statuses":["success"]}}}}}} — когда ордербук передают через json объекты: "bids":[{"p":65332,"q":1.35},...], вместо массива массивов — когда различные рынки (spot/perps) одной биржи делают разные команды (и появляются различия в api) — когда выкатывают обновления в субботу0,62%