2015-10-04

最近在给系统增加前复权的功能,而且不能是简单的复权,得能模拟测试用的定点前复权。

比如你测试2014-01-01日的交易,那你不能以今天2015-10-01的点往前复权,这会导致和当时的实际情况不一样。 我希望能尽量再现当时情况进行测试交易,虽然这点差距不大吧(实际测试下来确实几乎没影响),但我依然做掉了。

定点前复权无法cache,因为每次换交易日,复权数据就变了,每次取一个tick时都要实时计算,做好后速度慢了1.5倍。

这也太慢了吧,不过可以优化了!

我个人最喜欢做的就是优化,毕竟优化很有挑战性,且事务单一,容易集中精神。

今天跑了下主要慢在复权公式上(20%),其次是慢在搜索复权点上(15%),打算对这2个分别优化下,预估分别能优化到10%和3%。

计算没有太大优化余地,你公式基本简化不了,我打算储存一部分的计算结果来加速这10%。 搜索也比较困难,二分法对这类每个商品只有10来行的数据来说已经最快了,我还加了cache。所以只能通过改变方式来做了,打算不搜索复权点了,想办法直接取到。

明天开干。


回主页