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

TradingView Pine Script v5 跨周期成交量正负统计实现咨询

Pine Script v5 跨周期正成交量实现方案

以下是符合需求的可运行完整代码:

//@version=5
indicator("1分钟基期正成交量聚合", overlay=false, shorttitle="正成交量", precision=0)

// 封装1分钟周期内的正成交量判断逻辑
get_1min_pos_vol() =>
    // 当期1分钟收盘价高于前一期1分钟收盘价时返回当期成交量,否则返回0
    close > close[1] ? volume : 0

// 拉取1分钟周期计算结果,关闭未来函数避免数据偏差
min1_pos_vol = request.security(syminfo.tickerid, "1", get_1min_pos_vol(), gaps=barmerge.gaps_on, lookahead=barmerge.lookahead_off)

// 在当前图表周期聚合对应区间内的所有1分钟正成交量
cycle_total_pos_vol = math.sum(min1_pos_vol, ta.barssince(barstate.isfirst) + 1)

// 绘图配置
plot(cycle_total_pos_vol, title="正成交量", color=color.green, style=plot.style_columns)
// 可选:叠加总成交量作为对比
plot(volume, title="总成交量", color=color.new(color.gray, 60), style=plot.style_columns, transp=70)

关键逻辑说明

  • 将1分钟周期的收盘价对比、成交量归类逻辑封装为独立函数传入request.security,确保判断过程完全基于1分钟周期运行,不受当前图表周期切换影响
  • 新增高周期聚合逻辑,将当前图表单根K线对应时间范围内的所有1分钟正成交量求和,得到高周期维度的展示值
  • 显式设置lookahead=barmerge.lookahead_off,避免未来函数问题,保证回测和实盘数据一致性

原代码问题说明

你之前的实现存在两个核心错误:

  • 仅通过request.security拉取了1分钟成交量值,没有将收盘价对比逻辑放入低周期执行,判断逻辑实际是在当前图表高周期运行,不符合需求
  • 没有对1分钟维度的正成交量结果做高周期聚合,导致计算值和展示周期不匹配

扩展说明

如果需要统计负成交量,仅需将get_1min_pos_vol()函数内的判断条件修改为close < close[1]即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 09:09:05