今天聊聊多个不相关马丁策略的组合。实际上多马丁的组合等价于N个赌徒的问题:假如现在有N个赌徒,他们的胜率分别是p1,p2......pn,每场赌局赌徒要么把手里的钱翻倍要么赔光,现在你手里有1万块,请问如何分配资金才能使得N局之后你的资产最大化?
之前第三篇已经给出了两个不相关马丁策略最优组合的情况,我们可以直接用两个策略的转换成1:1盈亏比后的胜率来计算策略资金的分配比例。
现在的问题是,如果N个马丁策略做组合,怎么算呢?
别慌,先看看第三篇我们是怎么做的。首先我们得出了双策略组合的期望函数:
E(w)=(1+m+n)^p1p2*(1+m-n)^p1(1-p2)*(1-m+n)^(1-p1)p2*(1-m-n)^(1-p1)(1-p2)
同样的,我们可以得出N个策略组合下的期望函数:这个函数我就不展示了,实在是比较难在这里写出来,也考虑到大家的观感,这里仅举两个例子,比如N个策略都获利的情况是:
(1+∑mi)^∏pi,N个策略都亏损的情况是[1+(^∏(1-pi),总共有2^N种情况,把每种情况的期望都求出来然后累乘就可以了。
另外实际上,我们的现金也并不是没有价值的,可以拿来吃利息,比如买国债,因此在组合时还需要考虑到现金利息(1+(1-m1-m2-...mn)*F),其中F为无风险利率,因此在上面的基础上还需要乘以(1+(1-m1-m2-...mn)*F)。
当然如果是手工做的话确实非常困难,所以需要用代码来跑。
下一步是求期望函数的极值。这一步如果还是用原来的偏导数的做法,那不太可能解得出来。所以想求解析解的方法我放弃,或许以后会有某位大神能解得出来,期待中。
要求数值解,相对来说比较简单,采用梯度下降法求即可。所谓梯度下降法,用个爬山的例子来说就是我们在上山的途中沿着最陡的路走,每次只挪动一小步,假如山路的走势是一直往上的直通定点,那么最终我们会到达山顶。这种方法是一种演化的算法,相对来说不会出现需要的算力指数增加的情况。
举个例子,假设我们资金分配比例从(m1=0,m2=0,...mN=0)这个点开始,然后我们分别让mi加一个极小的数Δmi算出来E(w)的变化值ΔE,然后用ΔE/Δmi=di,我们把di它近似看做E对mi的偏导数,于是可以得到一系列偏导数(d1,d2,d3.....dN)。然后我们移动一小步,比如增加1%的资金变动,那么策略 i 资金的变化量为:
Ci = 1%*d1/(Σ|di|),也就是说移动一小步后,策略 i 的资金变为mi(t+1)=mi(t)+1%*d1/(Σ|di|),其中t为迭代次数,比如刚开始迭代的话t=0,于是mi(1)=mi(0)+1%*d1/(Σ|di|)=1%*d1/(Σ|di|)。
用通俗点的话说就是,如果某个策略的资金增加了会对整个组合有积极的贡献,那么它分配的资金虽迭代次数的增加也会慢慢增加,直到该策略资金增加对整体没有积极贡献为止。
通过以上方法我们可以求得多策略情况下单局期望E(w)的极值,这个极值就是我们需要求的分配比例。举个例子,比如有7个策略,胜率分别为0.7,0.7,0.65,0.6,0.6,0.6,0.6,一个周期的无风险利率为5%,那么我们可以用最速下降法得出各策略的资金配比分别为26.8%,26.8%,15.8%,6.5%,6.5%,6.5%,6.5%,其余的4.6%作为现金保留,同时我们可以得出E(w)=1.24,也就是说一个周期下来我们平均能赚24%。肯定有人会说这么点收益,还不够马丁的零头,我只能说祝你好运,我们赚的不是运气好的钱,而是概率的钱。
当然以上的计算都是基于各个策略是没有相关性的,实际上,金融市场的所有品种之间或多或少都有一定的相关性,而这会使得我们低估了市场的风险,导致组合没有效果。比如说两个策略基本一样,那么拿它们两个做组合和拿其中一个策略来做,本质上没太大区别,而上面的计算没有考虑相关性,所以算出来的资金量分配肯定是要大于单策略资金量分配的,于是我们真按上面算出的结果组合,风险其实会很大。
下一篇考虑一下有相关性的策略之间的组合。
本系列文章主要想探讨如何通过策略组合等策略管理方式来发挥优质马丁策略的威力,同时规避马丁爆仓风险,有自己想法的朋友请留言。
|
|