翻阅了站内关于下注比例和仓位控制的内容,绝大多数都是以经验或者统计学进行分析,而既有的凯利公式和贝叶斯的内容,多泛泛而谈,以二项分布为例,难以应对现实中离散分布的情形,本为目的旨在于使用凯利公式、似然估计、贝叶斯构建一个能够基本使用的框架,用概率的视角,应对彩票赌博、棋牌麻将、投资交易等场景的下注问题,这里以其中最复杂的投资场景为例。
什么是凯利公式?
凯利公式是在已知胜率和赔率时,告诉你该下多少注才能使长期复利增长最大化的数学规则:把“胜率×净赔率-败率”除以净赔率,得到的本金比例就是最优仓位,再砍一半(半凯利)可防估计误差。
什么是贝叶斯?
贝叶斯思想就是把参数看作随机变量,用先验分布表达已有认知,再借观测数据把先验更新成后验分布,从而量化不确定性并持续修正信念。
在投资场景中使用有何问题?
凯利对胜率和赔率误差极度敏感,小样本下极易高估优势,结果“最优”仓位居然变成过度杠杆爆仓;投资中股票-债券-现金是连续分布、多资产、相关且胜率/赔率不恒定的复杂系统,必须用“广义凯利”或“分数凯利”+贝叶斯先验的方法。
极大似然估计只追求“让历史数据最可能”,忽视先验和尾部,导致参数过拟合、非线性的未来变化情况无法处理。
贝叶斯虽能把先验和不确定性量化,但先验主观、协方差矩阵高维病态,加上市场分布非稳态、厚尾、相关突变,后验更新常常滞后或发散,算得越精密越有“精确的错误”,先验分布中和极大似然估计一样,可能犯线性估计的错误。
计算步骤:
1、通过凯利公式计算资产初始仓位
我们是刚开始投资的小白,缺乏我们自己的历史投资胜率和赔率信息,那么就需要先收集历史数据,计算出各项投资资产收益率的σ、SharpeRate
投资中股票-债券-现金是连续分布,收益R∈N(μ,σ)【为方便计算的简化】,在非胜即负的二项分布(如打赌、牌局)中,仍使用原版凯利公式即可:f=(P·b-Q)/b:
用夏普比率替代二项分布中的凯利公式:【Sharpe表示承担每一单位风险获得的收益,即Sharpe = (E[R] – Rf) / σ,σ表示风险本身】
凯利杠杆≈ Sharpe/σ
【max E[ln(1+f·r)]对正态收益做二阶泰勒展开并求导,得到近似解】
此时得到了第一个参数,即初始仓位
2、计算先验概率
首先用到的是收益率均值μ,略
其次应对多资产且相关的状况,需要使用到相关性协方差Σ
在连续收益、多资产的资产配置里,你要估计的是整个收益分布的参数向量 θ = (μ,Σ),所以先验也升格为对这些参数的联合概率分布
现金账户已开好,标的选好(如 510300、511010、518880)
用广义凯利解析式对先验中心(μ₀, Σ₀)算一把:
f* = Σ₀⁻¹ (μ₀ – Rf)(Rf 取现金年化或者短期国债收益率)
再砍半→半凯利先验权重 w₀ = 0.5 · f*
例:算出 f* = [60% 股, 30% 债, 10% 黄金],则 w₀ = [30%, 15%, 5%],余下 50% 留现金/货币 ETF。
接下来就可以按 w₀ 下单建仓——这是“无历史数据”时的最优起点。
3、通过极大似然估计积累数据
这一步是我们计算中最简单的一步,却是实操中最难的一步,不管你是通过什么方法选标的,记录每周或每月净值序列,至少攒 6–12 期(T≥6)。
每新增一期,就把收益向量rₜ追加进矩阵R。
4、通过贝叶斯,滚动更新数据
先验中心:μ₀(N×1)
先验协方差矩阵:Σ₀(N×N)
先验信任度:κ₀(越大越相信先验,常取 1–10)
先验自由度:ν₀ = N + 2(最Flat的常用选择)
观测:T 期收益矩阵 R(T×N),行是时期,列是资产
样本均值:ȳ = R.mean(axis=0) (1×N)
样本协方差:S = (R - ȳ).T @ (R - ȳ) / (T - 1) (N×N)
共轭更新解析公式(正态-逆 Wishart)
后验信任度
κₙ = κ₀ + T
后验自由度
νₙ = ν₀ + T
后验均值(后验期望μ的解析点估计)
μₙ = (κ₀·μ₀ + T·ȳ) / κₙ
← 就是“先验均值”与“样本均值”的加权平均,权重=信任度。
后验尺度矩阵(后验期望Σ的解析点估计)
Ψₙ = Ψ₀ + S·T + (κ₀·T/κₙ)·(ȳ - μ₀)@(ȳ - μ₀).T
其中 Ψ₀ = (ν₀ - N - 1)·Σ₀ (把先验Σ₀还原成逆Wishart尺度)
后验协方差矩阵(点估计,用于后续凯利)
Σₙ = Ψₙ / (νₙ - N - 1)
把后验 (μₙ, Σₙ) 塞进广义凯利
Rf = 0.01 (1 月化 = 0.01/12 ≈ 0.00083)
f* = Σₙ⁻¹ (μₙ - Rf)
半凯利:0.5·f* = f
计算完毕!!!
阵亡,太复杂了,一定有解,但根本没法用啊,急需简化!
复杂来源于正态分布,想办法简化成二项分布即可,那我们重来一次,用掷硬币思维解释
1涨还是跌?
把每天的涨跌幅按要求回报率(比如 +1%)切成两块:
大于 +1% → “涨”
小于 +1% → “跌”
2计算涨跌次数:
涨(正面)(k)
跌(反面)(n−k)
总次数 n = k + (n−k)
这步就是“抛硬币统计”,纯数数。
3加预期“猜”(纯预期)
如果你完全没观点,就当已抛过 1 正 1 反(Beta(1,1))。
若你长期看涨,可当作已抛 6 正 4 反(Beta(6,4))——数字越大表示你信念越硬。
这步只是给后面“修正”留个底。
4合并算“修正后的正面概率”
把第 2 步的真实次数 + 第 3 步的“私心次数”:
新正面 = 历史正面 + 私心正面
新反面 = 历史反面 + 私心反面
再算比例:
P = 新正面 ÷ (新正面 + 新反面)
这就是你带进凯利公式的“胜率”。
5计算赔率
赔率 = “赢一次赚多少” ÷ “输一次亏多少”
用历史数据一样能估,但要对称地量:
先保住第2步的切线Δ(≥+Δ算成功,<−Δ算失败)。
把近5年所有成功日的超额涨幅取平均 → 平均成功幅度 A
把失败日的超额跌幅取平均 → 平均失败幅度 B(正值)
净赔率 b = A / B
例:
成功日平均多涨 2.1%
失败日平均多跌 1.4%
→ b = 2.1 / 1.4 ≈ 1.5
解释:每亏1元,赢一次平均赚1.5元。
6把这只“历史平均幅度比”直接当b带进二元凯利即可
仓位=【赔率*胜率-(1-胜率)】/赔率
当资产组合不具有相关性(独立事件)时,直接对各个资产进行权重计算即可得到总仓位∈(0,1)时【即不杠杆也不做空】的仓位组合,即单个标的修正仓位=单个仓位/总仓位
7多元资产(有相关性情况)组合时的仓位计算
不需要单独计算以上单个标的仓位,直接同步计算即可
7.1引入5年历史每月收益数据的相关矩阵Σ(协方差)
用Excel「数据分析→协方差」得N×N矩阵,
或用简化公式:
ρij≈近5年收益相关系数(Excel CORREL)
7.2代入多元凯利公式
多元凯利公式的最优权重向量为 f*= Σ⁻¹ (μ - r),其中:
μ-是风险资产的期望收益向量(基于历史平均或预测)。
r -是无风险利率(现金收益),设为0或实际值。
Σ⁻¹-是协方差矩阵的逆矩阵。
f*=Σ⁻¹(期望收益−无风险利率)
无风险收益率=现金日收益(可设0)
凯利公式中得到的结果波动非常大,使用半凯利公式f_adj=f*/2
7.3强制 f∈(0,1)
若某分量<0,设0,不允许做空交易;
若总和<1, 则按比例投资,剩余部分保留为现金;
若总和>1,则说明公式建议使用杠杆,若限制杠杆则按比例缩放到1。
8动态更新数据
方案一:移动平均法
核心思想是将新旧数据以某种权重进行混合,步骤如下:
引入一个参数 λ(称为衰减因子或遗忘因子),定义你的“学习速率”,范围在0到1之间。λ 决定了你有多“相信”旧数据。
λ 接近 1(如0.95):你非常相信历史,模型变化很慢,很稳定。
λ 接近 0(如0.5):你更相信新数据,模型调整很敏捷,但也可能更波动。
建议起点:从 λ = 0.90 到 0.98 开始尝试,这相当于给历史数据一个很长的“半衰期”,当市场快速发生变化时,也可以认为修正λ值。
更新期望收益 (μ):
假设你上一次的估计是 μ_old。
你观察到了过去一个月(或一个季度)的新收益率向量 r_new。
更新公式:μ_new = λ * μ_old + (1 - λ) * r_new
解读:新的期望收益是旧收益和新观测收益的加权平均。λ 越大,旧数据的权重越高。
更新协方差矩阵 (Σ):
这是关键,因为资产间的关系会变化。
假设你上一次的协方差矩阵是 Σ_old。
根据新收益率数据,计算一个代表新关系的协方差矩阵 Σ_sample(例如,用过去12个月的数据滚动计算,或者简单看新数据点与 μ_new 的偏差)。
简化更新公式:Σ_new = λ * Σ_old + (1 - λ) * Σ_sample
更精确的指数加权移动平均(EWMA):很多专业的风险模型都采用此方法,它在计算上也很方便。
方案二:贝叶斯公式
选择先验分布:
最常用的选择是正态分布μ ~ N(μ₀, Σ₀)
μ₀:用最初5年数据算出的期望收益。
Σ₀:先验的不确定性。这是一个关键点:它不是你之前算的资产间协方差 Σ,而是你对 μ₀ 这个估计值本身有多不确定。如果你对初始估计很有信心,Σ₀ 应该很小(对角线值小);如果没信心,可以设大一些。这很主观,但体现了贝叶斯的“主观信念”。
定义似然函数:
假设资产收益率 r 服从多元正态分布:r ~ N(μ, Σ)。这里的 Σ 是资产的协方差矩阵,已知的或用方案一的方法更新。
计算后验分布:
当观察到新的收益率数据 r_new 后,存在一个优美的解析解。
后验分布 μ | r_new 仍然是正态分布。