凯利公式的模拟验证

凯利公式的模拟验证

场景:一个赌局,你跟庄家。你出 1 元,庄家出 0.96元。赌金数目可随之翻倍。

     根据每次抛色子的结果的单双决定胜负。

     胜者得到双方所下的赌金,计 1.96 元。

 

问题:如何下注才能做到,风险最小,盈利最大呢?

 

答案:凯利公式。

   凯利公式的作用: 根据赔率与胜率,得出你每次的资金下注比例

 

   公式的形式: 1 + 赔率 - 1/胜率

 

    凯利公式最初为 AT&T 贝尔实验室物理学家约翰·拉里·凯利根据同僚克劳德·艾尔伍德·香农於长途电话线杂讯上的研究所建立。凯利说明香农的信息论要如何应用於一名拥有内线消息 的赌徒在赌马时的问题。赌徒希望决定最佳的赌金额,而他的内线消息不需完美(无杂讯),即可让他拥有有用的优势。凯利的公式随後被香农的另一名同僚 爱德华·索普应用於二十一点和股票市场中。

 

 

下面利用凯利公式对赌局进行模拟:

 

0. 列出不同胜率下的凯利公式结果

赔率 0.96 0.96 0.96 0.96
胜率 0.5 0.6 0.7 0.75
资金比 -0.02 0.183 0.388 0.49

 

 

 

 

 

1. 胜率 0.5

由上表可知,没得玩!!

凯利公式计算的结果本质是盈利率的数学期望,不难得出这样一个结论:一切盈利率的数学期望为负的赌局,绝对不能参与!!

我们看到:就算你的胜率占到一半(0.5),但是因为赔率只有0.96,不是1(亦即1:1,意为1赔1),所以你的期望才是负数!!!

赔率这么低,那这个赌局还有没有的玩了呢?

只一个办法,提高胜率!

 

2. 胜率 0.6

胜率0.6,即为10中6

考虑三种可能的情况: 1)四连亏再六连中  2)亏中相间  3)六连中再四连亏

 

3. 胜率 0.7

胜率0.7,即为10中7

考虑三种可能的情况: 1)三连亏再七连中  2)亏中相间  3)七连中再三连亏

 

4. 胜率 0.75

胜率0.75,即为12中9

考虑三种可能的情况: 1)三连亏再九连中  2)亏中相间  3)九连中再三连亏

 

 

5.胜率0.75,不利用凯利公式

不利用凯利公式,则说明资金管理混乱。

比如你有1000,

第一次投一半:500,不中。

第二次还投500,这时候你遇到了很坏的情况,还不中。

你爆仓了!你出局了!

当然,你会说,那我补仓。那就属于本文议题之外的问题了。

但是可以肯定一点:不管你补多少次仓,结果都是一样的。

也许你还会说,我的运气不会那么背,不会前两局都输。这点我严重同意!

但是长期来看,总会有坏运气找到你:连续四五期不中,拿走你以前的好运气所得,甚至翻倍拿走。

唯有凯利公式可以避免这种情况!!!

 

6.结论

本文要点:凯利公式得出的资金比例是每次你现有资金的比例,不是初始资金比例

 

不难发现,在数学期望为正的情况下,运用凯利公式进行资金管理,可以稳定盈利。

在相同的胜率下,如果不利用凯利公式进行资金管理,不能保证盈利。

我想,其中一个主要的原因是:资金不足,爆仓出局!

 

时间: 2024-08-27 00:12:50

凯利公式的模拟验证的相关文章

蒙特卡罗方法验证凯利公式

说明 本文受知乎陈小米启发而写.有兴趣的朋友可以移步这里. 本文的代码完全是本人所撸. 问题描述 假想一个游戏.赢的概率是60%,输的概率40%.入场费随意交.如果赢了获得2倍的入场费金额(1赔1),输则输掉入场费.小米有1000元做本金,请问小米每次给多少入场费,理论上100次游戏后几何期望收益能最大? [本人的疑问]为何这里考虑几何期望,而不是数学期望?[已解决,见代码注释!] 凯利公式 \[f=p-\frac{q}{b}\] 不多说,上代码. 完整代码 import pandas as p

ASP.NET MVC怎么 实现模拟验证登录?

问题描述 我现在的网站如果直接用IISEXPRESS在VS2012下打开的话,太慢了,所以我就想能不能弄一个模拟验证,省去一些步骤,请问该怎么写?谢谢. 解决方案 本帖最后由 yangliweng2 于 2015-07-30 10:23:10 编辑

