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

PineScript v5切换图表类型后如何获取正确K线数据?

解决PineScript中Renko等非标准图表类型下日线数据获取错误的问题

你的问题核心在于:Renko、Kagi等非标准图表是基于价格变动生成的,其bar结构和标准时间周期K线完全不匹配。原代码中你将当前图表(如Renko)的bar数据传递给request.security,导致目标周期(日线)的索引对应关系错乱,进而返回错误数据。

正确解决方案

要确保数据仅基于标准时间K线计算,需直接在request.security的回调作用域内引用目标周期的bar数据,而非从当前图表传递数据。修改后的代码如下:

// 直接在日线周期下获取前一天的高低开收数据
[PDH, PDL, PDO, PDC] = request.security(syminfo.tickerid, "D", [high[1], low[1], open[1], close[1]])

优化建议(可选)

添加barmerge参数可更精准控制数据合并行为,避免前瞻数据或缺口问题,适合回测场景:

[PDH, PDL, PDO, PDC] = request.security(
    syminfo.tickerid, 
    "D", 
    [high[1], low[1], open[1], close[1]],
    barmerge.gaps_on,  // 保留日线数据中的缺口
    barmerge.lookahead_off  // 关闭前瞻,仅使用已闭合的日线bar数据
)

原理说明

  • request.security的第三个参数是在目标周期(此处为日线)的上下文执行的代码,直接引用high[1]会取日线周期的前一根bar(即前一天)的最高价,完全不受当前图表类型影响。
  • 原代码中theHigh[1]是当前图表(如Renko)的前一根bar的最高价,和日线周期的bar没有对应关系,这是错误的根源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 09:02:10