量化投资学习笔记178——对交易系统代码进行重构

这两周尝试对我的交易系统的代码进行了重构。具体过程就不赘述了,看这儿
总结一下收获吧。
1.什么是代码的“坏味道”?就我自己的代码来说,主要是函数和变量的命名太乱了,函数太长了,还使用了全局变量。一开始写的时候抱着能运行就好的心态,没有一个系统的设计。问题一是debug比较困难,尤其是能正常运行的bug,基本只能靠在代码里到处插print来找错误。另一个问题是扩展困难,交易策略跟回测过程全纠缠在一起,要改策略需要动很多地方,而且往往只能靠往函数里增加新的参数来扩展。
2.这些“坏味道”怎么改呢?函数和变量的命名问题,要有一个一致的变量命名规则,比如:类的命名首字母大写,驼峰式命名,比如BackTest;函数名和变量名用小写,单词之间用下划线,如do_trade;全局变量全用大写,比如PI。函数过长的问题,可以拆分为多个短函数。全局变量的问题,可以把这些全局变量和使用全局变量的地方提炼为类。
3.关于设计模式的问题,久闻其名,因为一般都是用java或者c++来阐释,也不知道有啥用,就没仔细学过。这次主要是为了解决使用不同的策略的问题,就学了一下。策略模式适合我的需求。但是改着改着,发现这不就是BackTrader这样的框架为我们所做的吗?去看了一下BackTrader的Strategy源代码,比我想象的要复杂很多。设计模式,可能对框架的设计者很有用,对于框架的使用者,还是先掌握框架吧。不过学点设计模式对更好的使用框架还是有帮助的。我还是先用BackTrader吧。设计模式分创建、结构、行为三类,用到再看。
4.要提高程序的可测试性,要写单元测试。打算看看测试驱动开发,用用pytest啥的。
源代码

再来看看实盘,我在6.30的时候把TCL科技卖了,彻底空仓。账户余额1006.92,净赚6.92元。而总成本7.67元,超过了净收益。所以赚钱的还是券商……

经常有人问我交易成本的问题,回想我十几年前刚接触股市的时候,完全没有成本的意识。那时佣金比例是千分之三,最低五元。我拿着父亲给的1800一顿猛操作,最后折腾了只剩四百多。后来真正开始投资是这几年,不断换券商,佣金比例才越来越低。我目前的券商是在知乎上找的,业务员已经换工作了。正好有人来找我合作,于是给大家推荐另外一个: https://bee.cczq.com:9443/zzbqr.html?id=2182
或者扫二维码
股票佣金费率万一不免五,不免五,不免五。要说明的是我自己并没有在其那里开户,具体可以点进去自己咨询,或者私信我给您发详细信息。就这样了。

目前我正在研究测试驱动开发TDD。

我发文章的三个地方,欢迎大家在朋友圈等地方分享,欢迎点“在看”。

我的个人博客地址:https://zwdnet.github.io

我的知乎文章地址: https://www.zhihu.com/people/zhao-you-min/posts

我的微信个人订阅号:赵瑜敏的口腔医学学习园地

欢迎打赏!感谢支持!