ARTICLE · 1305832
散户量化工具箱 01:Excel 版夏普比率计算器
散 户 量 化 工 具 箱
TOOLBOX · EP01
Excel 版夏普比率计算器:一行公式算出 6 个核心指标
本期交付
📊 SharpeCalc.xlsx · 可直接粘贴数据使用
你有没有遇到过这种情况:朋友给你看一个策略,夏普比率 3.5,年化 45%,你心想"这玩意儿肯定是假的"。但你自己算一个策略的夏普,算出来是 1.2,又不知道到底该信哪个。问题出在哪儿?
在"什么是夏普比率"这件事上,散户的误区几乎可以编成一本笑话集。
有人把"最大回撤的相反数"当成夏普,有人算了 3 天收益率就年化,有人压根没听说过"无风险利率"这回事。更搞笑的是,我见过一个量化博主,自己算的夏普是 2.1,但把算法告诉我之后,我按同样数据用标准公式算出来是 0.8。
工具不对,认知都是白搭。
所以这个系列就这么来:每集一个你能带走的工具,Excel 格式,打开就能用,数据自己粘进去就行。不讲原理先讲用法,遇到坑了再回头看原理。
第一集,就从最基础也最容易被算错的夏普比率开始,顺便再带上另外 5 个你必须会的核心指标。
为什么 90% 的人算的夏普比率都是错的
— THE WRONG WAY —
先说标准公式。夏普比率的学术定义是这样的:
Sharpe Ratio = (Rp - Rf) / σp Rp = 策略年化收益率 Rf = 无风险利率(一般用国债或货币基金收益率) σp = 策略年化波动率(收益率的标准差 × √252)
就这三个变量,每一个都有人算错。
1Rp 算错了:年化方式五花八门。有人用"总收益 / 年数",有人用"几何平均",有人直接拿日收益均值乘 252。三个公式算出来的数字差一倍都不奇怪。正确做法:用日收益率均值 × 252(一年约 252 个交易日,国际通用)。
2σp 算错了:波动率要乘 √252。直接对日线数据算标准差出来的是日波动率,年化要乘 √252 ≈ 15.87。很多人忘了这一步,结果夏普直接变大 15 倍,还以为自己找到了圣杯。
3Rf 算错了:无风险利率不能是零。很多人直接跳过这一项,相当于假设"钱放银行一分钱利息都没有"。2024 年中国 10 年期国债收益率大约 2%,货币基金大约 1.5%。你至少得把这部分扣掉,才是策略相对于"什么都不做"的优势。
还有人用周线甚至月线数据算夏普——日线 240 个样本点已经够多了,周线 50 个,月线 12 个,统计意义基本没有。样本量太小,算出来的夏普就是一个噪声。
一句话总结:你看到的夏普比率,默认打五折。别问为什么,这是行业共识。如果一个策略夏普写 3.5,你按 1.7 信就差不多了。
夏普不够,这 6 个指标一起看
— SIX METRICS —
单个指标肯定不够。夏普高的策略,最大回撤可能吓死人。年化高的策略,胜率可能低到离谱。
给你一套普通人够用的"六人指标组",从不同角度看同一个策略,任何一个指标不对劲都能提前报警。
表 1 · 六大核心指标对照表
这六个指标的顺序也是有讲究的。先看收益和波动——这是地基;再看夏普——这是效率;再看回撤——这是最痛的部分;最后看卡玛和索提诺——这是诚实的双重检验。
六个指标里有一个特别要提:卡玛比率。它直接告诉你:你承担的最大痛苦,换来了多少收益。一个年化 15%、最大回撤 20% 的策略,卡玛是 0.75;一个年化 12%、最大回撤 5% 的策略,卡玛是 2.4。哪个更好?你自己选。
Excel 里怎么实现(一行公式一行注释)
— IN EXCEL —
好消息是,这六个指标在 Excel 里全都能算,而且公式都不超过一行。
但有个前提:你得先有一份干净的日收益率数据。
你只需要两列数据:日期列 + 收盘价列。日收益率 = (今日价 / 昨日价) - 1,一个公式下拉到底就有了。
// 1. 日收益率(假设 B 列是收盘价,C 列是日收益) C2 = B2/B1 - 1// 2. 年化收益率 = 252 * AVERAGE(C:C) // 把 C 列换成你的日收益范围// 3. 年化波动率 = SQRT(252) * STDEV.S(C:C)// 4. 夏普比率(Rf 填你用的无风险利率,比如 0.02) = (年化收益率 - 0.02) / 年化波动率// 5. 索提诺比率(只算负收益的波动率) = (年化收益率 - 0.02) / (SQRT(252) * STDEV.S(IF(C:C < 0, C:C, 0))) // 数组公式,Ctrl+Shift+Enter 确认// 6. 最大回撤(比较麻烦,建议用累计净值来算) // 先算累计净值 D2 = (1+C2)*D1(D1 填 1) // 再算滚动峰值 E2 = MAX(D$1:D2) // 回撤 F2 = (E2-D2)/E2 // 最后取 MAX(F:F)
数组公式要注意:在旧版 Excel 里输入完之后,不能直接按回车,要按 Ctrl+Shift+Enter。新版 Excel(365/2021)自动识别数组公式,直接回车就行。
给你一份现成的:SharpeCalc.xlsx
— DOWNLOAD —
上面这些公式你敲一遍当然没问题,但肯定还会遇到:数组公式忘加 Ctrl+Shift+Enter、最大回撤算不出来、不知道数据粘在哪……
所以我把这份计算器做好了,就三张 Sheet:
📥 Sheet 1 · 输入区A 列粘日期,B 列粘收盘价,C 列日收益率自动算。下面有无风险利率可以调(默认 2%)。
📊 Sheet 2 · 指标计算6 个指标自动刷新,每个都附了公式说明。下面还有"怎么看"的参考标准,夏普多少算好、回撤多少可以接受,都在里面。
📖 Sheet 3 · 使用说明怎么粘数据、年化系数为什么是 252、为什么要用复权价格……全写在里面,遇到坑了翻一下。
👉 怎么拿?直接点这个链接下载(蓝奏云):https://wwbue.lanzouq.com/iVVoI4ej3yza提取码:dx8w公众号后台回复【工具01】也能自动收到这个链接。后面每一集的工具都放在同一个文件夹里,回复【工具箱】可以一次性把所有工具打包带走。
一个真实案例:用 10 年数据算一下沪深 300
— REAL EXAMPLE —
你可能想问:拿这个计算器算一个真实标的,出来的结果到底长什么样?
我去 Wind 拉了一份沪深 300 ETF(510300)2014-2023 十年的收盘价数据,共 2430 个交易日,粘进计算器,出来的结果是这样:
表 2 · 沪深 300 ETF(2014-2023)六大指标计算结果
这个结果出来,说明什么?
第一,沪深 300 指数本身不是什么好投资——夏普 0.26,卡玛 0.17,风险收益比很一般。但反过来说,如果你自己的策略跑不过指数,那还不如买 ETF。
第二,2015 年那次股灾是最大回撤来源,-46.7%。如果你 2015 年之前建仓,要等 5 年多才能回本。这就是为什么我反复强调:最大回撤不是一个数字,是一段你能不能扛过去的时间。
第三,索提诺比率比夏普略高(0.34 vs 0.26),说明下跌的波动比上涨的波动略小一点,但差距不大。真正好的策略,索提诺会远高于夏普(因为它只惩罚亏损)。
看完这集你能带走什么
— TAKEAWAYS —
总结一下今天这集你应该带走的三件事:
①夏普比率默认打 5 折看。别人说夏普 3.5,你按 1.7 信就行。公式三个变量一个都不能错:年化系数 252、波动率乘 √252、无风险利率不能忘。
②六个指标一起看,别迷信单一数字。特别是卡玛比率——它告诉你每承担 1% 的痛苦能换来多少收益,比夏普诚实得多。
③把你的策略数据丢进计算器跑一遍。如果跑出来的夏普 < 0.5、卡玛 < 0.5,先别急着上实盘,再打磨打磨。如果夏普 > 2,怀疑过拟合。
量化工具箱 · EP01 完。下一集我们做什么?投票决定:A. 免费因子数据库清单(10 个普通人能拿到的数据源)B. Python 30 行代码爬取沪深 300 历史成分股C. 成本计算器:你的策略一年到底花了多少手续费评论区告诉我选哪个,得票最高的下期安排。
最后还是说句老实话:工具永远是工具。夏普算得再准,也挡不住你在最大回撤那天忍不住手动干预。卡玛再漂亮,也挡不住你赚了点小钱就觉得自己是天才。
但有了正确的工具,至少你能把"策略本来就不行"和"我自己情绪控制不住"这两件事分开。分开了,才能知道该改哪一头。
本文只讨论研究方法与工具,不构成任何投资建议。历史业绩不代表未来收益,市场有风险,入市需谨慎。















































































