量化策略开发,高质量社群,交易思路分享等相关内容
大家好,今天我们来聊一聊松鼠2期V2版本的阶段内容——凯利公式在RFI择时框架上的运用。
松鼠品种小组2期第1版策略、讲解视频已完结,该期小组我们分享了全新“普适性、自适应”择时框架,该框架区别于超级趋势线,超级趋势线主要着力点在于管道变为支撑压力线。而RFI框架着力点在于RSI数值对于超买超卖规定阈值的占比变化。
今天我们撇开策略本身,我们专注来谈一谈凯利公式到底是如何复现代码,以及如何运用在策略当中。
凯利公式复现
在《资金管理方法》一书中我们可以看到该算法的构成:
Kally = 胜率 - (1-胜率) / 赔率
其中胜率就是回测绩效中的胜率,胜率 = 盈利交易次数 / 总交易次数。
赔率实际上就是平均盈亏比,或者盈亏比。赔率 = 总利润 / 总亏损(平均利润 / 平均亏损)
翻译完公式,下面我们就一步一步的写公式然后计算就可以了,届时就可以计算出Kally数值,然后根据Kally就可以实现书本上最优秀的资金管理模式了。
第一步:计算胜率
在TBQ中自带了相关的内置函数,我们直接调用即可。当然在这里有一个潜在的坑,那就是这里的次数函数计算,是包括了手数倍数的,虽然与实际的次数相比有一定误差,但是最后计算的胜率与实际按照次数计算的胜率相差很小,所以在这里我并没有深究。(总交易次数同理)。
第二步:计算赔率
在这里我采用了平均盈亏比用来表示赔率,当然总盈亏比也可以,相差也不是很大。同样在TBQ中有对应的函数调用。如果使用python那么其实也不难,只需将每一次的开平仓买卖价差(±)*手数再累加,即可求得总利润(亏损),同理交易次数也是累加即可。这里不再赘述。
因为平均亏损是个负数,所以在计算赔率的前面我加入了负号“-”。
第三步:计算Kally
最后一步我们只需要发挥小学数学技能——套公式,这里不再赘述。
到这里,我们就已经完全计算出Kally公式数值了。那么我们具体如何去用呢?
在该书案例中,的确可以找到一个风险比例与最大收益率边际效用最大的一个值,但实际情况并不如此。
凯利公式这个代码计算逻辑看似很科学合理,但是有不少问题,问题如下:
1、凯利公式是根据胜率和赔率(平均盈亏比)计算而来,当胜率或赔率过小的时候,会出现凯利公式为负数的情况,此时就无法使用该资金管理模式。
2、在初始阶段,需要开平仓交易数据计算胜率和赔率(平均盈亏比),所以在开始交易的时候,凯利公式无法使用。
最后,需要注意的是,虽然凯利公式在理论上是最优的投资策略,但在实际应用中,它可能会导致投资比例过大,风险过高。
因此,很多投资者会选择使用凯利公式的一部分,比如凯利公式的50%或25%,以减少风险。此外,凯利公式假设你的赔率和胜率是固定的,但在实际情况中,这两个参数往往会变化,这也是使用凯利公式需要注意的地方。
那么针对上述问题,我们将在品种小组2期直播中继续带大家落地解决这些问题,并为大家直面剖析Kally是否真的像大家想像的那样“完美”。