请 [注册] 或 [登录]  | 返回主站

量化交易吧 /  量化平台 帖子:3364716 新帖:3

基于凸组合优化的均线交叉策略

执着技术派发表于:5 月 10 日 04:52回复(1)

移动平均线是技术分析中的常用工具,作为一种简单有效的数学模型而被广泛使用,并衍生出了各类基于MA的交易策略,均线交叉策略就是其中一种。但传统的均线交叉策略的风险收益情况并不如人意,因此,本文对基于凸组合优化思想对传统的均线交叉策略进行了改进,并结合强势股选股策略尽可能实现了收益的最大化。经过平台回测,经过凸组合优化后的策略收益提高了12%,最大回撤减少了10%左右。

一、策略背景
策略背景将首先介绍传统均线交叉策略的基本思想,以及凸组合的概念,最后阐述如何将凸组合的概念应用于优化传统均线交叉策略中。

1.均线交叉策略
首先先简单介绍大家耳熟能详的均线交叉策略,其在技术分析领域可以说是一种应用非常广泛的策略了,其基本思想相信社区里很多人都认识,在此不再赘述,简单过一遍基本思想:快速均线(K值较小)上穿慢速均线(K值较大)时,形成“金叉”信号,策略做多(开仓);反之,下穿时则形成“死叉”,策略做空(平仓)。用数学语言描述就是:
传统均线交叉.png
式中,Mt(k)代表某股票在k个时间单位内的移动平均,信号S为1时则发出做多信号(开仓),为0时发出做空信号(平仓)。

2.凸组合概念
在正式介绍改进均线交叉策略之前再先介绍下凸组合的相关概念。凸组合的数学定义如下:
假设实向量空间中有一组有限数据点x1,x2,……,xn,如果这些点满足条件:
凸组合.png
则称x为这些数据点的一个凸组合。看到这些数学公式相信内心是崩溃的,不过观察下定义,是不是跟以前高中学过的“期望”计算公式很相似呢?没错,凸组合可以视为数据组的一个“期望”。画个图来表达:
凸组合示意.png
根据凸组合定义,显然P是x1和x2的一个凸组合,因为必定有系数组合使得其成立;而Q则肯定不是x1和x2的凸组合。
举一个股票市场的简单例子来说明:假设现在你用传统均线交叉策略来买卖股票,你金叉的时候以x1价格买入,该时刻发出了死叉信号,股票价格为x2,你对股票的期望价格为P(可以理解为投资者对股票的预期价位或者止损价位)。理论上来讲,严格按照“死叉卖出”的策略我们应该在该时刻卖出股票;但作为一个投机(zi)者,你多少会抱着侥幸心理:万一这个死叉开完后股票继续涨,那我继续持有不就赚得更多了?于是“理性”的你选择了继续持有,股票价格也如你所愿到达了Q价格。想起来倒是美美哒,但是如果要按照策略的纪律性来操作,应该怎么量化这种规则,寻找合适的P呢?于是这个凸组合优化的均线交叉策略便有了用武之地。

3.基于凸组合优化的均线交叉策略
简单来讲,基于凸组合优化的均线交叉策略与传统均线交叉策略的不同点在于平仓条件的变化:若当前价格不小于开仓价与当前价的凸组合,则继续持有多单不做平仓处理;若当前价格不大于开仓价与当前价的凸组合,则继续持有空单,无需平仓。关于做空的情况本策略暂时按下不表,仅针对A股市场的做多展开。
使用数学公式来描述,首先不妨将该策略中开仓价格Pti和当前价格Pti τ的凸组合定义为证券价格的“期望”:
期望.png
式中,ti为开仓时间,任一时间点继续持有多单的概率为:
多单概率.png
平仓多单的概率为:
平仓概率.png
根据策略定义,平仓与否的条件如下:
平仓信号.png
平仓信号为1时,继续持有多单,否则平仓。需要注意的是,持仓过程中开仓价格Pti的值可能发生变化,否则策略将在亏损的时候平仓。这里设定一个简单的更新规则:
更新规则.png
即,在均线死叉信号发出时,如果满足Pti≤Pti τ,则继续持仓,在随后出现的金叉时将开仓价更新为最新的金叉价格:Pti = Pti2。式中,ti代表传统策略中发出金叉信号的时刻。
令tL代表最新的金叉信号发出的时刻,则基于凸组合优化的策略可表示为:
改进策略.png
根据该策略,信号C为1时发出做多信号(开仓),而为0时发出做空信号(平仓)。
可能这些公式还是比较枯燥,不过没关系,这里有大白话的解释:
i.死叉信号发出时,比较当前股价和持仓成本的大小,如果股价大于持仓成本则继续持有;
ii.下一金叉信号发出时,如果在其之前发出的死叉信号时清仓过,则重新开仓;如果在其之前发出死叉信号时没有清仓,则将持仓成本更新为当前金叉价格。

iii.一图以蔽之:
图示说明.png

二、策略步骤
1.根据涨幅、流通市值、成交量等信息,按月选取出该月的强势证券进行操作(详细策略介绍可参考龙头股选股策略);
2.开仓信号由传统策略的金叉信号决定,当金叉信号发出时,发出开仓信号;
3.开仓后,如果MACD发出死叉信号,将根据策略进行判断,如果果满足Pti≤Pti τ,则继续持仓,并将持仓成本更新为此时的价格Pti2;
4.关于止损:本文引入了个股涨跌幅止损和概率止损两种方式进行止损,涨跌幅止损方式是指在过去N天内(本策略设置为10天),个股价格下跌幅度超过阈值即清仓该股;个股概率止损是指,个股在过去N天内下跌幅度超过阈值的天数占N天超过一定比例时,认为该个股在未来有较大概率下跌,进行清仓操作。

三、回测效果
本策略对比了不同的清仓信号、止损信号组合的回测效果。对于选股方面并不做太多对比,有兴趣的小伙伴可以自行尝试更换选股操作。
关于可选项编码说明如下:
选股编码:0代表仅利用涨幅筛选,1代表利用涨幅和成交量,2代表利用涨幅和流通市值,3代表综合涨跌幅、成交量和流通市值筛选个股;
清仓编码:0代表改进策略清仓,1代表传统策略清仓;
止损编码:0代表跌幅止损、1代表概率止损,2代表不止损。
下图中,301代表选股方案为综合涨跌幅、成交量和流通市值筛选个股,清仓方案使用改进策略清仓,止损方案采用概率止损
结果图1.png
结果图2.png
结果图3.png

四、结论
1.对比组合300和组合301的策略收益,可以看到使用跌幅止损的策略具有最高的策略收益,且最大回撤控制得也比较好;使用概率止损的策略虽然收益较少,但波动率较低,且最大回撤减少了近一半;
2.对比组合300和组合310的策略收益,可以看到使用改进均线交叉策略后,不仅在收益率方面有所提高,在最大回撤方面也降低了10%左右,但缺点是算法的波动率比传统均线交叉策略较高;
3.对比组合301和组合302的策略收益,可以看到使用止损方案的情况要优于不止损的情况,不仅减少了回撤也提高了策略收益;但从回测效果图中可以明显看到,不止损的情况下最大收益可接近400%,说明止损策略尚有提高的空间;
4.综上,基于凸组合优化的改进均线交叉策略在减少回撤,提高收益率方面有一定程度的作用;由于本策略中采用重仓持有强势股的持股规则,在不止损的情况下可能导致错误判断市场信号导致收益率暴跌的情况,如何优化止损策略将是以后的一个研究方向。

全部回复

0/140

量化课程

    移动端课程