Использование нескольких вызовов стратегии.exit в pine-script не работает должным образом - PullRequest
0 голосов
/ 21 мая 2019

В настоящее время пытаюсь создать скрипт, который позволяет мне входить в длинную позицию, если она пробивает верхние 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% против меня, если нет, тогда я хотел бы закрыть ордер на противоположной стороне.

пример скриншота

...