1955年,美国盛行答题积累奖金的电视节目,答题者通过连续答对题目来累计奖金池。而在电视外,庄家针对这个节目开设了答题者能否答对题目的赌盘,吸引了许多赌徒参与下注。

但是,节目在东海岸直播,西海岸则有直播延时,有赌徒便抓住了这个机会,利用延时提前通过电话得到了答题者答题情况,赶在西海岸直播前参与下注,从中套利。

受此启发,贝尔实验室的科学家约翰·拉里·凯利于1956年在《贝尔系统技术期刊》中提出了凯利公式:

"如果通信渠道的输入符号代表偶然事件的结果,在该偶然事件中,可以按照与其概率一致的赔率进行投注,那么一个赌徒就可以利用输入符号给他的信息,使他的钱以指数形式增长。"

论文中他以一个赛马模型提出了凯利公式的雏形:

其中:

f* = 应该放入投注的资本比值
p = 获胜的概率
q = 失败的概率
b = 赔率

举个例子,如果一个赌博你有60%的获胜率(p=0.6, q=0.4),并且赔率是1赔2(b=2),则赌客每次下注的资金是 40% (计算方式:(b*p-q)/b)。

当然,当初提出这个公式的凯利其实是为了通信学研究的,并不是很贴近实际投资场景。不过,它有一个变形:

其中:

f* = 应该放入投注的资本比值
p = 获胜的概率
q = 失败的概率
rW = 净利润率
rL = 净损失率

这个公式很关键,因为它使得计算投资利润最大化的本金数额成为可能。比如说,使用我们之前的MACD量化投资策略:

Python 量化投资实战教程(2) —MACD策略

有1万元购买股票,10%的止盈点,10%的止损点,假设针对某只股票每次盈利的概率是7/8,此时rW=0.1, rL=0.1,那么每次交易我们应该投入 f=((7/8)*0.1 - (1/8)*0.1) / 0.1*0.1=7.5%。

也就是说,按照这个策略买股票,每次你只能投入本金的7.5%才能使利润获得最大化。

这个公式用Python计算非常简单:

def kelly(p, q, rW, rL):"""计算凯利公式Args:p (float): 获胜概率q (float): 失败概率rW (float): 净利润率rL (float): 净亏损率Returns:float: 最大化利润的投资本金占比(%)"""return (p*rW - q*rL)/rW * rL

凯利公式看起来真的很不错,不过,请大家注意了,量化投资中的获胜概率,比如我们上述计算中的盈利概率: 7/8,是基于某只股票的历史数据推测出来的,历史并不代表未来,因为未来是不可知的,我们只能说这只股票,在过去,表现的不错。

所以,模型永远只是一个近似的替代,并不能说明一切,凯利公式也是一样,如果凯利公式告诉你,要放大仓位,你可要三思,万一发生黑天鹅事件,分分钟教你做人,如果你还上了杠杆,那就要上人生最重要的一堂课了。

我们经常会认为凯利公式所针对投注比例是全资产,事实上,我更喜欢将凯利公式所针对的投注比例当做是你可承受损失的资产。

比如你有100万,你能承受10万的损失,那么这10万就能拿来根据凯利公式进行投资,因为这是最保险,能让你心情不那么痛苦的做法。

不要贪,很重要。

我们的文章到此就结束啦,如果你喜欢今天的Python 实战教程,请持续关注Python实用宝典。

有任何问题,可以在公众号后台回复:加群,回答相应验证信息,进入互助群询问。

原创不易,希望你能在下面点个赞和在看支持我继续创作,谢谢!

点击下方阅读原文可获得更好的阅读体验

Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

