修复Pine Script series bool需simple float错误及实现SMA高斯通道报警
Pine Script v5 做多入场报警功能错误修复方案
错误根因
触发报错的是你写的LongEntry = SMAcrossover < lband这一行:
SMAcrossover是ta.crossover()返回的序列布尔类型,值只有true/false两种,仅用来标识当前K线是否满足上穿条件- 你直接将布尔类型和代表下轨数值的
lband做大小比较,类型完全不匹配,因此触发了"需要simple float但传入了series bool"的报错
修复逻辑
你的需求是两个条件同时成立时触发报警:
- 周期3的SMA上穿周期7的SMA
- 上穿动作发生时,对应K线的均线/价格位于高斯通道下轨下方
将两个条件用and连接即可,不需要对布尔值做大小比较。
代码修改
把原来的LongEntry定义行替换为以下代码即可正常运行:
// 这里默认判断上穿时3周期SMA位于下轨下方,如果要判断K线收盘价在下轨,把sma_0换成close即可 LongEntry = SMAcrossover and sma_0 < lband
如果你需要判断的是代码中定义的平滑移动平均线SMMA(smma0、smma1)的交叉,同步修改SMAcrossover的定义即可:
SMAcrossover = ta.crossover(smma0, smma1)
内容的提问来源于stack exchange,提问作者HalSkyTrader
相关产品推荐
相关产品推荐

