PineScript - стоп-лосс ATR%

Я хочу добавить стоп-лосс по ATR, когда стратегия разместила / обнаружила вход. пока что я придумал этот сценарий:

      @version=4    
// Stop Loss inputs atr     
longLossPerc = input(title="Long Stop Loss (%)",type=input.float, minval=0.0, step=0.1, defval=1) * 0.01    
atrLength = input(title="ATR Length", type=input.integer, defval=6, minval=1)
userStructure = input(title="Use Structure", type=input.bool, defval=true)    
lookback = input(title="How far to look back for High/Low",type=input.integer, defval=7, minval=1)    
atrStopMultiplier = input(title="ATR x ? ", type=input.float, defval=1.0, minval=0.1)    
longStopPrice = strategy.position_avg_price * (1 - longLossPerc)

// calculate data atr    
atr=atr(atrLength)    
longStop = (userStructure ? lowest(low, lookback) : close) - atr * atrStopMultiplier    
shortStop = (userStructure ? highest(high,lookback) : close) + atr * atrStopMultiplier

// plot atr Long/Short    
plot(longStop, color=color.green, style=plot.style_linebr, title="Long Trailing Stop-ATR")    
plot(shortStop, color=color.red, style=plot.style_linebr, title="Short Trailing Stop-ATR")

Моя проблема в том, что я не знаю, как связать / связать этот скрипт с моим аргументом скрипта. Нужно ли мне создавать новую переменную, а затем вставлять ее в свой файл strategy.close?

      strategy.entry("LongA", strategy.long,1, when= x and y)    
strategy.close("LongA", when= z or t )

Примечание: x,y,z, t - предопределенные переменные.

1 ответ

Вы хотите использовать функция. Она имеет а также параметры.

loss (series int / float) Необязательный параметр. Стоп-лосс (указывается в тиках). Если он указан, стоп-ордер выставляется для выхода из рыночной позиции при достижении указанной суммы убытка (в тиках). Значение по умолчанию - NaN.

stop (series int / float) Необязательный параметр. Стоп-лосс (требуется конкретная цена). Если он указан, то ставится стоп-приказ для выхода из рыночной позиции по указанной цене (или хуже). Приоритет параметра «стоп» выше приоритета параметра «убыток» (вместо «убыток» используется «стоп», если его значение не равно «NaN»). Значение по умолчанию - NaN.

      strategy.entry("LongA", strategy.long,1, when= x and y)
strategy.exit("Long Exit", "LongA", loss=longStop)
Другие вопросы по тегам