kelly criterion 按平均损失的因子关闭,rf通过检查调用堆栈进行路由

作者: lenamonj创建于 2026年7月27日更新于 2026年7月27日

**1. `kelly_criterion` 返回增长最优比例乘以平均损失。**对于 p = 0.60 的两种结果序列,赢 2%,输 1%,闭合形式的 Kelly 比例为 39.9985,函数返回 0.399985,比 `1/l` 小。该函数还具有尺度不变性,对于通过 1.0、0.5 和 0.1 缩放的序列,返回的值都是相同的 0.03554685,其中真正的 Kelly 移动分别为 2.86、5.72 和 28.62。问题 #535 将此问题定义为离散 Kelly 与连续 Kelly 的区别,我认为这并不是最精确的描述。 **2. 无风险利率由调用者名称选择。**`_prepare_returns` 会检查 `inspect.stack()`,其结果是 `cagr(r, rf=0.00)` 和 `cagr(r, rf=0.50)` 都返回 `0.2163540607973844`。单独的 `if rf > 0` 保护也会在所有地方丢弃负利率。意图的不同在 `reports.py` 中可见,其中在第 1314 行传递 `rf`,在第 1550-1563 行传递 `0.0`;目前所有五个路径都返回相同的数值。还有两个值得注意的项目:`aggregate_returns` 在文档中指定的 `'M'、` `'Q'` 和 `'Y'` 参数上默认无操作,因此 `best(aggregate='Y')` 返回最佳单日数据,并在 `'W'` 上抛出 `AttributeError`,因为 pandas 2.0 中已删除 `.week`;而 `information_ratio` 没有年化,而 `sharpe` 则有,这两者之间的差异为 `sqrt(252)`。为了平衡,我查看了问题 #514(算术与几何的活动回报),并认为应 **拒绝** - 算术活动回报是 Grinold-Kahn 约定,与您的文档描述一致。问题 #518 无法重现,而 #493 看起来更像是正确的周期统计而不是缺陷。我有一个补丁:重现结果从 26 失败变为 33/33,而您的套件保持在 125 通过,没有任何弱化。很高兴能开一个 PR。

内容来源: ranaroussi/quantstats