Кто-нибудь пробовал автоматизировать торговлю на покете?
Роботы и автоматическая торговля
#21
Срезать лоты на сквизах — это скорее костыль, чем решение. По сути, вы просто признаете, что софт не вывозит волатильность, и пытаетесь спасти депозит за счет прибыли. Я пробовал разные варианты с очередями, и TimofeyWave прав в одном: задержка никуда не девается, она просто меняет свою форму. Но проблема не в самом методе, а в том, как Пакет обрабатывает входящий поток. Если пытаться гнать туда всё без разбора, любой бот начнет «тупить» или вообще отвалится по таймауту в самый неподходящий момент. Я в итоге пришел к тому, что лучше вообще отказаться от попыток «победить» лаг программно. Сейчас просто ставлю жесткий фильтр по объему и игнорирую слишком резкие движения, потому что пытаться ловить такие импульсы автоматикой на этом API — это чистый мазохизм. Либо ты работаешь с консервативным алгоритмом, либо принимаешь, что часть сделок будет кривой из-за проскальзывания. Любые усложнения с буферами или очередями в итоге только плодят новые баги, которые вылезают в самый пик нагрузки. В общем, либо упрощайте логику до примитива, либо ищите другой терминал, где исполнение не превращается в лотерею при каждом чихе рынка.
Ну ты загнул про костыль. В реальности на Покете любой попыткой «идеального» кода заканчивается либо слив на первом же резком движении, либо бесконечный рерайт движка. Срезать лоты на сквизах — это не признание слабости софта, а нормальный риск-менеджмент. Зачем пытаться переиграть волатильность, если можно просто зайти объемом поменьше и не обнулить счет за пять секунд из-за одного лага?
По поводу очередей — вообще мимо. Они работают в высокочастотном трейдинге, где миллисекунды решают всё, а тут мы имеем дело с API, который сам по себе может тупить. Пока ты там выстраиваешь свою идеальную очередь, рынок улетает. Я пробовал и кэширование, и разные буферы, но в итоге пришел к тому, что проще ограничить риски, чем пытаться победить задержку, которая зашита в саму архитектуру платформы. Лучше забрать меньше прибыли, чем пытаться выжать максимум и поймать «галлюцинации», о которых Андрей писал.
Если честно, я тоже видел, как «чистый» код падает в первые секунды после новости. На моём тестовом стенде без реального депозита я добавил простой лимит‑фильтр и динамический стоп‑трейл – в итоге потери от сквиза снизились на 30 %. Но это уже не «идеальная» система, а набор «плюшек», которые требуют постоянного тюнинга. Так что срезать лоты – не слабость, а способ держать ядро стратегии живым, пока рынок не успокоится.