这是一个全新的系列,第一篇文章正好对运行刚好三个月的量化交易脚本做一个简单的总结,也是在挖了许多坑之后,又挖的一个新坑。这个量化系列会不定时更新,会记录我在量化学习过程中的心得,以及对实际测试的总结(其实就是记一个流水账。。。)。
来源
经常看我文章的朋友应该知道,之前我写过一篇关于网格交易的文章:震惊!有人用Python写了个自动亏钱脚本,还能微信实时通知!。本文中的网格策略正是来自其中的“自动亏钱脚本”,有兴趣的朋友建议先去简单浏览一下那篇文章,里面会简单介绍一些这个模型。
如下图,策略早在2020年9月就已经在运行了,但运行之后都没有想起来去做调整,因为网格模型其实是需要动态调整参数的,所以这个实盘一直是放任不管的状态。
直到2020年11月底左右想起来,把代码做了一些更新,加入了更多策略运行的日志,也对策略运行时的数据做了保存。在2020年11月25日晚十点半左右,重新把新版程序运行了起来。不过中间由于服务器原因,数据没有存储下来,直到2020年12月9日才有数据,不过问题不大。
网格收益曲线
废话不多说,下面是网格模型在2020年11月25日到2021年2月25日期间,整三个月的投资表现(图比较大,请耐心等待加载):
其中,蓝色线条表示账户总资产,红色线条表示投资标的的价格。同时,画图时对它们做了归一化,两条线第一个点的纵坐标都是1,便于观察。
策略评价
指标简介
先简单介绍一下评价一个策略好坏的各种常用指标的涵义:
年化收益率
将回测的投资产品的总收益率换算成以年为单位的几何平均收益率。数值越高代表不考虑风险的情况下股票的表现越好。
Beta
代表某股票走势与大盘的相关程度,它代表股票价格被大盘所解释的权重。
Alpha
鉴于Beta只能解释市场收益,那么市场之外的超额收益我们便用指标Alpha来表示。投资产品能产生Alpha的原因很多,常用的方法是用一些基本面、技术面指标因子的组合去寻找Alpha。
夏普比率
描述投资产品在单位风险下的所能获得超额收益的程度。它将一只标的或组合的风险归一化,便于更好的比较组合之间的有效性。数值越高代表考虑风险的情况下股票或组合表现越好。
最大回撤
描述产品历史表现中从某高点开始最大的下跌比例,最大回撤通常越小越好。
策略总结
那么,下面就是本文策略对应的指标结果:
| 评价指标 | 网格模型 |
|---|---|
| 年化收益率 | 349.15% |
| 基准年化收益率 | 76.98% |
| Alpha | 2.0029 |
| Beta | 0.4443 |
| 夏普比率 | 2.1077 |
| 年化的波动率 | 91.66% |
| 最大回撤 | -31.69% |
从整个指标的结果来看,策略的年化收益率大概是基准年化收益率的4.5倍,但是回撤也达到30%多。从Alpha和夏普比率的角度来看,策略表现中规中矩,不算好也不算差。
另外,上图中①处,投资标的价格持续快速下跌,我们的策略虽然也在下跌,但是速度很慢;②处,投资标的价格走出了一个"M"形走势,但是我们策略的资产却没有什么变化。
分析一下原因,①这种情况发生时,策略是会慢慢买进筹码,而不是一次性吃满;②就是因为当时是春节期间没有想起来要调整策略参数,导致一大波行情没有吃到利润。
所以能得出结论:①策略本身具有抗跌的特性;②策略的参数需要及时调整。后面也会慢慢根据情况来优化策略。
后记
不管写什么,希望能跟更多人沟通,有问题或者需求随时欢迎交流。
我所有的项目源码都会放在下面的github仓库里面,有需要可以参考,有问题欢迎指正,谢谢!
https://github.com/TitusWongCN/
下面是我的公众号,有兴趣可以扫一下: