设为首页收藏本站

 找回密码
 注册
查看: 1017|回复: 2
打印 上一主题 下一主题

quant版自动复权、映射、换仓用于股票的小bug [复制链接]

Rank: 1

精华
0
UID
225653
积分
31
帖子
14
主题
9
阅读权限
10
注册时间
2015-12-24
最后登录
2020-11-10
跳转到指定楼层
1#
发表于 2020-2-29 13:40:32 |只看该作者 |倒序浏览
在学习TbQuant版关于除权换月的处理的文档时,有个文件名字叫《除权换月的后复权处理——系统函数便捷处理》,里面介绍了三个系统函数设置后复权、映射和自动换仓。
但是在进行股票自动换仓试验时发现如下问题,招商银行换仓后还是持有100股,而300755,复权自动换仓后变成了持仓200股。
先贴试验用的代码

用于招商银行

用于另外一只股票


出现以上问题,我猜测主要是由于自动换仓的系统函数采纳了《除权换月的后复权处理——后复权数据》中的代码,如下
lots=Max(1,Round(Abs(CurrentContracts*Rollover/Rollover[1]),IIF(Category==0,-2,0)));
该代码通过四舍五入的方法取整百股数,然而在实盘的股票交易中,如果某账户持有的该股票送的股数不足100股,是可以产生零头股数的。那么如果在回测中交易某股票的股数较少,就可能与实盘交易的结果产生较大误差。就像上图招商银行的情况,而另一只股票由于期间是10送8,因此四舍五入由100股持仓在除权后变成了200股持仓。

请技术人员指正。
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
2#
发表于 2020-3-3 09:05:17 |只看该作者
是的,你所说的情况是存在的。目前的规则,没有太好的办法去规避这种因为零头的计算最后四舍五入而导致的偏差。。
放大信号持仓倍数,则可以体现出10送8.

使用道具 举报

Rank: 1

精华
0
UID
225653
积分
31
帖子
14
主题
9
阅读权限
10
注册时间
2015-12-24
最后登录
2020-11-10
3#
发表于 2020-3-4 18:03:16 |只看该作者
小米 发表于 2020-3-3 09:05
是的,你所说的情况是存在的。目前的规则,没有太好的办法去规避这种因为零头的计算最后四舍五入而导致的偏 ...

明白了,谢谢。

使用道具 举报

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

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-13 23:48

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部