При чем тут брокет брокера исполняют лимитки и все.
А вот логика программы может позволить исполнять не одну лимитку поскольку очень высока (особенно в последнее время робототорговли) вероятность ее не исполнения и несколько лемиток в диапазоне +-.
Условная не годится потому что у нее другая логика - ожидание - и только когда разворачивается цена она условная начинает закрываться.
Лемитка - закрыть немедля по подходящей цене - даже если рост продолжится, просто спасти то что уже есть, но одна лимитка не выполняется их надо пачками слать чтоб закрыть.
В вашей программе вообще странно сделано если лимитка не может закрыться то закрывается на следующем баре по рынку!? Где логика? Тогда по такой логике вообще лимитка не нудна проще сразу по рынку но на первом баре а не на следующем.
Говорю это потому что протестил поведение на сотнях сделках по закрытию на высоких скоростях ваша программа лимитки закрывает 1 из 10.
Программа лимитки не закрывает. Программа генерирует заявки по сигналам и передает их брокеру.
Лимитная заявка - это заявка в стакан по правилам стакана и по определенной цене. Других лимитных заявок не бывает. Если заявка не исполняется, то вариантов почему так происходит достаточно много.
1. Трешите заявки на каждом пересчете, при этом пересчет меньше или равен секунде. Нет ни одного брокера, который бы успевал переставлять заявки на такой скорости. Соответственно пропуск заявок из-за того, что в момент достижения цены заявки, заявка еще просто не выставлена в стакан. В этом случае может спасти только прямое подключение к плазе ртс.
2. Скрипт выставляет лимитку по свершившемуся условию. В этом случае цена лимита скорее всего встает не по правилам стакана, биржа и большинство брокеров отклоняет такие заявки и называют их плохими. По-этому нужно ставить флаг "плохие по рынку". Мы создали эту возможность для тех, кто не очень понимает как работает стакан.
3. Цена касается уровня заявки, но на исполнение не хватает ликвида, в этом случае будет выход по рынку на следующем пересчете. Эта логика вызвана работой стакана. Т.к. цена лимита уже сработала, а заявка не исполнена.