Pine Script v2转v5遇阻:MA交叉代码转换报错求助
Pine Script v2转v5:MA交叉代码报错修正
错误点排查
- plot样式参数错误:v5中plot的
style参数需使用plot.style_*枚举值,你误用了ta.crossover函数作为样式,会导致类型不匹配报错。 - color参数格式错误:
color.black前缺少参数名color=,v5要求函数参数需明确指定名称(跳过可选参数时必须显式标注)。 - 交叉逻辑不符原代码:原v2的
cross(sh, ln)检测双向交叉(上穿+下穿),你用的ta.crossover仅检测上穿,会丢失下穿时的交叉标记,若要和原逻辑一致,应使用ta.cross()。
修正后的完整代码
// 绘制交叉标记(与v2原逻辑一致,检测双向交叉) plot(ta.cross(sh, ln) ? sh : na, style=plot.style_cross, linewidth=4, color=color.black) // 填充两条均线之间的区域 mycol = sh > ln ? color.lime : color.red fill(p1, p2, color=mycol)
补充说明
- 若仅需要绘制上穿信号,可将
ta.cross替换为ta.crossover,但这会改变原v2代码的逻辑。 - 确保
p1和p2是你之前定义的两条均线的plot变量(比如p1 = plot(sh)、p2 = plot(ln)),否则fill函数会报错。
内容的提问来源于stack exchange,提问作者AArnis
相关产品推荐
相关产品推荐

