打开回测报告,很多人眼睛先盯夏普:数字高就点头,低就皱眉。这个习惯本身没错——夏普把「赚了多少」和「晃得有多狠」捏成一个比值——但它很容易变成捷径:只要夏普好看,别的指标随便翻翻。交易里最贵的错误,往往不是「不会算」,而是把一个好指标用成了唯一裁判。
高夏普在说什么,又没说什么
夏普回答的问题很窄:相对无风险利率,每一单位波动换来了多少超额收益。 高,通常意味着「收益相对波动更划算」。低,意味着要么收益不够,要么波动太大,要么两者兼有。
它没回答的事同样重要:最大回撤有多深、回撤持续多久、交易次数够不够、收益是不是集中在某几个月、样本外是否还成立。我见过夏普 2.0+ 的曲线,拆开一看,收益几乎全靠一段单边行情;换一段震荡市,曲线立刻变平。那种「高」更像阶段性好运,不是能力证明。
反例也不难想:策略 A 年化 8%、波动很小、夏普漂亮;策略 B 年化 25%、波动更大、夏普略低,但你真正在意的是「能否扛住回撤去拿收益」。若你资金性质允许波动,B 未必输给 A。夏普高不等于更适合你,只等于风险调整后更「省波动」。
什么时候「高」反而要多疑
回测里夏普异常高,我会先当警报,不当奖状。常见几种情况:
- 1. 样本太短或行情太单一:牛市里做多、熊市里空仓,夏普很容易被抬高;换一段就塌。
- 2. 低估交易成本与冲击:高频、小票、打板类策略,费用一抠,夏普往往最先掉。
- 3. 未来函数或偷看参数:信号时点不对、先看全样本再选参数,曲线会「假稳」。
- 4. 收益分布偏斜:少数大赚撑起均值,多数日子平淡——夏普对这种偏斜不如你想的敏感,回撤和尾部更关键。
有个很土的验法:把回测区间按年份或按牛熊切开,看夏普是「各段都不差」,还是「一段特别高、其余凑数」。后者我会直接降权。
低夏普就一定该扔吗
不一定。趋势跟踪类策略,历史上常有「胜率不高、盈亏比靠几次大行情」的特征,全样本夏普可能一般,但在趋势年份贡献巨大。你若用「夏普必须 >1.5」一刀切,可能把这类策略提前杀掉。
更稳妥的问法是:低夏普是因为波动太大且收益一般(该警惕),还是因为收益集中在少数时段、平时在交波动税(要看你是否愿意持有)?把最大回撤、卡玛比率、分年度收益摊开,比盯一个夏普有用得多。
我自己怎么验:三步交叉
假设你已经有一套规则和一条回测曲线,别急着因为夏普高低做决定,按这个顺序过一遍:
第一步:固定口径。 无风险利率用什么、收益按日还是按周、是否年化——写进笔记。换口径比的夏普没有意义。
第二步:拆区间。 至少留一段样本外;样本内再按年份或按波动环境切开。只报全样本夏普的策略,默认可疑。
第三步:配指标。 夏普旁边至少摆最大回撤、交易次数、盈亏比或期望值。夏普升了但回撤恶化、交易数少到不可信,就不算进步。
若你在改参数:只允许「夏普略降、但样本外更稳、回撤可控」这种取舍;不允许「夏普冲高、样本外崩」当成功。那是在奖励过拟合。
还有一个容易忽略的对照:把无风险利率从 0 改成一个更接近国债的近似值,再算一遍夏普。若排序大变,说明你的超额本来就薄,结论别说太满;若排序几乎不动,才比较有资格横向比策略。资金曲线若长期贴近现金,夏普会被「低波动」抬轿——这时先看绝对收益够不够覆盖你的时间成本,再谈比率漂不漂亮。
做这类对比时,把同一套规则存成可复现版本很重要——下次换区间重跑,数字才对得上。青柠量化 适合把策略与回测结果保存在本地,方便你按区间、按版本对照夏普和回撤,而不是截一张图就定终身。
下载与说明见产品页:
https://www.zpyztech.com/product/qingquant/
免责声明: 本文仅作量化知识科普,不构成任何投资建议。历史回测与指标不代表未来表现,请独立判断并自行承担投资风险。
读到这里,不如自己验证一次
文章里的逻辑,你可以在青柠量化里用真实数据重新跑一遍。免费,零代码。