张丹,R语言中文社区专栏特邀作者,《R的极客理想》系列图书作者,民生银行大数据中心数据分析师,前况客创始人兼CTO。
个人博客 http://fens.me, Alexa全球排名70k。
前言
职业做投机交易的人,应该都听说过凯利公式,这是一个通过计算胜率和赔率,来选择最佳投注比例的公式,目的是长期获得最高的盈利。
只要找到长期看必胜的局,接下来就是让时间帮我们赚钱了。
目录
开始赌局
凯利公式
赌局的最优解
让时间帮我们赚钱
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')
曲线很陡峭,波动很大,回撤也很大,完全就是在赌博。
怎么样才能让资金曲线好看一些呢?如果每次下注用少一点资金,是不是会更好呢?那么我继续试一下。分别计算每次下注资金为 60%,40%,20%,10%的4个维度的仓位的情况。