Постов с тегом "C++": 51

C++


Арбитраж MOEX vs внешний рынок: 9 уровней инфраструктуры — от телефона до FPGA

📊 Арбитраж MOEX vs внешний рынок · Часть 3 из 4

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

Сегодня — самая практическая часть.

Через что всё это торговать?

Расхождение на графике могут увидеть многие. Но само по себе наблюдение за спредом денег не приносит.

Чтобы превратить неэффективность в сделку, нужна инфраструктура.

И здесь существует целая лестница: от мобильного приложения до FPGA непосредственно рядом с биржевым шлюзом.

Я условно делю её на 9 уровней.

Главная мысль всей конструкции очень простая:

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


Арбитраж MOEX vs внешний рынок: 9 уровней инфраструктуры — от телефона до FPGA


Уровень 1. Мобильные приложения

Исторически многие начинают именно отсюда.

Телефон позволяет купить или продать инструмент, посмотреть график, увидеть стакан — и для знакомства с рынком этого вполне достаточно.

Для серьёзного арбитража — практически нет.



( Читать дальше )

Доморощенный алготрейдинг облигациями

Последние несколько лет я строю своего торгового робота для рынка облигаций. Своего — тобишь исключительно для себя, не для продажи и не для управления чужими деньгами.
Сейчас система уже не выглядит как эксперимент «на вечер после работы». Робот торгует полностью сам, мониторится, пережил несколько неприятных сюрпризов рынка и по ИИСу даже обгоняет банковский вклад (хотя по обычному счёту доходность около нуля, см. картинку с графиком ниже).
Решил написать пару постов про то, как всё это строилось: от ручной торговли и Excel-табличек до тысяч сделок в день, мониторинга и инфраструктурных костылей, которые внезапно работают вполне себе на уровне (про уровень шучу, про костыли — не шучу).

Где нахожусь сейчас

На текущий момент у меня:
* Windows, QUIK, Lua+DLL(Rust).
* Вся логика в Rust, а Lua — максимально простой мостик от QUIK до логики на Rust.
* Отправка транзакций делается из Rust посредством Trans2Quik.
* Хранение сделок и позиций в sqlite (с бэкапированием в облако).
* Мониторинг на Prometheus + Grafana + алертинг с использованием своего сервиса на почту (об этом потом).

( Читать дальше )

C++ разработчик коннекторов (FAST, TWIME)

Привет, если есть опыт в разработке коннекторов на C++ (FIX, TWIME www.moex.com/s329), будем рады пообщаться

Ссылка на подробное описание чего мы ищем в Notion
Мой телеграм: t.me/GPiliugin

Pump crypto Bot обновление C# с 40 мс до 20 мс на выставление

В продолжении к моему прошлому посту про заработок на пампах. 

KuCoin выпустил немного сыроватое специальное HF APi, которое я протестировал буквально недавно. 
Оно создано специально, чтобы иметь минимальную задержку. Отвечает такое API только за отправку и отмену ордеров.

Вы даже не сможете завести себе отдельный счет внутри своего аккаунта, если не сделаете перевод через их API.
Только после этого в личном кабинете появиться специальный аккаунт «HF» 

Pump crypto Bot обновление C# с 40 мс до 20 мс на выставление

Я, честно говоря, думал, что это чисто маркетинг, но оказалось, что новое АПИ реально быстрее почти в 2 раза. 
В среднем мы имели скорость от 35 до 42 мс на выставления ордера, после использования специализированно HF API стали получать по 20 мс. 
Замеры с коло из Токио ->

1 ордер — 98 мс (прогрев)
2 ордер — 56 мс (прогрев)
3 ордер — 26 мс
4 ордер — 20 мс
5 ордер — 30 мс
6 ордер — 28 мс
7 ордер — 18 мс
8 ордер — 19 мс
9 ордер — 16 мс

Наша прошлая версия:



( Читать дальше )

Pump crypto bot. Путь построения торгового бота на C#. Тестирование скоростей С++, RUST, Python. Заработок на синтетических скачках на крипте

Приветствую!

Большинство знает про арбитраж, где нужна скорость, но я расскажу вам про другую область, где в основном соревнуются не такие профессионалы, но скорость также нужна. 

Что такое Pump — это когда «крипто школьники» собираются и решают вместе в один момент купить какую-то монету. Монета сильно подскакивает, а потом нужно резко выйти с огромной прибылью. 

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

