【量化课堂】双均线策略
https://www.joinquant.com/view/community/detail/7f93868fc490a937122366a0ec9aa388
导语: 双均线策略,通过建立m天移动平均线,n天移动平均线,则两条均线必有交点。若m>n,n天平均线“上穿越”m天均线则为买入点,反之为卖出点。该策略基于不同天数均线的交叉点,抓住股票的强势和弱势时刻,进行交易。
规范源码已更新!请大家克隆研究。
本文由JoinQuant量化课堂推出 。难度标签为进阶上,理解深度标签:level-0
作者: 导数君
编辑: 宏观经济算命师
均线嘛,都是均线
对于每一个交易日,都可以计算出前N天的移动平均值,然后把这些移动平均值连起来,成为一条线,就叫做N日移动平均线。
比如前5个交易日的收盘价分别为10,9,9,10,11元,那么,5日的移动平均股价为9.8元。同理,如果下一个交易日的收盘价为12,那么在下一次计算移动平均值的时候,需要计算9,9,10,11,12元的平均值,也就是10.2元。
将这平均值连起来,就是均线。
如下图所示,收盘价是蓝线,橙色的线表示5日的移动平均线。
可以看到股票价格的波动比5天均线的波动要大,这是因为5天均线取的是前5个交易日的均值,相当于做了一个平滑。
双均线
顾名思义就是两条天数不同的移动平均线,比如说,一条是5天的移动平均线,另一条是10天的移动平均线。如图,蓝色的是5天均线,黄色的是10天均线。
金叉和死叉
由时间短的均线(如上图蓝色的线)在下方向上穿越时间长一点的均线(如上图黄色的线),为“金叉”,反之为“死叉”。
好了,现在可以构建一个简单的策略:我们认为,双均线金叉的时候,表明股票很强势,反之很弱势,我们就在强势的时候买一个好了,弱势的时候卖掉好了。
说了这么多,下面我们开始实战!
首先,我们可以看一下API中的策略示例里面的双均线策略(详见https://www.joinquant.com/api#双均线策略 )直接复制粘贴就能运行,是不是很简单呢?
老师,可以了嘛?
当然不行,有时候我们也许会根据自己的需要对一些现有的策略进行改造,比如说,我想对均线进行加权呢?我想改造一个指数均线呢?
那我们得自己实现一下均线函数。方法不难,获得前N天的收盘价,然后计算一个算术平均数就可以了,各位读者可以先自己进行尝试,也可以参考回测代码块5(里面有代码和注释)
接下来,如果你想挑战更高难度,可以试一下计算指数移动平均的函数。
指数移动平均和算术平均或者加权平均的主要区别在于指数移动平均需要进行一个迭代,因此这可能是个有点挑战的地方:
其中pi表示前一天的收盘价,且
写出来没?如果没写出来的话可以参考回测代码块3和4(里面有代码和注释)
怎么样?是不是有点挑战性?如果写出这样的子函数,那么在主程序里面只要改一下函数输入参数,就可以轻松的在不同的参数之间来回切换,比较收益。
多股票
除了改为指数移动平均线以外,小编还加入多股票实现方法。
在交易日前,同时对多个股票进行判断,哪只金叉了就买入,死叉了就卖出,按日进行判断和交易。最大可以同时持有N只股票,用于实现这个策略的主函数可以参考回测代码块1和2。
好啦,看看小编选了5个股票的回测结果吧。从2005开始回测至今,你会发现在大部分时间里面,策略的收益比基准收益高,是不是很棒?各位读者可以自己尝试修改参数,看看参数应该如何选取。在这里,小编提供一个同时持有股票书N的选择的小tips,如果风险承受能力强的话可以少选一点,如果想分散风险,可以多选一些股票,但是,分到每个股票的资金最好不要少于两万,因为手续费是有最低限制的。
小结
我们这里是量化课堂的第三部分,主要给大家提供几个大范围的量化思路。本篇为第一讲,举了一个技术指标的例子。比较简单。有关技术指标的文章,百度上一搜一大把,我们平台里也有很多相关的帖子,python公开库ta-lib里也收录了很多指标,大家想进一步研究可以实现一下。也可以结合其他选股策略,或者根据需要制订资金等分的份数或者控制仓位等方法提高策略的收益。
好了,今天对双均线多股票选股策略的介绍就到这里了。
本文由JoinQuant量化课堂推出,版权归JoinQuant所有,商业转载请联系我们获得授权,非商业转载请注明出处。
文章更迭记录:
v2.0,2016-07-16,更新为规范源码,添加“函数说明书”
v1.1,2016-07-04,添加“导语”
v1.0,2016-05-21,文章上线
posted on 2022-07-21 16:37 Mannigfaltigkeit 阅读(1023) 评论(0) 编辑 收藏 举报
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库