回测看到的股票行情数据和实际不一样?


(vesslanjin) #1

我跑的是模板策略,就是AI选股的那个。

里面的交易信息如下: 29.93 是成交价格,可是历史上002377 从来没有到过这个价格。

2016-01-21 09:30:00 002377.SZA 买入 975.86 29.93 29212.44 8.76

而且我打印的别的股票价格,都不对。 怎么回事?


(iQuant) #2

您好,为了能准确的回测,回测引擎一般都是使用的复权数据。BigQuant平台使用的是后复权数据。

所以您看到的是后复权之后的价格,我们同时提供了复权因子 (字段名:factor),复权价格/复权因子 就可以得到原始价格。


[量化学堂-新手专区]BigQuant数据API详解
(vesslanjin) #3

谢谢,看起来还是有问题,不过极有可能是我自己的用法不对:

在handle_data() 里面写了如下代码:

curr = data.current(symbols('600000.SHA'), 'price')
print(curr)

打出来的如下, 浦发银行的价格,即使是复权的数据,也不可能是143 吧。

2016-01-07
Equity(849 [600000.SHA]) 143.315125


(vesslanjin) #4

再贴一些数据看看:

代码:
handle_data(context, data):
sym = symbols(‘000001.SZA’)
hist = data.current(sym, [‘low’, ‘high’, ‘price’])
today = data.current_dt.strftime(’%Y-%m-%d’)
print(“stock: %s, time: %s, low: %f, high: %f, price: %f” %(‘000001.SZA’, today, hist[‘low’][sym], hist[‘high’]
[sym], hist[‘price’][sym]))

输出, 价格都快1000块了。。。

stock: 000001.SZA, time: 2016-01-04, low: 965.713562, high: 1034.508789, price: 974.312988
stock: 000001.SZA, time: 2016-01-05, low: 958.834045, high: 994.951538, price: 980.332520
stock: 000001.SZA, time: 2016-01-06, low: 979.472595, high: 994.091614, price: 991.511780
stock: 000001.SZA, time: 2016-01-07, low: 938.195435, high: 981.192505, price: 940.775269
stock: 000001.SZA, time: 2016-01-08, low: 937.335510, high: 970.873169, price: 956.254211


(神龙斗士) #5

很多股票/财经网站上都有后复权数据,您可以对比一下。

刚才看了一下新浪财经的数据,是144.29,很接近(每家在复权数据处理上的一些细节不同,会导致略有不同,股票T+1,对回测影响很小)。平安银行的也类似。

您可以提供一下您的数据源,看看是否有问题。


(vesslanjin) #6

谢谢,我再看看哈。


(vesslanjin) #7

确实是我理解错误,谢谢