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

Forex市场中如何用Pine Script获取指定时间的bar_index

解决外汇市场中指定时间对应bar_index的计算偏差问题

你原来的公式(time - mytime) / (1000 * timeframe.in_seconds(timeframe.period))是线性计算时间差,但外汇市场存在周末休市时段(无K线生成),这段空白时间会被计入计算,导致得出的bar_index和实际不符。以下是两种可靠的解决方法:

方法一:用ta.barssince()自动跳过休市时段

这个函数会在有K线的范围内查找符合条件的时间点,自动忽略休市的空白期:

// 定义目标时间(毫秒级时间戳)
target_time = mytime
// 计算从当前K线到目标时间K线的间隔数
bars_since_target = ta.barssince(time >= target_time)
// 得到正确的bar_index
correct_bar_index = bar_index - bars_since_target

如果需要精确匹配目标时间为K线开盘时间,可将time >= target_time改为time == target_time。

方法二:用ta.valuewhen()直接获取对应bar_index

适合需要精准定位目标时间对应K线的场景:

target_time = mytime
// 获取最近的、时间匹配目标时间的K线的bar_index
correct_bar_index = ta.valuewhen(time == target_time, bar_index, 0)

若目标时间处于K线运行过程中(非开盘时间),可调整条件为time >= target_time,取第一个符合条件的K线索引。

注意事项

  • 不同经纪商的休市窗口略有差异,上述方法基于当前图表的K线数据计算,会自动适配经纪商的休市规则;
  • 跨周期计算时,确保timeframe.period参数与目标周期一致,或切换到对应周期图表执行计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 04:50:11