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

请求编写Pine Script实现小时成交量均值静态直方图

Pine Script 实现静态小时成交量均值直方图

以下代码可生成固定显示24根的静态直方图,计算过去5000根K线中对应00:00至23:00每个小时的成交量平均值:

//@version=5
indicator("静态小时成交量均值直方图", overlay=false, shorttitle="Hourly Vol Avg", precision=0)

// 初始化存储每个小时的成交量总和、K线计数的数组
var float[] hourlyVolSum = array.new_float(24, 0.0)
var int[] hourlyBarCount = array.new_int(24, 0)
var bool isCalculated = false

// 在最后一根K线时,回溯统计过去5000根数据
if barstate.islast and not isCalculated
    // 限制回溯最多5000根,避免超出历史数据范围
    maxBarsToLookBack = math.min(bar_index, 4999)
    for i = 0 to maxBarsToLookBack
        currentHour = hour(time[i])
        currentVol = volume[i]
        // 更新对应小时的统计数据
        array.set(hourlyVolSum, currentHour, array.get(hourlyVolSum, currentHour) + currentVol)
        array.set(hourlyBarCount, currentHour, array.get(hourlyBarCount, currentHour) + 1)
    isCalculated := true

// 计算每个小时的成交量均值
var float[] hourlyVolAvg = array.new_float(24)
if barstate.islast
    for i = 0 to 23
        barCount = array.get(hourlyBarCount, i)
        array.set(hourlyVolAvg, i, barCount > 0 ? array.get(hourlyVolSum, i) / barCount : na)

// 创建静态表格绘制直方图
var table histTable = table.new(position.bottom, 24, 1, border_width=1, width=100, height=100)
if barstate.islast
    // 获取均值最大值用于归一化柱子高度
    maxAvgVol = array.max(hourlyVolAvg)
    // 遍历24小时绘制柱子
    for hourIdx = 0 to 23
        avgVol = array.get(hourlyVolAvg, hourIdx)
        // 计算柱子高度比例(避免除以0)
        heightRatio = na(avgVol) or maxAvgVol == 0 ? 0 : avgVol / maxAvgVol
        // 设置单元格样式:背景透明度对应柱子高度,文本显示小时
        table.cell(histTable, hourIdx, 0, 
                   text=str.tostring(hourIdx) + ":00",
                   bgcolor=color.new(color.blue, 100 - int(heightRatio * 90)),
                   text_color=color.white,
                   align=align.center,
                   valign=align.bottom)

代码说明

  • 数据统计逻辑:仅在最后一根K线时回溯最多5000根历史数据,按小时(0-23)分组统计成交量总和与K线数量,计算均值
  • 静态显示实现:通过table组件固定在图表底部,绘制24个小时的柱子,柱子高度由该小时均值占所有小时均值最大值的比例决定
  • 边界处理:对无数据的小时(均值为na)显示空柱子,同时限制回溯数量避免超出历史数据范围

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 03:03:41