Поехавший Программист
1
All posts from Поехавший Программист
Поехавший Программист in Поехавший Программист,

Записки заклинателя роботов: Тренд уехал, заявки остались...

Хотел бы поговорить о такой вот проблеме. Точнее о проблеме и ее решении. Когда я писал роботов, то заметил такую вещь (и она наверно общая для любой торговой платформы, хоть Quik, хоть MetaTrader): иногда, когда цена достаточно динамично движется, может статься, что последует сигнал на смену позиции, машина, как полагается, выставит заявку, цену для которой возьмет со стакана котировок, а тренд возьми и пойди дальше... То есть за долю секунды цена изменяется, и компьютер выставляет заявку по уже несуществующей котировке. Вот пример: компьютер решил, что настало время открыть длинную позицию и купить N-ное количество акций по цене 2000 рублей за штуку, на момент такого решения были предложения на продажу по такой цене, однако, доли секунды на проворот всего этого компьютеру и ... те же акции продаются уже 2018 рублей за штуку (и это самая дешевая цена), но заявка уже выставлена, она висит, и компьютер думает, что у него открыта длинная позиция. Еще один пример на графике ниже (обратите внимание на свечи в конце после 14 часов):

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

Я нашел два разных подхода. Предлагаю вам самим посмотреть, какой лучше. Первый подход - программный. Компьютер мониторит систему на предмет заявок, у которых количество купленных (проданных) лотов не равно общему количеству лотов, снимает такие заявки и заменяет новыми, но тут мы можем попасть в тот же капкан.... И второй подход - математический: через определенный промежуток времени (скажем, через минуту) компьютер делает сохранение актуальной информации по котировкам и, если поступает сигнал на смену позиции, он сравнивает актуальную цену с ранее сохраненной и, если их разница больше определенного числа, компьютер запрещает смену позиции, скажем на минуту, до тех пор, пока рынок не стабилизируется. У меня душа лично лежит ко второму подходу. Рад, если кому помог