Последние несколько лет я строю своего торгового робота для рынка облигаций. Своего — тобишь исключительно для себя, не для продажи и не для управления чужими деньгами.
Сейчас система уже не выглядит как эксперимент «на вечер после работы». Робот торгует полностью сам, мониторится, пережил несколько неприятных сюрпризов рынка и по ИИСу даже обгоняет банковский вклад (хотя по обычному счёту доходность около нуля, см. картинку с графиком ниже).
Решил написать пару постов про то, как всё это строилось: от ручной торговли и Excel-табличек до тысяч сделок в день, мониторинга и инфраструктурных костылей, которые внезапно работают вполне себе на уровне (про уровень шучу, про костыли — не шучу).
Где нахожусь сейчас
На текущий момент у меня:
* Windows, QUIK, Lua+DLL(Rust).
* Вся логика в Rust, а Lua — максимально простой мостик от QUIK до логики на Rust.
* Отправка транзакций делается из Rust посредством Trans2Quik.
* Хранение сделок и позиций в sqlite (с бэкапированием в облако).
* Мониторинг на Prometheus + Grafana + алертинг с использованием своего сервиса на почту (об этом потом).
* Нажиматель кнопок (об этом тоже потом).
Всё это живёт на ноутбуке среднего пошиба: AMD Ryzen 5 5500U, 16GB RAM, 500GB SSD. Но, как показывает практика, можно и проще.
Я изначально ставил себе задачу собрать максимально простую и автономную систему с минимальной стоимостью эксплуатации (насколько это возможно). При этом хотелось не терять удовольствия от процесса, т.е. делать это в кайф, а не «потому что надо».
Доходность
Доходность считаю формулой XIRR, есть такая в гугл-табличке. Еженедельно указываю текущий размер депо и движения по счёту по дням (пока случались только пополнения).
В этой доходности учтены комиссии. Налоги учтены для обычного счёта, для ИИС налог не изымаю, хотя и за вычетом получается вполне себе «ну хоть что-то». Разумеется, я подаю на вычеты за ИИС.

Просадки были, причём местами весьма воспитательные. Некоторые решения пришлось пересобирать практически полностью после столкновения с реальностью. Но именно это и интересно: когда система проходит путь от прототипа (или «игрушки») до чего-то, что реально живёт на рынке.
Что самое сложное оказалось на практике
Сложнее оказалось:
* Разубедиться в распространённом мнении, что на облигациях скукота и нет возможностей для трейдинга. И поверить в то, что там, оказывается, есть немало интересного.
* Не устроить самоконкуренцию своими же заявками.
* Не утонуть в собственных логах.
При наличии идеи самым сложным становится эксплуатационная сторона трейдинга, где инженерия составляет бОльшую часть работ.
О чём расскажу в следующих постах
Далее:
* как я вообще пришёл к облигациям после фьючерсов и опционов;
* почему Rust, а не C++ или C#;
* как применяю ИИ в торговле;
* как один «гадкий утёнок» в портфеле стал полноценным чёрным лебедем;
* и как нажиматель кнопок помогает мне совершать прибыльные сделки.
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
бессовестно врут люди...©
на корпоратах очченно даже весело…