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

Pinescript计算DAX指数9点收盘缺口遇时间帧不支持问题求助

DAX缺口计算报错“时间帧不支持”的解决方法

问题原因

你原代码的核心问题在于:

  1. 直接通过request.security获取30分钟周期的close[0],会取当前时间所在的30分钟K线收盘价,而非固定9:30的那根K线,跨周期请求时容易触发时间帧兼容问题。
  2. 未指定正确的时区,DAX交易时间为欧洲中部时间(CET/CEST),时区不匹配会导致时间筛选失效,进而触发报错。
  3. 部分平台对INDEX:DAX的30分钟数据访问有限制,改用通用代号DE40可能解决权限问题。

修正后的代码

//@version=5
indicator("DAX Gap计算器", overlay=false, timezone=time_zone.central_europe)

// 获取前一日收盘价
prev_day_close = request.security("INDEX:DAX", "D", close[1])

// 获取当日9:30的30分钟K线收盘价
nine_thirty_close = request.security("INDEX:DAX", "30", 
    time == timestamp(year, month, dayofmonth, 9, 30) ? close : na)

// 计算缺口大小(仅当9:30收盘价有效时输出)
gap_size = not na(nine_thirty_close) ? nine_thirty_close - prev_day_close : na

// 可视化缺口
plot(gap_size, color=gap_size > 0 ? color.new(color.green, 0) : color.new(color.red, 0), title="缺口大小")
label.new(bar_index, high, str.tostring(gap_size, "%.2f"), 
     color=gap_size > 0 ? color.green : color.red, textcolor=color.white)

关键修正点说明

  • 时区设置:通过timezone=time_zone.central_europe指定欧洲中部时间,确保9:30的时间匹配DAX实际交易时段。
  • 精准时间筛选:在30分钟周期的请求中,通过time == timestamp(...)精准定位当日9:30的K线,仅返回该K线的收盘价,避免跨周期数据冲突。
  • 空值处理:用not na(...)判断9:30收盘价是否有效,避免未到交易时间时出现计算错误。

额外排查建议

  • 如果仍报错,将标的代码INDEX:DAX替换为DE40,这是多数交易平台对DAX的通用代号,数据兼容性更好。
  • 确保使用Pinescript v5版本,v5的request.security函数稳定性和兼容性优于旧版本。
  • 检查平台是否提供DAX的30分钟历史数据访问权限,部分免费平台可能限制高频数据请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 06:13:28