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

如何使不同时间框架下ta.pivothigh与ta.pivotlow结果日期一致?

解决不同时间框架下枢轴高低点日期不一致问题

问题根源:你当前代码中,调用request.security请求日线数据时,传入的i_leftBars和i_rightBars是基于当前图表时间框架的bar数量(比如4小时图的10bar对应40小时),但日线框架下的10bar是10天,这导致日线级别计算的枢轴点逻辑和当前时间框架完全不同,最终出现日期不匹配的情况。

解决方案

核心思路是:在日线级别计算出枢轴高低点及其对应的日期,然后在当前时间框架中找到对应日期的K线,将枢轴点价格绘制在该K线上,确保两者锚定在同一天。

修改后的完整代码:

//@version=5
indicator("DEBUG: Pivot High and Low", overlay=true)

i_leftBars = input(10, title="Bars to the Left (Daily)")
i_rightBars = input(10, title="Bars to the Right (Daily)")

// 当前时间框架的枢轴点
ph = ta.pivothigh(i_leftBars, i_rightBars)
pl = ta.pivotlow(i_leftBars, i_rightBars)

// 日线级别获取枢轴点价格和对应的日期
[phD_price, phD_time] = request.security(syminfo.tickerid, "D", [ta.pivothigh(i_leftBars, i_rightBars), time])
[plD_price, plD_time] = request.security(syminfo.tickerid, "D", [ta.pivotlow(i_leftBars, i_rightBars), time])

// 在当前时间框架中,匹配日线枢轴点的日期,绘制对应价格
phD = na(phD_price) ? na : (time >= phD_time and time < phD_time + 86400000 ? phD_price : na)
plD = na(plD_price) ? na : (time >= plD_time and time < plD_time + 86400000 ? plD_price : na)

// 绘制枢轴点
plot(ph, style=plot.style_cross, linewidth=3, color=color.red)
plot(pl, style=plot.style_cross, linewidth=3, color=color.green)
plot(phD, style=plot.style_cross, linewidth=5, color=color.orange)
plot(plD, style=plot.style_cross, linewidth=5, color=color.blue)

关键修改说明

  • 调整输入参数注释,明确i_leftBars和i_rightBars是基于日线的bar数量,避免框架混淆。
  • 通过request.security同时获取日线枢轴点的价格和发生日期(time变量)。
  • 在当前时间框架中,通过判断当前K线时间是否落在日线枢轴点的日期范围内(86400000为一天的毫秒数),将日线枢轴点价格绘制到对应日期的K线上。
  • 此逻辑可保证日线级别的枢轴点与当前时间框架的枢轴点(若为同一天)显示在同一日期的K线组中,方便锚定VWAP线。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 09:15:17