3й вариант проблематичный, потому что нужно как-то скрипт научить забывать старые сигналы. Пока у меня в голове вертится идея, динамически менять параметр время свечи с которой начинать обсчитывать торговый цикл. Либо еще вариант - игнорировать все новые сигналы, которые не на текущей свече.
Последний, думаю, сделать довольно просто.
Выглядеть это будет, так как вы описали, на следующем пересчете скрипт забудет, что был сигнал.
Количество баров (сколько помнить) можно сделать параметром.
По-моему параметра не нужно.
Если я не дал команду в каком-либо предоставленном Вами виде "снять сигнал" пусть все работает как сейчас, а если команда поступила, сигнал должен снятся максимально быстро.
Что касается выхода из позиции, то такая возможность вами реализована даже при автоматическом исполнении. В менеджере команд висят строчки ожидания сигнала выхода, который я могу инициировать вручную. Все проверено и работает..