[英]I have experiencing problem to include a mutable variable as an argument for security function
我尝试在策略中在 ATR 追踪止损中使用多时间框架。 我不知道如何将这些 arguments 用于安全 function。 问题显示在最后 3 行中,“不能使用可变变量作为 request.security 函数的参数”
ATRTimeframe = input.timeframe(title="ATR Timeframe", defval="")
ATRPeriod = input.int(10, "ATR Period")
ATRMultiplier = input.float(3, "ATR Multiplier", step=.1)
ATR = ta.atr(ATRPeriod)
Stop = ATRMultiplier*ATR
var ATRTrailingStop = 0.0
ATRTrailingStop := if close>ATRTrailingStop[1] and close[1]>ATRTrailingStop[1]
math.max(ATRTrailingStop[1], close-Stop)
else if close<ATRTrailingStop[1] and close[1]<ATRTrailingStop[1]
math.min(ATRTrailingStop[1], close+Stop)
else if close>ATRTrailingStop[1]
close-Stop
else
close+Stop
var Position = 0.0
Position := if close[1]<ATRTrailingStop[1] and close>ATRTrailingStop[1]
1
else if close[1]>ATRTrailingStop[1] and close<ATRTrailingStop[1]
-1
else
Position[1]
ATRSecure = request.security(syminfo.tickerid, ATRTimeframe, ATRTrailingStop, gaps=barmerge.gaps_off)
PlotColor = Position == -1 ? color.red: Position == 1 ? color.green : color.blue
plot(ATRSecure, color=PlotColor, linewidth=input(1, "Line Width", group=atrGroup), title="ATR Trailing Stop")
您可以在request.security()
中使用可变变量,但前提是您将它们包装到 function 中。 Security
性从当前交易品种的上下文中提取变量并在不同的交易品种/时间框架上计算它,因此它要求您将所有将变量更改为 function 并请求 function 代替。 以下是您的情况:
<...>
atrStop() =>
var ATRTrailingStop = 0.0
ATRTrailingStop := if close>ATRTrailingStop[1] and close[1]>ATRTrailingStop[1]
math.max(ATRTrailingStop[1], close-Stop)
else if close<ATRTrailingStop[1] and close[1]<ATRTrailingStop[1]
math.min(ATRTrailingStop[1], close+Stop)
else if close>ATRTrailingStop[1]
close-Stop
else
close+Stop
ATRTrailingStop = atrStop()
var Position = 0.0
Position := if close[1]<ATRTrailingStop[1] and close>ATRTrailingStop[1]
1
else if close[1]>ATRTrailingStop[1] and close<ATRTrailingStop[1]
-1
else
Position[1]
ATRSecure = request.security(syminfo.tickerid, ATRTimeframe, atrStop(), gaps=barmerge.gaps_off)
<...>
首先,我在 CFB 认识你吗? 哈哈。 其次,这里有一些链接可以回答您的问题: TradingView 不能使用可变变量作为安全参数 function 不能使用可变变量作为安全参数 function
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.