返回列表 发布新帖

xtdata获取指数数据market_data的volume值可能存在整数溢出问题

23 1

测试代码:

import pandas as pd
from tqdm import tqdm
from xtquant import xtdata
import time

STOCK_LIST = xtdata.get_stock_list_in_sector('沪深A股')
INDEX_LIST = xtdata.get_stock_list_in_sector('沪深指数')
ETF_LIST = xtdata.get_stock_list_in_sector('沪深ETF')

ALL_CODE = INDEX_LIST

# 按装订区域中的绿色按钮以运行脚本。
if __name__ == '__main__':

    start = time.time()
    # xtdata.download_history_data2数据量大时会超时
    for code in tqdm(ALL_CODE):
        xtdata.download_history_data(code,'1d')

    df_d = xtdata.get_market_data_ex([],stock_list=ALL_CODE)
    df_l = [df.assign(stock_code=code,name = xtdata.get_instrument_detail(stock_code=code)['InstrumentName']) for code,df in df_d.items()]
    df = pd.concat(df_l,axis=0).dropna()

    print(f'Elapsed time: {time.time()-start}')

dataframe经过volumn排序数据视图(xtdata): fde5c26d96cb379b93baf8779139f372.png

实际来看,国证基金(399379.SZ)在2024年12月10日的实际日线数据,实际volume大约为21.51亿,在同花顺可以看到:

733e38e4c85537e409a50ee9641f2843.jpg

那么xtdata获取到的却是-2143838023,我觉得可能是工程师在设计数据类型的时候使用的是int32类型,int32的取值范围是-2,147,483,648 到 2,147,483,647,如果超过就会导致整数溢出,那么因为超出的不多就刚好是-21亿左右。

基于这个猜想后来我又做了个测试:

对已经处理好的datafeame进行一下操作,目的就是看看有没有比较接近+-21亿或者0的,那么成交量应该是21亿的整数倍:

df = df.loc[(df['volume'] > -50000000) & (df['volume'] < 0),:]

AA13BE62-BD86-49BC-9D5D-DB6CA7228592.png

c0c7339e1c06f926fbbe2506505aece4.jpg

我们来分析 科创ESG(000691.SH)

奇怪的是,明明当天的成交量远小于int32范围,为什么还是负数?但是总之,volume为负数肯定是不正确的。不知道大家的环境是否有类似问题,欢迎交流。

评论1

*******2848_wA7de楼主
发表于 6 小时前 | 显示全部楼层
补充一下:
使用print(df.dtypes)后,排除pandas加载问题

time                  int64
open                float64
high                float64
low                 float64
close               float64
volume                int64
amount              float64
settelementPrice    float64
openInterest          int64
preClose            float64
suspendFlag           int32
stock_code              str
name                    str
dtype: object
{B612CB02-E0C9-47D2-9F48-9D2048DCB6BF}.png

回复

您需要登录后才可以回帖 登录 | 立即注册

客服专线

400-080-8112

用思考的速度交易,用真诚的态度合作,我们是认真的!
  • 关注公众号
  • 添加微信客服
Copyright © 2001-2026 迅投QMT社区 版权所有 All Rights Reserved. 京ICP备2025122616号-3
关灯 快速发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表