You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pine Script如何实现3个十字信号确认后触发买卖警报

Pine Script 连续3个十字信号触发预警逻辑实现

原代码问题

你当前的代码存在两处核心逻辑错误,导致无法按预期运行:

  • ta.barssince(longCondition1)的作用是返回距离上一次满足longCondition1条件的K线根数,本身不具备累计信号数量的能力
  • ta.barssince(longCondition1) < 2和ta.barssince(longCondition1) < 3属于重复冗余判断,实际生效的只有更严格的<2条件,完全和「累计3个信号触发」的需求无关

正确实现方案

连续3个十字信号触发(中间无中断)

如果需求是连续3根K线都出现橙色十字才触发信号/警报,用累计计数器实现即可,参考代码如下:

//@version=5
indicator("三连十字信号预警", overlay=true)

// 请将此处替换为你自己的橙色十字原始触发条件
orangeCross = longCondition1

// 连续十字计数
var crossCount = 0
if orangeCross
    crossCount += 1
else
    // 任意一根K线不满足十字条件,计数器重置
    crossCount := 0

// 连续3个十字时触发信号
trigger = crossCount == 3

// 绘制原始橙色十字
plotshape(orangeCross, location=location.belowbar, style=shape.cross, size=size.tiny, color=color.rgb(255,192,203))
// 绘制触发信号(可自行调整样式、位置、文字)
plotshape(trigger, location=location.belowbar, style=shape.labelup, text="3连十字", color=color.green, textcolor=color.white, size=size.small)

// 绑定警报
alertcondition(trigger, title="三连十字警报", message="连续3个十字信号出现")

非连续3个十字信号触发(指定区间内累计3个即可)

如果不需要连续,只需要最近N根K线内累计出现3个十字就触发,可以用区间求和的方式实现:

// 统计最近3根K线内的十字数量,按需修改第二个参数调整统计区间长度
crossSum = ta.sum(orangeCross ? 1 : 0, 3)
trigger = crossSum == 3

注意:使用时请务必将代码中的orangeCross变量赋值为你自己实际的橙色十字生成条件,不要直接套用示例变量。

内容的提问来源于stack exchange,提问作者Becoming M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 16:30:53