EMC创建出《星际旅行》全息甲板,并利用其模拟数据中心

是的,我们猜--应该有用--吧 在着手构建数据中心之前,首先进行模拟验证 EMC公司现在已经能够利用虚拟服务器模拟数据中心内部的交互关系. 数据中心可以说是世界上最为复杂的建筑之一.然而,这并不是因为其中包含大量物理组件--事实上,其它复杂基础设施同样令人头痛,例如石化炼油厂房. 数据中心之所以如此复杂,是因为我们需要考虑物理设备内部与不同设备之间的交互广度与深度.这意味着我们需要立足于硬件及软件层进行设计,而后将微硬件细化到分子水平,这就让数据中心获得了几乎无可比拟的复杂性. 有鉴于此,建立与

J2ME开发手机游戏物理模型之抛物线

物体做抛物线运动是游戏中基本运动物理模型之一! 在PC游戏中可以由重力公式轻易模拟,但在手机游戏中 ,由于多数手机不支持浮点运算因此不能用sin ,cos,来分解初速度.所以只能用近似模拟的方法!我所采用的是:先放大后缩小的模拟方式,并且为了更精确加入了一定的偏移量. 先用哈希表列出0-90度的正弦值,并且把值放大100000倍,例如: Hashtable anglevalue;public void loadAnglevalue(){anglevalue = new Hashtable();a

NHibernate之旅(17):探索NHibernate中使用存储过程(下)

本节内容 引入 实例分析 拾遗 结语 引入 上两篇,介绍使用MyGeneration提供的模板创建存储过程和删除对象.创建对象.更新对象整个详细过程,这篇介绍如何利用<sql-query>做更多的事,在程序开发中,我们不仅仅只利用存储过程增删查改对象,我们还可以想执行任意的存储过程,这不局限于某个对象,某个CURD操作,怎么做呢?注意:本篇并非官方权威的资料,所以敬请参考.如果你还没有学习NHibernate,请快速链接到NHibernate之旅系列文章导航. 实例分析 下面我用几个例子来分析

SQL Server2005高可用性还有哪些不足

在高可用方面SQL Server提供了一系列高端支持能力,并对复制和快照技术作了增强.但由于SQL Server几乎完全基于Windows平台,因此在HA方面还存在诸多不足: 1.Failover Cluster是大型企业实施SQL Server HA的关键技术,该技术基于微软的MSCS(Microsoft Cluster Service),虽然在05版本中提供更方便的安装和多至8节点(企业版)的支持,但在SCSI和光线通道产品的支持上相对比较"挑剔",尤其对于一些高端的共享裸设备虽然

JavaScript中的Promise使用详解

  这篇文章主要介绍了JavaScript中的Promise使用详解,promise对象是JS进阶学习中的重要知识点,需要的朋友可以参考下 许多的语言,为了将异步模式处理得更像平常的顺序,都包含一种有趣的方案库,它们被称之为promises,deferreds,或者futures.JavaScript的promises ,可以促进关注点分离,以代替紧密耦合的接口. 本文讲的是基于Promises/A 标准的JavaScript promises.[http://wiki.commonjs.org

Excel如何利用函数制作带负值的数据条

  本节实例中通过公式函数模拟一个数据条,并且比条件格式更加强大,因为它可以将负值变成反向伸展. 具体操作步骤: 1.启动Excel2013,输入一些数据,包括员工姓名,以及各个人员的销售情况,在B2单元格输入:=IF(D2<0,REPT("|",ABS(D2)),""). 2.按下回车,并没有显示什么东西,其实不然,我们用单元格填充的方法向下填充,最下面几排会出现|||||类似的竖线. 3.继续在C2单元格输入:=IF(D2>=0,REPT("

全网唯一完整译文 | Waymo无人车报告:通往自动驾驶之路

前不久,Waymo(前Google自动驾驶项目)向美国交通部提交了一份43页的安全报告,这份报告详细说明了Waymo如何装备和训练自动驾驶车辆,从而避免驾驶中的一般和意外情况发生.这份报告是Waymo以第一视角,对自己自动驾驶技术的最完整解读. 据雷锋网了解,Waymo可能最快今年11月上线自动驾驶打车服务.在自动驾驶走向商业化之际,Waymo的这份报告不仅是对自己八年开发的总结,也彰显了它对自己及新技术的信心.或许我们将迎来一个自动驾驶的新世界,这份报告则是一个起点. 以下是Waymo报告完整