Pine Script中6个条件满足4个时触发操作的实现方法
Pine Script多条件触发的高效实现方案
Pine Script中布尔值true会被隐式转换为数值1,false会被隐式转换为数值0,你不需要手动枚举所有组合,仅需要统计满足的条件总数,判断总数是否符合要求即可:
// 你原本定义的6个条件 c1 = ... c2 = ... c3 = ... c4 = ... c5 = ... c6 = ... // 统计当前满足的条件总数 satisfied_cnt = c1 + c2 + c3 + c4 + c5 + c6 // 判断是否至少4个条件满足(任意4个同时满足即触发) trigger = satisfied_cnt >= 4 // 设置警报 alertcondition(condition=trigger, message="cb")
方案说明
- 该写法完全覆盖你枚举的15种4个条件满足的组合,同时也兼容5个、6个条件同时满足的场景,完全符合「任意4个同时满足即执行指令」的需求
- 如果担心低版本Pine Script隐式转换不生效,可以手动将布尔值转为数值,兼容性更强:
satisfied_cnt = (c1 ? 1 : 0) + (c2 ? 1 : 0) + (c3 ? 1 : 0) + (c4 ? 1 : 0) + (c5 ? 1 : 0) + (c6 ? 1 : 0)
- 如果你的需求是刚好4个条件满足才触发,把
>=4改为==4即可 - 后续如果需要调整触发所需的条件数量,仅需要修改
trigger判断中比较运算符后的数值即可,扩展性远优于手动枚举组合
内容的提问来源于stack exchange,提问作者User4536124
相关产品推荐
相关产品推荐

