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

如何在PineScript中获取ES迷你合约前一日美股常规时段收盘价?

解决ES期货合约常规时段收盘价不符的缺口计算问题

你的代码在常规股票市场能正常运行,但ES期货上获取的常规时段收盘价不符合预期,核心原因是Pine Script默认的session.regular对期货合约的常规时段识别和美股股票不同——ES是24小时交易品种,默认的常规时段设置没精准匹配美股期货的9:30-16:00(美东时间)交易时段。

修正方案是自定义精准的常规交易时段,同时确保数据请求时不自动合并缺口,代码如下:

//@version=5
indicator("ES 常规时段缺口计算", overlay=true)

// 定义美股期货常规交易时段(美东时间9:30-16:00)
regular_session = session.new("0930-1600", "America/New_York")
// 创建指定时段的合约ticker
t = ticker.new(syminfo.prefix, syminfo.tickerid, session=regular_session)

// 请求常规时段日线数据,开启缺口保留避免数据合并
prev_day_close = request.security(t, "D", close[1], gaps=barmerge.gaps_on)
current_day_open = request.security(t, "D", open, gaps=barmerge.gaps_on)

gap_value = current_day_open - prev_day_close

// 可选:在K线上标注缺口数值
label.new(bar_index, high, str.tostring(gap_value, "%.2f"), 
          color=gap_value > 0 ? color.new(color.green, 0) : color.new(color.red, 0),
          textcolor=color.white)

关键修正点:

  • 用session.new明确指定美东时间的9:30-16:00时段,完全匹配ES期货的常规交易时间,替代模糊的session.regular
  • request.security添加gaps=barmerge.gaps_on参数,防止平台自动合并缺口时段的数据,保证收盘价和开盘价的准确性
  • 变量名更直观,方便后续维护

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 07:25:20