Pine Script v1/v2转v4:Volatility Switch指标兼容性报错修复求助
修复后可直接运行的Pine Script v4代码
//@version=4 study(title="Volatility Switch [LazyBear]", shorttitle="VOLSWITCH_LB") dr= roc(close,1)/sma(close,2) dummy=input(false, title="------- Choose lengths below ----"), il21=input(true, title="21"), il14=input(false, title="14") vola21=stdev(dr, 21) vswitch21=(int(vola21[1] <= vola21 ) + int(vola21[2] <= vola21 ) + int(vola21[3] <= vola21 ) + int(vola21[4] <= vola21 ) + int(vola21[5] <= vola21 ) + int(vola21[6] <= vola21 ) + int(vola21[7] <= vola21 ) + int(vola21[8] <= vola21 ) + int(vola21[9] <= vola21 ) + int(vola21[10] <= vola21 ) + int(vola21[11] <= vola21 ) + int(vola21[12] <= vola21 ) + int(vola21[13] <= vola21 ) + int(vola21[14] <= vola21 ) + int(vola21[15] <= vola21 ) + int(vola21[16] <= vola21 ) + int(vola21[17] <= vola21 ) + int(vola21[18] <= vola21 ) + int(vola21[19] <= vola21 ) + int(vola21[20] <= vola21 ) + 1) / 21 vola14=stdev(dr, 14) vswitch14=(int(vola14[1] <= vola14 ) + int(vola14[2] <= vola14 ) + int(vola14[3] <= vola14 ) + int(vola14[4] <= vola14 ) + int(vola14[5] <= vola14 ) + int(vola14[6] <= vola14 ) + int(vola14[7] <= vola14 ) + int(vola14[8] <= vola14 ) + int(vola14[9] <= vola14 ) + int(vola14[10] <= vola14 ) + int(vola14[11] <= vola14 ) + int(vola14[12] <= vola14 ) + int(vola14[13] <= vola14 ) + 1) / 14 hline(0.5, title="Median") plot(il21?vswitch21:na, color=color.red, linewidth=2, title="VOLSWITCH_21") plot(il14?vswitch14:na, color=color.green, linewidth=2, title="VOLSWITCH_14")
适配改动说明
- Pine Script v4不允许布尔值直接参与算术运算,原代码中所有比较返回的true/false结果外层新增
int()转换,转为1/0数值后再执行加法 - v4要求内置颜色常量调用需添加
color.前缀,原代码中的red、green已补充对应前缀 - 完全保留原版指标的计算逻辑、参数设置,输出结果和原指标一致
内容的提问来源于stack exchange,提问作者HalSkyTrader
相关产品推荐
相关产品推荐

