用Perl计算福布斯公式

凯利公式是一个方程,用于根据概率和赔率计算投注的最佳资金比例。几年前,我在威廉·庞斯顿的畅销书《福布斯公式:科学投注与赌场》中读到它。[福布斯公式](http://www.amazon.com/Fortunes-Formula-Scientific-Betting-Casinos-ebook/dp/B000SBTWNC)。要在Perl代码中使用凯利公式,您可以使用我上周发布的模块[Algorithm::Kelly](https://metacpan.org/pod/Algorithm::Kelly)。

使用Algorithm::Kelly

Algorithm::Kelly导出optimal_f子程序,它接受两个参数:事件发生的概率(0.00到1.00之间的值)和回报(净赔率)。optimal_f返回您应投注的最佳资金比例。

例如,如果我想要找到一个具有50%胜率且赔率为3比1的投注的最佳f

use Algorithm::Kelly;

my $optimal_f = optimal_f(0.5, 3);

这里optimal_f返回的值为0.25,这意味着我应该将25%的资金投注在这个赌注上。让我们看看另一个例子:一个有12%发生概率并赔率为5比1的赌注。我也可以在命令行中计算最佳f

$ perl -MAlgorithm::Kelly -E 'say optimal_f(0.12, 5)';
-0.056

所以这次,最佳f是-0.056,或者负5.6%,这意味着我不应该接受这个赌注,因为赔率不够慷慨,考虑到这个赌注赢得的概率。这非常有用:最佳比例可以用来排除糟糕的赌注,并排名相互竞争的投注选择,以找到最佳价值投注。

实际陷阱

凯利公式只与它的输入一样准确,虽然查找特定投注的赔率很容易,但精确计算投注赢得的概率通常是一个更困难的任务。计算像轮盘赌这样的赌场的概率很容易,但它们具有负最佳f,不值得追求。一些成功的体育投注者使用统计建模技术来估计投注赢得的概率——但这只是一个估计。

凯利公式的第二个问题是最优f的大小。凯利公式将始终最大化长期回报,但没有无限的市场可以提供赌注,频繁地冒着大量资金的风险将意味着短期的大额损失。此外,即使你有大量的资金,许多市场也不够流动,无法容纳最优f推荐的赌注大小。投注者通常会使用“半凯利”,即赌注的最佳f除以2。


这篇文章最初发布在[PerlTricks.com](http://perltricks.com)。

标签

David Farrell

David是一位专业程序员,他经常在[推特](https://twitter.com/perltricks)和[博客](https://blog.dnmfarrell.com)上分享代码和编程艺术。

浏览他们的文章

反馈

这篇文章有什么问题吗?通过在[GitHub](https://github.com/perladvent/perldotcom/blob/master/content/article/calculate-fortune-s-formula-with-perl.md)上打开一个问题或拉取请求来帮助我们。