我查看回测交易详情,股票买卖数量怎么都不是100的倍数呢?


(xiaoping2367) #1

交易所规定100股的倍数吧,怎么回事?


(小Q) #2

你好。股票买卖如你所说,确实是100的整数倍,这是交易所的规定。但是,回测我们并没有采取整数倍的做法,因为回测只是验证策略思想,如果回测结果漂亮,那么就可以初步确定该策略思想是可以盈利的,为保证策略思想的验证不受其他因素影响,或最低程度受其他因素影响(比如资金管理,而交易数量其实是属于资金管理的范畴),因此这里的股票数量并非100的倍数。

即使交易数量是个位数,回测结果也是可信的,你可以这样理解,如果交易数量是个位数,那么将资金规模乘以100倍,是不是就和实盘交易是一致的?因此数量的设置只是为了验证该想法是否能够盈利。

如果你希望交易数量是100的倍数,你可以对下单函数进行重新编写:context.order_value(context.symbol(instrument), cash)

下单函数是回测引擎的内部函数,关于回测引擎的使用可以参考:回测


(pigirl) #3

将context.order_value(context.symbol(instrument), cash)根据策略逻辑做一定修改。
例子:context.order(context.symbol(instrument), 100) 就表示买入该股票100股


(神龙斗士) #4

可能还需要考虑回测的时候用的是复权价格(BigQuant平台是后复权)