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

如何标记下跌K线序列后的第一根上涨K线(Pine Script)

Pine Script 标记连续下跌后的第一根上涨K线

原代码问题分析

  • 仅检查前一根K线是否为非上涨K线,无法识别连续多根下跌后的第一根上涨K线。
  • UpBar定义过于严格(要求high和low均超过前一根K线),会遗漏部分实际属于上涨的K线(如光头阳线、收盘价上涨但low未创新高的K线)。

解决思路

通过状态变量跟踪当前是否处于连续下跌阶段,逻辑如下:

  1. 出现下跌K线时,开启连续下跌跟踪状态;
  2. 跟踪状态下,第一根上涨K线出现时标记该K线,并关闭跟踪状态;
  3. 遍历全K线序列,重复上述逻辑。

完整代码

//@version=5
indicator("连续下跌后第一根上涨K线标记", overlay=true)

// 自定义涨跌K线判断:可根据需求调整
// 原定义(严格版)
UpBar = high > high[1] and low > low[1]
DownBar = high < high[1] and low < low[1]

// 可选:更通用的收盘价涨跌判断(减少遗漏)
// UpBar = close > close[1]
// DownBar = close < close[1]

// 状态变量:标记是否处于连续下跌跟踪阶段(var确保变量跨K线保留状态)
var inDownTrend = false

// 更新状态逻辑
if DownBar
    inDownTrend := true
else if UpBar and inDownTrend
    inDownTrend := false

// 标记条件:当前为上涨K线,且前一根处于连续下跌跟踪阶段
markBar = UpBar and inDownTrend[1]

// 绘制标记(在K线下方显示蓝色三角)
plotchar(markBar, title="第一根上涨K线", char="▲", color=color.blue, location=location.belowbar, size=size.small)

代码说明

  • var inDownTrend = false:使用var关键字初始化状态变量,确保变量值在K线更新时不会被重置,持续跟踪状态。
  • 状态切换逻辑:下跌K线触发跟踪状态开启,跟踪状态下的第一根上涨K线触发状态关闭。
  • 标记逻辑:markBar判断当前K线是上涨K线,且前一根K线处于跟踪状态,确保标记的是连续下跌后的第一根上涨K线。
  • 可按需替换涨跌K线的判断逻辑,比如用收盘价判断更符合常规的涨跌认知,避免遗漏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 20:33:35