waditu / tushare

TuShare is a utility for crawling historical data of China stocks
BSD 3-Clause "New" or "Revised" License
12.79k stars 4.28k forks source link

pro_bar的期货日线开盘价计算错误 #1406

Closed masq6r closed 4 years ago

masq6r commented 4 years ago

国内期货市场上,有夜盘的期货的开盘价应该是夜盘21:00开始的第一笔成交价,但用Tushare的数据接口pro_bar获取的日线行情对于开盘价的计算却是不一致的,有时错误,有时正确。

Case I

# rb1810 bars with interval of 5 minutes
df5 = ts.pro_bar(ts_code='RB1810.SHF', asset='FT', start_date='20180331', end_date='20180403', freq='5min')
# rb1810 daily bars
df_daily = ts.pro_bar(ts_code='RB1810.SHF', asset='FT', start_date='20180331', end_date='20180403')

检查上面的df_daily中的数据,可以看到4月2日的开盘价为3386。4月2日的开盘价即前一个交易日期(3月30日)的21:00时的成交价,从df5中检查,3/30日21:00的价格为3296,和df_daily中的数据不一致。进一步检查可知,df5中4/2日21:00时的价格为3386。也就是说,Tushare错误的将4/3日的开盘价当作了4/2日的开盘价。

Case II

# rb2010 bars with interval of 5 minutes
df5 = ts.pro_bar(ts_code='RB2010.SHF', asset='FT', start_date='20200727', end_date='20200801', freq='5min')
# rb2010 daily bars
df_daily = ts.pro_bar(ts_code='RB2010.SHF', asset='FT', start_date='20200727', end_date='2020801')

检查df_daily在7/28日的开盘价为3722,该价格即为7/27日21:00时的成交价。从df5的数据中检查,7/27 21:00时的价格为3722。这个case中,Tushare正确的处理了开盘价。可以进一步通过查找df_daily中7/29的开盘价,并与df5中7/28 21:00的价格比较,发现两者价格都为3720,而验证在这个case中Tushare正确处理的结论。

masq6r commented 4 years ago

多方对比了数据,是分钟线处理过了。