凯利公式的模拟验证

凯利公式的模拟验证

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

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

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

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

答案:凯利公式。

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

   公式的两种形式:

   公式:(期望报酬率)/(赔率)
   公式:(盈利概率×盈利金额-亏损概率×亏损额)/(盈利额 / 亏损额)

    凯利公式最初为 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-01 10:44:04

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

Mr.D_速学“凯利公式”

凯利公式 投资比例=(盈利部分是本金的几倍*赢的概率-输的概率)/盈利部分是本金的几倍 (先不要看这个公式)先来玩个游戏 赢和输的概率各50% 赢的话1变3 输的话1变0 (输光) 试想这样子的游戏,玩得输吗?期望值为正的游戏会输钱吗 现在有100块钱的本金,试问如何可以以最快的速度 增长到10万块钱. 同学1 用的方法:定额每次从所有钱里拿出10块钱投资,基本上每10次投资可以让100变成150块钱(5次盈利5次失败) 同学2 用的方法:他觉得同学1这样子按定额来赚钱,每10次才赚50.要赚到

凯利公式

交易所做的事情,就是一个寻找信号的过程,找到有效信号,意味着信号背后的事件会使股价的概率分布偏离,赢的期望变大.同时我们设置止盈止损线,这样赔率也就固定了下来.由此我们就把投资股票的过程转换成一个连续赌博的过程.信号发出就是我们入场点.止盈止损发生的时候,就是我们的出场点.赔率和损失率就是止盈止损与入场价格之差.一次入场和出场就相当于赌博模型中的单次赌博,单次赌博的仓位由凯利公式确定. # 凯利公式(TheKellyCriterion)# Kelly % = W/c - (1-W)/b# Whe

素问 - 凯利公式

摘自<小韭的学习圈> Q 最近在研究比特币合约,有一个不成熟的想法,想请小韭看看. 开100倍合约,不止损,在1.5%处止盈.那么,当猜错方向1%时损失100%,当猜对方向1.5%时盈利150%.最终的收益取决于猜对方向1.5%的概率能不能超过猜错方向1%的概率的2/3.做历史回测,应该能找到某个杠杆倍数,使得交易的期望为正.反复执行,可以获得正收益. 很粗略的想法,想请小韭看看有没有啥问题. A 这个策略是押注比特币在未来先涨1.5%,而不是是先跌1%,且要求先涨1.5%的概率达到40%才能

条件语句模拟验证登录

package course; import java.util.Scanner; public class CheckLogin { public static void main(String[] args) {        Scanner scan=new Scanner(System.in);        System.out.println("请输入登录用户名:");        String username=scan.nextLine();        Syste

[模拟]验证数独

题目链接 思考 把每行的数累加 结果不为45 输出Wrong 把每列的数累加 结果不为45 输出Wrong 把3X3区块的数累加 结果不为45输出 Wrong 再判断一遍 3X3的格子中1-9是否都出现 没有则输出Wrong 细节比较多. 而且格式输出真的毒瘤,硬性输出换行符,不输出就PE.还有记得每次初始化数组 WA了半小时在这种水题上面.惭愧惭愧! #include <cstdio> #include <cstring> int map[20][20],fx[233],fy[2

基于Python的函数回归算法验证

看机器学习看到了回归函数,看了一半看不下去了,看到能用方差进行函数回归,又手痒痒了,自己推公式写代码验证: 常见的最小二乘法是一阶函数回归回归方法就是寻找方差的最小值y = kx + bxi, yiy-yi = kxi+b-yi方差为∑(kxi + b - yi )^2f = k^2∑xi^2 + b^2 + ∑yi^2 +2kb∑xi - 2k∑xi*yi - 2yib求极值需要对其求微分,因为是二元函数,因此使用全微分公式,其极值点应该在两个元的偏微分都为0处δf/δk = 2k∑(xi^2

SpringMVC学习系列(9) 之 实现注解式权限验证

对大部分系统来说都需要权限管理来决定不同用户可以看到哪些内容,那么如何在Spring MVC中实现权限验证呢?当然我们可以继续使用servlet中的过滤器Filter来实现.但借助于Spring MVC中的action拦截器我们可以实现注解式的权限验证. 一.首先介绍一下action拦截器: HandlerInterceptor是Spring MVC为我们提供的拦截器接口,来让我们实现自己的处理逻辑,HandlerInterceptor 的内容如下: public interface Handl

哪一种验证方法最好?形式验证、硬件加速还是动态仿真?

关于最佳的验证方法,最近总能在各种文章中看到.这里希望以一些新的视角来看待这些问题.所以根据一些EDA公司代表对相关问题的回答,总结出本文. 受邀回答问题的代表有:Steve Bailey,Mentor Graphics公司新兴技术总监:Dave Kelf,OneSpin解决方案营销副总裁:Frank Schirrmeister ,Cadence高级产品管理总监:Seena Shankar,Silvaco的技术营销经理:Vigyan Singhal,Oski技术总裁兼首席执行官 :Lauro R

springmvc 实现注解式权限验证

对大部分系统来说都需要权限管理来决定不同用户可以看到哪些内容,那么如何在Spring MVC中实现权限验证呢?当然我们可以继续使用servlet中的过滤器Filter来实现.但借助于Spring MVC中的action拦截器我们可以实现注解式的权限验证. 一.首先介绍一下action拦截器: HandlerInterceptor是Spring MVC为我们提供的拦截器接口,来让我们实现自己的处理逻辑,HandlerInterceptor 的内容如下: public interface Handl