В настоящее время пытаюсь создать скрипт, который позволяет мне входить в длинную позицию, если она пробивает верхние 40 каналов Дончиана, и быть остановленной из этой сделки, если позиция идет против меня на 6,5%. Если меня не остановят, я хотел бы выйти из своей позиции, когда цена пробьет нижний 25-канальный канал. Также хотелось бы, чтобы скрипт делал обратное, входил в короткую позицию, когда он пробивал нижний 25-канальный дончиан, и, если он шел против меня, 6,5% останавливался, или закрывал мою позицию, когда цена пробивалась выше верхнего 40-канального дончиана. Код работает нормально, пока я не использую два вызова стратегии. Иногда кажется, что моя короткая позиция была остановлена на той же свече, что и моя входная.
Попытка сгруппировать его в операторах if
//STOP LOSS CODE
sl_long = input(6.5, title='Stop Loss %', type=float)/100
sl_short = input(6.5, title='Stop Loss %', type=float)/100
stop_long_level = strategy.position_avg_price * (1 - sl_long)
stop_short_level = strategy.position_avg_price * (1 + sl_short)
//Strategy
//Long
strategy.entry("simpleBuy", strategy.long, when=break_Above)
strategy.exit("Long Stopped", "simpleBuy", stop=stop_long_level)
strategy.close("simpleBuy", when=break_Below)
//Short
strategy.entry("simpleSell", strategy.short, when=break_Below)
strategy.exit("Short Stopped", "simpleSell", stop=stop_short_level)
strategy.close("simpleSell", when=break_Above)
Хотелось бы помочь выяснить, как, возможно, создать оператор if, чтобы помочь мне правильно выйти из сделки, если она идет на 6,5% против меня, если нет, тогда я хотел бы закрыть ордер на противоположной стороне.
пример скриншота