最近有读者咨询,为什么《151 strategies》没有更新了。这是因为专栏调整方向了,第一部分的backtrader的教程已经写完,并且提供了一些股票和期货策略的例子,我相信对于《151 strategies》中的策略,大家都能够复现,所以,我把自己的精力放到了更重要的地方。
最近梳理了下IB的 TWS API,并且尝试了backtrader如何在IB上进行实盘交易;
然后按照我自己的计划,即将讲解backtrader的源代码,讲真,backtrader源代码我已经读过好几遍,仅仅为了讲解源代码而讲解源代码,意义不大,网上也已经有一些免费的backtrader源代码解析的文章,所以,秉持着对自己的高要求,希望能够对backtrader继往开来,发扬光大的精神,在这次源码解析中,不仅仅会分析backtrader的源代码,还会深入理解python的效率问题,以及使用cython替代backtrader的部分函数,提高backtrader的回测效率。
按照cython教程上写的,高效使用cython可以提高300+的速度,即使简单使用,也可以提高2倍左右的速度,所以,给自己订个目标,基于numpy和cython,在源码解析部分,希望能够把backtrader的速度提高10倍以上,这是一个艰巨的任务。
新冠新年很可能回不了家了,在北京过年,还有冬奥会,所以,我大概会宅在家,好好解析下backtrader的源码,深入探索下python,不断使用cython替代backtrader的一些函数。
为了做源码解析这部分,我已经用了几个月的业余时间进行准备了,虽然可能平均下来可能每天就只用一个小时左右,但是这已经算是一笔比较大的投资了。在这几个月的时间中,主要做了下面的几件事:
重新读了原先买的《python cookbook》
买了《流畅的python》,读了一遍
购买了专栏《Python 源码深度剖析》,目前在读第二遍,手机上可以阅读,挺方便的,走到哪里都可以看。这个专栏跟我半毛钱关系都没有,纯粹做下推荐,想要学好python,建议读一读。
还有一本17年打印的《cython》的书,周末有时间读一读
还有需要重新学习一下c/c++相关的知识,以前简单学过,仅仅是了解
在源码解析开始之前,我给自己做了这么多准备,也不知道够不够,可以想象这个过程中肯定会有很多的坑,在这个专栏里面记录下来吧,这至少应该能提供一些经验价值吧。
如果成功做出来了底层基于numpy和cython的backtrader的话,应该挺好的,毕竟在保持使用简单的基础上,大大提高了速度,如果没有成功的话,大家也能对backtrader了解更多,我会把backtrader揉碎了讲,一个个函数的去讲。
源码解析完成之后,接下来就会继续策略部分,完成专栏计划的100个策略,之后用真正的海龟交易法则(不是外面的那种简化版本)结束这个专栏。不得不吐槽下,虽然我时间有限,但是用了一个多月时间(50+个小时)都不能完全复现一个策略的情况,还是很少发生的,所以,用这个海龟交易法则作为专栏的结尾,应该称得上是一个圆满了。