0

我想在策略放置/检测到一个条目时添加 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 是预定义变量。

4

1 回答 1

0

你想使用strategy.exit()函数。它有stoploss参数。

loss (series int/float)一个可选参数。止损(以刻度指定)。如果已指定,则在达到指定的损失量(以滴答计)时放置止损单以退出市场头寸。默认值为“NaN”。

stop (series int/float)一个可选参数。止损(需要特定价格)。如果已指定,则以指定价格(或更差)放置止损单以退出市场头寸。参数“stop”的优先级高于参数“loss”的优先级(如果它的值不是“NaN”,则使用“stop”代替“loss”)。默认值为“NaN”。

strategy.entry("LongA", strategy.long,1, when= x and y)
strategy.exit("Long Exit", "LongA", loss=longStop)
于 2021-10-27T16:00:28.700 回答