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

如何将NQ期货5分钟OHLCV数据按18:00CT-17:00CT周期重采样为日线数据

解决CME NQ期货自定义交易日重采样问题

要实现18:00CT至次日17:00CT的日线OHLCV聚合,核心是将这个非自然日的交易时段映射到统一的日期标签,具体步骤如下:

1. 时区处理(关键)

CME采用美国中部时间(CT/CDT,含夏令时),必须将时间索引转换为带时区的格式,避免夏令时导致的时间偏移错误:

import pandas as pd

# 读取原始数据
nq_data = pd.read_csv(r"C:\Python\data\NQ Data Extract 2023-07-20.csv")

# 合并日期时间列并转换为带CT时区的时间
nq_data['DateTime'] = pd.to_datetime(nq_data['Date'] + ' ' + nq_data['Time'])
# 转换为美国中部时区,自动处理夏令时模糊/缺失时间
nq_data['DateTime'] = nq_data['DateTime'].dt.tz_localize('US/Central', ambiguous='infer', nonexistent='shift_forward')
nq_data.set_index('DateTime', inplace=True)

# 删除冗余的日期、时间列
nq_data.drop(['Date', 'Time'], axis=1, inplace=True)

2. 自定义交易日重采样

我们需要将前一天18:00CT到当天17:00CT的数据聚合为当天的日线数据,这里提供两种等价实现方式:

方式一:索引偏移法

通过调整时间索引,将目标交易时段映射到同一个自然日,再进行重采样:

# 将所有时间点减去18小时,把18:00CT的起始时间对齐到自然日00:00
adjusted_index = nq_data.index - pd.Timedelta(hours=18)
nq_adjusted = nq_data.set_index(adjusted_index)

# 按自然日重采样并聚合OHLCV
df_daily = nq_adjusted.resample('1D').agg({
    'Open': 'first',
    'High': 'max',
    'Low': 'min',
    'Close': 'last',
    'Volume': 'sum'
}).copy()

# 将日期标签加1天,得到实际交易日(比如映射到7月20日的时段对应7月21日交易日)
df_daily.index = df_daily.index + pd.Timedelta(days=1)

# 删除全空的无效交易日
df_daily.dropna(how='all', subset=['Open', 'High', 'Low', 'Close'], inplace=True)

方式二:resample offset参数法

直接通过resample的offset参数调整重采样起始时间,无需手动修改索引:

# 用offset参数将重采样起始时间偏移18小时,匹配CME交易日起点
df_daily = nq_data.resample('1D', offset='-18h').agg({
    'Open': 'first',
    'High': 'max',
    'Low': 'min',
    'Close': 'last',
    'Volume': 'sum'
}).copy()

# 删除全空的无效交易日
df_daily.dropna(how='all', subset=['Open', 'High', 'Low', 'Close'], inplace=True)

逻辑验证

以2023-07-20 18:00CT到2023-07-21 17:00CT的时段为例:

  • 方式一中,该时段时间减去18小时后,会被归入2023-07-20自然日,最终索引加1天对应2023-07-21交易日
  • 方式二中,offset='-18h'直接将重采样起始点设为前一天18:00,聚合结果的日期即为对应交易日

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 21:50:22