一、置信度基础:什么是置信度、置信度在量化交易中的价值、置信度与概率的区别
1.1 先聊聊“置信度”到底是个啥
说实话,我刚入行做量化那会儿,也把置信度和概率搞混过。那时候写策略,回测跑出年化30%,我兴奋得不行,觉得找到了印钞机。结果实盘一个月,亏得亲妈都不认识。
后来我才明白——回测结果再漂亮,也只是“概率”上的表现。而“置信度”,才是你对这个策略到底有多信任的底气。
举个例子。你抛一枚硬币,正面概率是50%。但如果你只抛了10次,看到6次正面,你敢说“这枚硬币偏向正面”吗?不敢吧?因为样本太少,置信度太低。但如果你抛了10000次,看到6000次正面,那你就很有信心了——置信度高了。
在量化交易里,置信度就是你对自己判断、模型预测、策略信号有多“信得过”。它不是简单的概率,而是包含了样本量、稳定性、鲁棒性等一系列因素的综合评估。
核心定义:置信度 = 对某个结论或预测的“可信程度”的量化度量。它回答的是:“这个信号,我该用多大的仓位去赌?”
1.2 置信度在量化交易中的价值——我踩过的坑
我个人习惯把置信度分成三个层次来用:
- 策略层面的置信度:这个策略本身靠不靠谱?回测过拟合了吗?样本外表现如何?
- 信号层面的置信度:当前这个交易信号,是噪音还是真机会?
- 执行层面的置信度:市场环境变了没?模型还适用吗?
我记得有一次,我开发了一个基于统计套利的策略。回测三年,夏普比率2.5,最大回撤只有8%。我信心满满地上了实盘。结果前两周确实赚钱,第三周开始连续亏损。我复盘才发现——市场波动率结构变了,而我的模型完全没有考虑置信度的动态调整。
这就是置信度的价值所在:它让你知道什么时候该重仓,什么时候该轻仓,什么时候该直接放弃。
避坑指南:我曾经犯过一个低级错误——只看回测的收益率和夏普比率,忽略了置信区间。后来我养成了一个习惯:每个策略上线前,必须计算95%置信区间下的预期收益范围。如果下限是负数,那这个策略我就要重新审视。
1.3 置信度与概率的区别——别再搞混了
这个问题,我面试过不少量化工程师,十有八九都说不清楚。你想想看,概率和置信度,到底差在哪?
概率描述的是“事件发生的可能性”,而置信度描述的是“我们对这个可能性判断的可靠程度”。
举个具体的例子:
- 概率:模型预测明天某只股票上涨的概率是70%。这是模型给出的一个数值。
- 置信度:这个70%的预测,我有多相信它?如果模型在过去100次预测中,当它说70%时,实际上涨率只有55%,那这个70%的置信度就很低。
说白了,概率是模型的输出,置信度是对模型输出的“二次评估”。
| 维度 | 概率 | 置信度 |
|---|---|---|
| 定义 | 事件发生的可能性 | 对概率判断的可靠程度 |
| 来源 | 模型直接输出 | 历史校准、样本量、稳定性等 |
| 范围 | 0~1 | 0~1(或百分比) |
| 可验证性 | 单次无法验证 | 可通过校准曲线验证 |
| 在交易中的用途 | 决定方向判断 | 决定仓位大小 |
注意:很多量化新手把模型输出的概率直接当作置信度来用,这是大忌。比如一个深度学习模型输出80%的上涨概率,但如果你没有做概率校准,这个80%可能实际对应的是50%的真实概率。我见过有人因为这个原因,重仓了一个“高概率”信号,结果亏得很惨。
1.4 置信度的核心框架——一张图看懂
下面这张图,是我自己总结的置信度评估体系的核心框架。每次做策略评估,我都会对照着走一遍。
1.5 一个简单的置信度计算示例
说了这么多理论,咱们来点实际的。假设你有一个策略,过去100次交易中,有60次盈利。那这个策略的胜率是60%。但你对这个60%有多大的信心?
我们可以用威尔逊区间来估算置信区间。代码很简单:
import numpy as np
from scipy import stats
def wilson_confidence_interval(n_success, n_total, confidence=0.95):
"""
计算威尔逊置信区间
n_success: 成功次数
n_total: 总次数
confidence: 置信水平
"""
z = stats.norm.ppf(1 - (1 - confidence) / 2)
p_hat = n_success / n_total
denominator = 1 + z**2 / n_total
center = (p_hat + z**2 / (2 * n_total)) / denominator
margin = z * np.sqrt((p_hat * (1 - p_hat) / n_total + z**2 / (4 * n_total**2))) / denominator
return center - margin, center + margin
# 示例:60次成功,100次总交易
lower, upper = wilson_confidence_interval(60, 100)
print(f"95%置信区间: [{lower:.3f}, {upper:.3f}]")
# 输出: [0.502, 0.692]
看到了吗?虽然点估计是60%,但95%置信区间是[50.2%, 69.2%]。也就是说,这个策略的真实胜率,有95%的概率落在这个区间内。下限才50.2%,其实并不算很靠谱。
我的习惯:每次计算完置信区间,我都会问自己一个问题:“如果真实胜率是下限那个值,我还愿意用这个策略吗?”如果答案是否定的,那这个策略的置信度就不够,需要继续优化或者放弃。
1.6 小结一下
置信度不是概率,它是你对概率判断的“二次信任”。在量化交易中,概率告诉你往哪个方向走,置信度告诉你走多远、走多快。
我个人认为,一个成熟的量化交易系统,至少要有三层置信度评估:策略层、信号层、执行层。缺一层,都可能让你在实盘中栽跟头。
嗯,这一章就到这里。记住一句话:没有置信度的概率,就像没有刹车的跑车——跑得快,死得也快。