如何从tick数据计算每分钟交易量,配合resample生成OHLC数据
1分钟OHLC新增交易量列解决方法
resample方法天然支持不均匀频率的tick数据聚合,不需要担心每分钟样本数量不一致的问题,和你之前计算OHLC的逻辑完全兼容,可直接按以下步骤实现需求:
步骤1:计算每分钟交易量
根据你原始数据的成交量字段类型选择对应代码:
- 如果原始数据中成交量是逐笔单次成交量,直接按分钟求和即可:
# 请将代码中的 mydf.columns[6] 替换为你实际的成交量列索引/列名 volume_min = mydf[mydf.columns[6]].resample('1Min').sum()
- 如果原始数据中成交量是累计成交量,符合你提到的“减前一分钟累计值得到单分钟成交量”的逻辑:
# 先取每分钟最后一条的累计成交量值 cum_volume_min = mydf[mydf.columns[6]].resample('1Min').last() # 差分得到单分钟成交量,第一分钟无前置值默认填0 volume_min = cum_volume_min.diff().fillna(0)
步骤2:合并到OHLC DataFrame
假设你之前生成的OHLC数据存储在变量ohlc_df中,直接新增列即可:
ohlc_df['volume'] = volume_min
注意:如果运行时出现对齐问题,可确认OHLC的时间索引和计算得到的
volume_min时间索引格式一致,resample生成的索引默认和OHLC索引完全对齐,无需额外处理。
内容的提问来源于stack exchange,提问作者Sachin Kumar
相关产品推荐
相关产品推荐