Python 凯利公式 — 最优投资本金计算相关推荐

  1. python 凯利公式_蒙特卡罗方法验证凯利公式

    说明 本文受知乎陈小米启发而写.有兴趣的朋友可以移步这里. 本文的代码完全是本人所撸. 问题描述 假想一个游戏.赢的概率是60%,输的概率40%.入场费随意交.如果赢了获得2倍的入场费金额(1赔1), ...

  2. python 凯利公式_凯利公式的启示

    谈到具体的投资和下注,凯利公式是绕不过去的,但妄图通过这个神奇公式来改变命运也是痴人说梦.那些利用理想条件总结出的定理和公式,如在实际投资中生搬硬套肯定死路一条,必须明确,它们唯一的贡献就是可以给我们 ...

  3. python 凯利公式_凯利公式的模拟验证

    凯利公式的模拟验证 场景:一个赌局,你跟庄家.你出 1 元,庄家出 0.96元.赌金数目可随之翻倍. 根据每次抛色子的结果的单双决定胜负. 胜者得到双方所下的赌金,计 1.96 元. 问题:如何下注才 ...

  4. python 凯利公式_Python量化笔记-股票收益率的正态分布检验和凯利公式应用

    本为继承上一篇: 完成以下扩展练习: 4.2 扩展练习2:对股票的收益率进行正态分布检验 4.3 扩展练习3:如果股票的收益率是正态分布的,使用凯利公式进行每日交易 4.2 扩展练习2:对股票的收益率 ...

  5. python 凯利公式_[转载]凯利公式的理解最重要补充(Z)

    建立在古典概率基础上的机械化交易系统的M(最大连续亏损次数)理论值为无穷大,因此N(安全头寸)等于零.举例:一套65%的趋势跟踪系统,碰到盘局会有亏损.理论上的盘局可无限长,因此安全头寸为零.长期运作 ...

  6. python 凯利公式_如何在赌局上获得最大收益?靠凯利公式!

    总的收益率为: 每次的平均收益为: 令 则上面的问题就转化为求函数H(f)的最大值,用数学中常用的求极值的方式,将其转换为求函数 的最大值. 将该函数对f求导可得: 令导函数为0,求函数的驻点,这就是 ...

  7. 从凯利公式开始谈资金管理

    凯利公式解决了一个确定的胜率和赔率的情况下,每次用多少资金去冒险的问题,假设一个简单的丢硬币的赌局,丢到正面你得到2元钱,丢到反面你输掉到1元钱,你一共有100元钱的总资产,你可以一次进行任意金额的押 ...

  8. 倍投技巧 - 凯利公式教你如何用正确的方法投资

    凯利公式志在解决的问题 假设赌局1:你赢的概率是60%,输的概率是40%.赢时的净收益率是100%,输时的亏损率也是100%.也即,如果赢,那么你每赌1元可以赢得1元,如果输,则每赌1元将会输掉1元. ...

  9. 凯利公式自动计算表_利用凯利公式计算每场投注的最佳比例

    即便是胜率 99%的赌局,如果每局全押,那么也注定会血本无归.即便是胜率只有 1%,如果 1000 元钱本金每局仅投注 1 元,哪怕每次必输,也要 1000 次才会破产.成功的投资不仅要对投资策略的胜 ...

最新文章

  1. 在Ubuntu 16.04.3 LTS上运行go install出错的问题
  2. 十分钟学习自然语言处理概述
  3. win11怎么改任务栏大小
  4. Django的CBV与FBV
  5. ZOJ4024 Peak
  6. leetcode面试题 02.07. 链表相交
  7. 关于毫米波技术的描述
  8. java责任链设计模式 订单_Java责任链设计模式实例分析
  9. 干煸线椒的做法_美食:农家蒸土鸡,剁椒梅鲚鱼干,干煸茶树菇,芹菜炒牛肉的做法...
  10. Revit 2011 二次开发之Ribbon
  11. 加速ASP.NET Core WEB API应用程序——第2部分
  12. greenplum定期清理日志脚本-分割线后更新简单方法
  13. 在线ERD工具DrawERD
  14. vue实现二维码扫码功能
  15. 产品结构图 = 产品功能结构图 + 产品信息结构图
  16. python 视频文件格式和分辨率转换
  17. java开发未来三年职业规划
  18. CodeForces 427C Checkposts (强连通分量Tarjan模板题)
  19. android线程作用,Android线程介绍
  20. matlab调用com,com方式调用matlab(四)

热门文章

  1. 【空间数据库】传统数据模型(层次、网状、关系)和空间数据模型详解
  2. adcclk最大_ADC12采样保持时间与采样频率
  3. QT 视频窗口 OSD 使用详解
  4. java使用jacob.jar_java使用jacob.jar将word转pdf
  5. 国产快速接头格雷希尔解决新能源汽车行业气密性测试中的密封难题
  6. Linux下校园网锐捷认证(以湖南农业大学校园网为例)
  7. Django练习 day04, 05, 06,07
  8. java做同学录管理系统_基于jsp的同学录管理系统-JavaEE实现同学录管理系统 - java项目源码...
  9. Json解析方式(学习笔记)
  10. 2023全新借贷APP系统源码全开源/独立Uni前端+JAVA后端开发