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

如何在1分钟K线图中获取上一根15分钟K线收盘后的累计成交量?

1分钟K线图中获取已收盘15分钟K线累计成交量的实现方案

方案1:修正request.security的调用逻辑

你用request.security获取15分钟成交量的思路可行,但默认调用逻辑导致无法实时更新当前运行中的15分钟K线数据,具体细节:

  • request.security默认采用非前瞻模式,仅在15分钟K线完全收盘后才会更新数据,所以1分钟K线推进过程中,volume15min会保持当前15分钟周期开盘时的初始值,直到该15分钟K线收盘才刷新。
  • volume15min[1]确实能返回上一根已收盘的15分钟K线成交量,因为[1]指向的是前一个完整的15分钟周期数据,不受当前未收盘周期影响。

如果需要实时获取当前运行中15分钟K线的成交量,需修改request.security的合并参数,开启前瞻合并:

// 获取当前运行中15分钟K线的实时成交量
current_15min_volume = request.security(syminfo.tickerid, "15", volume, barmerge.gaps_on, barmerge.lookahead_on)
// 获取上一根已收盘15分钟K线的成交量
last_closed_15min_volume = request.security(syminfo.tickerid, "15", volume[1])

这里volume[1]在15分钟周期里代表前一根已收盘K线的成交量,结合request.security调用后,能在1分钟图里稳定获取目标数据。

方案2:基于1分钟K线手动计算15分钟成交量

核心步骤

  1. 获取时间戳:Pine Script中time代表当前K线的开盘时间(毫秒级),timenow代表实时系统时间,按需选择即可。
  2. 计算15分钟周期节点:通过取模运算将当前时间向下取整到最近的15分钟起始点,公式为:current_15min_start = time - (time % (15 * 60 * 1000))
  3. 定位上一个完整周期:上一根已收盘15分钟周期的起始时间为last_15min_start = current_15min_start - 15 * 60 * 1000,结束时间即为当前15分钟周期的起始点。
  4. 求和周期内成交量:用sum()函数结合时间条件,筛选出对应周期内的1分钟K线并求和成交量。

完整代码示例

//@version=5
indicator("1分钟图计算15分钟成交量", overlay=false)

// 计算上一根已收盘15分钟周期的起始与结束时间
current_15min_start = time - (time % (15 * 60 * 1000))
last_15min_start = current_15min_start - 15 * 60 * 1000
last_15min_end = current_15min_start

// 筛选周期内K线并求和成交量
last_closed_15min_volume = sum(volume, barssince(time >= last_15min_start and time < last_15min_end))

// 可视化输出
plot(last_closed_15min_volume, title="上一根15分钟成交量", color=color.blue)

这段代码会在每根1分钟K线更新时,重新计算上一个完整15分钟周期的成交量总和,完全依赖本地1分钟数据,无需跨周期调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:45:38