Pump crypto bot. Путь построения торгового бота на C#. Тестирование скоростей С++, RUST, Python. Заработок на синтетических скачках на крипте

Большинство «пампов» выкладываются в телеграм и дискорд группы.

 

( Читать дальше )

Как ускорить python в 2000 раз, или как расчитывать максимальный дродаун со скоростью света :) (python, c++, cuda)

Смотрю некоторые люди интересуются темой как же скрестить питон и с++.

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



( Читать дальше )

О быстродействии авто торговой системы.

    • 01 мая 2021, 02:25
    • |
    • 3Qu
  • Еще
На вечерке измерил быстродействие своей ТС. ТС обрабатывает в среднем ~2.8 запроса в секунду.
Если ТС занята обработкой предыдущего запроса, то следующий запрос пропускается и не обрабатывается. При этом рыночные данные в системе постоянно обновляются и всегда остаются актуальными для системы.
Ну, и о системе. Это Lua программа в паре с C++ DLL. Вся необходимая обработка производится в DLL. Lua является только источником рыночной информации — стакан, обезличенные сделки и свечи.

PS Начал заниматься тем, о чем написал в комментариях — попыткой ускорить обработку данных ТС до 4-5 запросов в секунду. Практически ничего не меняю — небольшая перекомпоновка программы C++ DLL, и обнаружил несколько уже ненужных операторов, оставшихся как мусор от этапа отладки.

Kurlyk - еще одна С++ обертка для curl

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

И придумал тогда я библиотеку Kurlyk.
Kurlyk - еще одна С++ обертка для curl

Описание

Братишка, я тебе покушать принёс


Фраза из артхаусного фильма “Зелёный слоник”

Что такое kurlyk? Да это же еще одна библиотека для более простой работы с curl! Если вас по тем или иным причинам не устроили библиотеки easyhttp-cpp, curl_request, curlpp-async, curlwrapper, curl-Easy-cpp, curlpp11, easycurl, curl-cpp-wrapper... То может быть, стоит попробовать эту?

Использование

Чтобы сделать запрос, достаточно создать объект класса kurlyk::Client и настроить все необходимое в 



( Читать дальше )

Лаборатория интрадея и скальпинга - ScalpLab.

    • 14 апреля 2021, 03:03
    • |
    • 3Qu
  • Еще
ScalpLab — не знаю, употреблял ли ранее кто такое название, м.б. оно уже кем-то зарегистрировано. Если так, то потом изменю на что нибудь типа ScalpJob, но пока, до выяснения, пусть будет ScalpLab.
Идея эта у меня не новая. Она была реализована для терминала АД 3.5, который приказал долго жить где-то в 2015 году. Компьютеры сменились, программа затерялась в архивах на старых дисках, технологии утеряны, а подробности реализации уже не вспомнить. Да и если будет реализация, толку не будет — взаимодействие терминала АД и Quik с внешним ПО построено на совершенно различных принципах и ничего общего не имеют.
Конечно, интрадеить из Quik можно, но скальпить уже весьма проблематично. Настройки стакана для этого весьма примитивны и особо не развернешься — можно второпях и щелкнуть не туда. А надо всего 2 кнопки Buy и Sell, все настройки и отступы автоматом, и, чтоб вообще не думалось.
В старой программе ScalpLab были не только Buy, Sell и настройки, это была именно лаборатория, со своими микротаблицами, индикаторами, типа столбцовых диаграмм и пр. вспомогаловки для скальпинга и интрадея. Графики там не нужны, их не нужно анализировать, нужны только результаты измерений и обработки — вся информация должа быть обработана подана максимально готовом виде.

( Читать дальше )

Зашифрованный и сжатый JSON с комментариями в качестве файла конфигурации

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

Для файлов конфигурации я уже давно использую файлы с JSON. Очень удобная вещь. Осталось лишь добавить поддержку комментариев и зашифровать текст при помощи алгоритма AES. А для большей красоты еще и сжать текст перед шифровкой алгоритмом brotli.

Сказано — сделано. Встречайте — crypto-json, проект на гитхабе. Репозиторий содержит готовый редактор JSON с комментариями, который может также сохранить текст в зашифрованном виде. Настройки сжатия и шифрования можно задать перед сохранением файла и во время открытия. Также редактор позволяет сделать проверку JSON и может подсвечивать проблемные места.



( Читать дальше )

....все тэги
UPDONW
Новый дизайн