用R语言解读凯利公式

640?wx_fmt=gif


张丹,R语言中文社区专栏特邀作者,《R的极客理想》系列图书作者,民生银行大数据中心数据分析师,前况客创始人兼CTO。

个人博客 http://fens.me, Alexa全球排名70k。




前言

职业做投机交易的人,应该都听说过凯利公式,这是一个通过计算胜率和赔率,来选择最佳投注比例的公式,目的是长期获得最高的盈利。

只要找到长期看必胜的局,接下来就是让时间帮我们赚钱了。

目录

  1. 开始赌局

  2. 凯利公式

  3. 赌局的最优解

  4. 让时间帮我们赚钱

1. 开始赌局

设游戏赌局,你赢的概率是80%,输的概率是20%,赢时的净收益率是100%,输时的亏损率也是100%。如果赢,你每赌1元可以赢得1元;如果输,则每赌1元将会输掉1元。赌局可以进行无限次,每次下的赌注可由你自己任意定。如果你的初始资金是100元,那么怎么样下注,才能使得长期收益最大?

对于胜率80%,从感觉上应该是很有把握的事情了。那么我们先主观判断一次,用90%的仓位去赌一下,看看结果怎么呢?如果下注10次,按80%胜率,8次胜,2次负。我们来算一下最后的结果。

 
 

# 设置胜负,1胜,0负 > win<-c(1,1,1,0,1,1,0,1,1,1) # 分别按投注计算每回合的剩余资金 > a1<-(1+0.9)*100 > a2<-a1*(1+0.9) > a3<-a2*(1+0.9) > a4<-a3*0.1 > a5<-a4*(1+0.9) > a6<-a5*(1+0.9) > a7<-a6*0.1 > a8<-a7*(1+0.9) > a9<-a8*(1+0.9) > a10<-a9*(1+0.9) > dat<-c(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) > df<-data.frame(win,dat) # 打印剩余资金列表 > df   win      dat 1    1 190.0000 2    1 361.0000 3    1 685.9000 4    0  68.5900 5    1 130.3210 6    1 247.6099 7    0  24.7610 8    1  47.0459 9    1  89.3872 10   1 169.8356

10次交易后,赢了8次,只输了2次,我们从100元本金,上升到了169元,收益率为69%,还是不错的。最高的时候,资金为685元,收益率为685%,赚了6倍多。最低则是只剩下24元,真是赔的好惨啊!

接下来,画出资金曲线。这是一个过山车式的曲线,赚钱的时候非常猛,一旦赌输了,就产生了巨大的亏损。


 
 

# 画出资金曲线 > plot(df$dat,type='l')

640?wx_fmt=png

曲线很陡峭,波动很大,回撤也很大,完全就是在赌博。

怎么样才能让资金曲线好看一些呢?如果每次下注用少一点资金,是不是会更好呢?那么我继续试一下。分别计算每次下注资金为 60%,40%,20%,10%的4个维度的仓位的情况。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值