PineScript计算每日K线数:加密货币场景数值动态变动问题求助
解决PineScript加密货币品种每日K线数动态变化问题
问题原因
加密货币是24小时不间断交易品种,无固定收盘时段,当日会持续生成新K线。你当前代码里的ta.barssince(ta.change(time("D"))) + 1是实时统计当日已生成的K线数量,所以每新增一根K线数值就会递增。而股票等常规品种有固定交易时段,收盘后当日不再生成新K线,数值会固定下来,这就是两者表现差异的核心原因——加密货币里的动态变化其实是当前代码逻辑的正常表现。
解决方案
如果你需要显示每日收盘后的固定K线总数(即当日最终生成的K线数量),可以修改代码,在每日结束时记录该数值并保留显示,而非实时计算当前K线数:
//@version=5 indicator("Ebanina", overlay=true) // 持久化存储当日K线计数和表格 var int dailyBarCount = 0 var table ebanina = table.new(position.bottom_center, 4, 5) // 检测新交易日的到来 isNewDay = ta.change(time("D")) if isNewDay // 将上一日的最终K线数写入表格 table.cell(ebanina, 2, 0, str.tostring(dailyBarCount), text_color = color.rgb(0, 0, 0), text_halign = text.align_right) // 重置计数为1(当前是新交易日的第一根K线) dailyBarCount := 1 else // 非新交易日,持续递增当日K线计数 dailyBarCount += 1
代码说明
var关键字确保dailyBarCount和表格对象在脚本重绘时不会被重置,能持久保存数据- 通过
ta.change(time("D"))触发新交易日的逻辑,此时锁定上一日的最终K线数并更新表格 - 非新交易日时持续递增计数,保证能准确记录当日的总K线数量
内容的提问来源于stack exchange,提问作者Kompost
相关产品推荐
相关产品推荐

