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

如何编写检测3根及以上连续红K线的Pine Script策略?

连续红K检测与做多入场逻辑实现

核心需求

做多入场条件:出现3根及以上连续红K线后,在第一根绿K线时触发入场信号。现有基础代码无法实现连续红K的检测逻辑,曾考虑循环但需指定固定长度,希望找到更简洁的实现方式。(感谢用户@kyu23提供的基础代码,以下实现基于原代码做了针对性修改)

解决方案(Pine Script v5)

无需使用循环,利用ta.barssince()函数结合状态判断即可实现需求,代码如下:

//@version=5
indicator("连续红K后绿K入场策略", overlay = true)

// 可设置的连续红K数量阈值
consec_red_threshold = input.int(3, title="连续红K数量阈值", minval=1)

// 定义K线颜色判断条件
is_red_bar = close < open
is_green_bar = close > open

// 计算连续红K的数量:统计距离上一根非红K的Bar数
consec_red_count = ta.barssince(not is_red_bar)

// 做多入场信号:Bar确认闭合 + 当前是绿K + 上一段连续红K数量≥阈值
long_entry = barstate.isconfirmed and is_green_bar and (consec_red_count >= consec_red_threshold)

// 绘制入场信号标记(绿K下方显示向上三角)
plotshape(long_entry, style=shape.triangleup, location=location.belowbar, 
          color=color.new(color.green, 0), size=size.small, title="做多入场信号")

// 可选:显示连续红K数量(用于验证逻辑)
plot(consec_red_count, title="连续红K数量", color=color.new(color.red, 0), display=display.data_window)

代码逻辑说明

  • consec_red_count = ta.barssince(not is_red_bar):统计从最近一根非红K线到当前的Bar数量,直接反映连续红K的长度(若当前是红K,该值为连续红K数;若当前是绿K,该值为上一段连续红K的总数)
  • long_entry条件:只有当Bar完全闭合(避免信号漂移)、当前是绿K,且上一段连续红K数量达到或超过设定阈值时,才触发做多入场信号
  • 额外添加的连续红K数量指标,可在数据窗口查看,方便验证逻辑是否符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 09:12:42