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

Pine Script连续涨跌streak代码调试:无法延续计数求助

Pine Script 连续涨跌(Streak)计数修复方案

原代码问题分析

  • 逻辑判断偏差:需求是当日收盘价与前一日收盘价对比,原代码误将当日收盘价和开盘价做比较
  • 冗余循环:for i=0 to 0完全多余,Pine Script 本身是逐K线(bar)执行的,不需要手动循环单根K线
  • Streak延续逻辑漏洞:仅简单判断前一日streak为正就加1,未关联当前K线的涨跌趋势,导致计数无法正常延续

正确实现代码

//@version=5
indicator("连续涨跌计数", overlay=false)

// 初始化streak变量,跨bar保留数值
var int streak = 0

// 核心逻辑:对比当日收盘价与前一日收盘价
if close > close[1]
    // 当前上涨:若前一日为上涨趋势则延续计数,否则从1开始
    streak := streak[1] > 0 ? streak[1] + 1 : 1
elif close < close[1]
    // 当前下跌:若前一日为下跌趋势则延续计数,否则从-1开始
    streak := streak[1] < 0 ? streak[1] - 1 : -1
else
    // 收盘价相等时streak重置为0
    streak := 0

// 可视化streak数值
plot(streak, title="涨跌连续计数", color=streak>0 ? color.green : streak<0 ? color.red : color.gray, linewidth=2)

代码说明

  • var int streak = 0:用var声明变量,确保其值在每根K线执行时不会被重置,保留上一根K线的计数结果
  • 分支判断逻辑:
    • 当日收盘价高于前一日时,先检查前一日是否处于上涨趋势,是则延续计数加1,否则从1重新开始
    • 当日收盘价低于前一日时,先检查前一日是否处于下跌趋势,是则延续计数减1,否则从-1重新开始
    • 收盘价与前一日相等时,直接将streak设为0
  • 可视化部分:通过plot函数将计数结果展示,上涨为绿色、下跌为红色、平盘为灰色,便于直观观察

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 08:12:35