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

如何在TradingView的Pine Script中获取区间内价格变动次数及历史数据?

在Pine Script中获取指定区间的价格变动次数

可以实现,核心思路是通过request.security()调用tick周期的数据,统计指定时间区间内的tick数量(每一个tick对应一次价格变动),这种方法能获取历史任意时刻的统计结果,满足你的需求。

实现代码示例

//@version=5
indicator("区间价格变动次数统计", overlay=true)

// 定义统计区间(单位:分钟)
lookbackMinutes = input.int(3, title="统计区间(分钟)")

// 转换为毫秒,用于时间范围判断
lookbackMs = lookbackMinutes * 60 * 1000

// 在tick周期下统计指定区间内的tick数量
getTickCount() =>
    var int tickCount = 0
    // 只在当前tick的时间在统计范围内时计数
    if time - time[1] <= lookbackMs
        tickCount += 1
    // 当超出统计区间时重置计数
    else
        tickCount := 1
    tickCount

// 请求tick周期的统计结果
tickCountInRange = request.security(syminfo.tickerid, "tick", getTickCount())

// 显示结果
label.new(bar_index, high, str.tostring(tickCountInRange) + "次价格变动", color=color.blue, textcolor=color.white)

关键说明

  • tick周期的作用:tick周期的每一根K线对应一次价格变动,因此统计该周期下指定时间范围内的K线数量,就是价格变动的次数。
  • 历史数据支持:通过request.security()将统计逻辑放在tick周期上下文执行,能回溯获取历史任意时刻的区间统计结果,解决了实时递增变量无法获取历史数据的问题。
  • 注意事项:
    • 部分标的可能没有tick级数据支持,此时可以用最小时间框架(如1秒,若平台支持)替代tick周期。
    • 大量历史回测时,tick数据请求可能会增加脚本运行负载,建议合理设置回测范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 08:29:57