Pine Script添加T3与DEMA交叉条件报series[float]类型错误如何修复
问题根源
你调用crossover()/crossunder()时传入的第一个参数类型错误:
T3_green、T3_red是series[bool]类型的变量,仅返回T3自身拐头向上/向下的布尔判断结果(值为true/false,对应数值1/0)crossover()/crossunder()要求两个入参都必须是series[float]类型的数值序列,才能计算两者的交叉关系
修复方案
你要判断T3均线和DEMA均线的交叉,直接传入两个均线本身的数值序列T3和dema即可,替换你原来写的crossover(T3_green, dema)、crossunder(T3_red, dema)部分。
具体修改的代码段
原来的错误代码:
DEMA_crossover = crossover(close, dema) or close > dema or crossover(T3_green, dema) DEMA_crossunder = crossunder(close, dema) or close < dema or crossunder(T3_red, dema)
修改为正确代码:
DEMA_crossover = crossover(close, dema) or close > dema or crossover(T3, dema) DEMA_crossunder = crossunder(close, dema) or close < dema or crossunder(T3, dema)
如果你的需求还需要同时满足T3本身是拐头向上/向下的状态,可以保留T3_green/T3_red的判断,用逻辑与拼接:
// 同时满足T3拐头向上 + T3上穿DEMA t3_cross_dema_up = crossover(T3, dema) and T3_green // 同时满足T3拐头向下 + T3下穿DEMA t3_cross_dema_down = crossunder(T3, dema) and T3_red DEMA_crossover = crossover(close, dema) or close > dema or t3_cross_dema_up DEMA_crossunder = crossunder(close, dema) or close < dema or t3_cross_dema_down
内容的提问来源于stack exchange,提问作者HalSkyTrader
相关产品推荐
相关产品推荐

