- 精华
- 0
- 在线时间
- 70 小时
- UID
- 225653
- 积分
- 31
- 帖子
- 14
- 阅读权限
- 10
- 注册时间
- 2015-12-24
- 最后登录
- 2020-11-10
- 精华
- 0
- UID
- 225653
- 积分
- 31
- 帖子
- 14
- 主题
- 9
- 阅读权限
- 10
- 注册时间
- 2015-12-24
- 最后登录
- 2020-11-10
|
在学习TbQuant版关于除权换月的处理的文档时,有个文件名字叫《除权换月的后复权处理——系统函数便捷处理》,里面介绍了三个系统函数设置后复权、映射和自动换仓。
但是在进行股票自动换仓试验时发现如下问题,招商银行换仓后还是持有100股,而300755,复权自动换仓后变成了持仓200股。
先贴试验用的代码
用于招商银行
用于另外一只股票
出现以上问题,我猜测主要是由于自动换仓的系统函数采纳了《除权换月的后复权处理——后复权数据》中的代码,如下
lots=Max(1,Round(Abs(CurrentContracts*Rollover/Rollover[1]),IIF(Category==0,-2,0)));
该代码通过四舍五入的方法取整百股数,然而在实盘的股票交易中,如果某账户持有的该股票送的股数不足100股,是可以产生零头股数的。那么如果在回测中交易某股票的股数较少,就可能与实盘交易的结果产生较大误差。就像上图招商银行的情况,而另一只股票由于期间是10送8,因此四舍五入由100股持仓在除权后变成了200股持仓。
请技术人员指正。
|
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
|