回测体检 · 多重检验 · 成本压力
你的回测,经得起体检吗?
核对成本、扣掉试验次数和运气之后,看看还剩多少。免费体检:上传的文件在服务器处理完即删除,不保留;收费功能的数据按授权码隔离存在服务器,可一键删除。
需要一份日收益 CSV(日期、收益率两列),或先用示例。
我们先体检了自己:四条策略线,没有一条越过 DSR ≥ 0.95 的多重检验门槛。
DSR 是扣掉「试了很多次、总有一次碰巧好看」的运气成分之后,策略的真实 Sharpe 仍大于 0 的概率;0.95 是我们设的门槛。术语表
- 原始 Sharpe
- 扣真实成本
- 扣试验次数
- 取置信区间下沿
- 剔除最好一年
每一步扣掉一种常见的高估来源;你的报告会写出每一级的真实数字和依据。
体检查五件事
- A
数据与口径
样本长度、百分数单位、极端值、重复日期与缺口、零收益天数。
- B
收益质量
年化收益与波动、Sharpe、Sortino、最大回撤、最长未创新高、尾部风险。
- C
多重检验与运气
PSR、Bootstrap 区间、按试验次数的 DSR、最短回测长度、Harvey-Liu 折扣
- PSR
- 考虑了样本长度和收益分布之后,Sharpe 真的大于 0 的概率。
- Bootstrap 区间
- 把日收益按一段一段随机重新拼接很多次,看 Sharpe 会在多大范围内晃动,给出 95% 区间。
- DSR
- 在 PSR 的基础上,再扣掉「试了很多次、只留最好那次」的运气成分。
- 最短回测长度
- 试了这么多次之后,至少要有多少年的数据,纯靠运气才做不出现在这个 Sharpe。
- Harvey-Liu 折扣
- 试验次数越多,Sharpe 要打的折扣越大;看折后还剩多少。
- D
稳健性
剔除最好的一年、剔除最好的几天、前后两半是否一致。
- E
成本与执行
逐日成本压力、成交级盈亏平衡滑点、手续费占毛利。
术语表:这些名词是什么意思
- Sharpe
- 年化收益除以年化波动:每承受一份波动,换来多少收益。越高越好;单看它不能区分本事和运气。
- 最大回撤
- 从某个历史高点跌到之后最低点的最大跌幅,看最坏时账户亏过多少。
- Bootstrap 区间
- 把日收益按一段一段随机重新拼接很多次,看 Sharpe 会在多大范围内晃动,用来给出 95% 区间;按段拼是为了保留连续几天涨跌的相关性。
- 换月
- 期货主力合约从近月换到下一个月份。换月前后价差会让连续合约出现假的跳空,没处理好会虚增或虚减收益。
- 前视(未来函数)
- 回测里用了当时还拿不到的信息,例如收盘才知道的信号按收盘价成交;会让回测好看得不真实。
- 「0.9 倍」
- 最差几天的平均亏损与最好几天的平均盈利之比:小于 1 说明大亏没有比大赚更狠,大于 1 说明亏起来比赚起来更猛。
- DSR
- 扣掉「试了很多次、只留最好那次」的运气成分之后,真实 Sharpe 仍大于 0 的概率;报告里的门槛是 0.95。
- PSR
- 考虑了样本长度和收益分布之后,Sharpe 真的大于 0 的概率。
- Harvey-Liu 折扣
- Harvey 与 Liu 提出的折扣法:试验次数越多,Sharpe 要打的折扣越大;看折后还剩多少。
- Bonferroni
- 多重检验的最简单修正:试了 N 次,就把每次的 p 值乘以 N 再判断;试得越多门槛越高。报告里「扣完试验次数还剩多少 Sharpe」就是把放大后的 p 值换回 Sharpe。
- Newey-West
- 估算 Sharpe 误差时的修正:日收益常有「连涨连跌」的相关性,直接算会把误差估小;Newey-West 把相关性算进去,得到更保守的误差。
- MinBTL
- 最短回测长度:试了这么多次之后,至少要有多少年的数据,纯靠运气才做不出现在这个 Sharpe。
- β(贝塔)
- 你的收益跟着基准(指数或朴素策略)涨跌的幅度:β 为 1 表示基准涨 1% 你大约也涨 1%;β 高说明收益有很大一部分只是跟着大盘走。
- R²
- 基准能解释你收益波动的比例,0 到 1:越接近 1,你的收益越像是基准的影子;越接近 0,越是独立于基准。
- 文件处理完即删除免费体检的文件在服务器处理完即删除,不保留;收费功能的数据按授权码隔离存在服务器,可一键删除;页面不加载任何外部资源。
- 只查回测,不给方向不推荐合约或股票,不预测涨跌;「未发现硬伤」也不代表能盈利。
- 报告可以复跑核验同一份文件(文件名也计入)、同一版本软件复跑,报告指纹逐位相同。
放入回测文件
把 CSV 或 Excel(.xlsx)拖到这里,或点上面的「放入我的回测」。最简单的是两列:日期,加上日收益、权益(净值)或当日盈亏其中一列。
日期,收益率 2024-01-02,0.0035 2024-01-03,-0.0012
支持 UTF-8 与 GBK 编码;百分数请带 % 号。手续费占比和盈亏平衡滑点要用成交记录算:选好回测文件后,可以在「确认口径」那步再放入成交记录(可选);不放的话,「成本与执行」一项会如实标「无法判定」。
- 通用 CSV / Excel
- 期货结算单权益
- 逐笔交易明细
- vn.py 逐日结果
- 聚宽回测结果
- 米筐 rqalpha 净值
- 金字塔
- QMT
结算单权益带「出入金」列时会自动剔除资金进出,「手续费」列当作逐日成本。逐笔交易明细(每行一笔开平仓,要有「平仓时间」和盈亏列)按平仓日汇总,需要填初始资金,只算已实现盈亏。金字塔、QMT 的导出还没拿到样本核对,读不进来时请先另存为上面的两列格式。
确认口径
更多口径(可选)
成交记录与费率表(可选,算手续费占比和盈亏平衡滑点)
成交记录 可选
放入同一段时间的成交记录,就能算手续费占毛利和盈亏平衡滑点。需要时间、合约、成交方向、手数、价格;开平和手续费建议带上。支持 UTF-8 与 GBK,方向与开平合在一列的导出格式也认。
成交时间,合约,方向,开平,手数,成交价,手续费 2024-01-02 09:30:00,rb2405,买,开,1,3500,3.5 2024-01-02 14:30:00,rb2405,卖,平,1,3512,3.5
回测和成交记录合计最多约 1.4 MB;超过时请拆成多份上传。
期货公司费率表 可选
和成交记录一起用:按你实际的开仓、平昨、平今费率核对文件里的手续费;成交记录没有手续费列时按它推算。每个品种一行,「方式」写按手(元/手)或按金额(如 0.0023% 或 万分之0.23)。软件不内置交易所费率。
品种,开仓,平昨,平今,方式 rb,3.5,3.5,3.5,按手 IF,0.000023,0.000023,0.00023,按金额
K 线 可选
和成交记录一起用:把成交逐笔放回你给的 K 线里,核对成交价是否在当时的最高、最低之间、有没有在一字涨跌停板上成交,并画出成交回放图。日线或分钟线都行,多个合约请带「合约」列。核对只按你给的 K 线,缺 K 线的成交不下结论;只做核对,不评价买卖点。
时间,合约,开盘,最高,最低,收盘 2024-01-02,rb2405,3500,3520,3490,3510 2024-01-03,rb2405,3510,3530,3500,3525
逐日成本与压力测试(可选)
放入逐日成本表
计算扣成本后的 Sharpe,以及成本 1×、1.5×、2×、3× 时的表现。每个有效交易日一行,没有成本也填 0;交易日按回测口径填写,夜盘不要直接用成交日期。
交易日,总成本,前日权益 2024-01-02,20,100000 2024-01-03,0,100330
总成本填写同一币种的手续费、滑点等已计金额;前日权益必须是计算同日回测收益所用的分母。软件不能核实成本是否完整或分母是否一致。压力测试固定使用这些分母,不模拟资金和保证金变化。已勾选「收益已经扣过手续费和滑点」时不会重复扣除。
全部文件合计最多约 1.4 MB;超过时请拆成多份上传。
每日持仓:检验未来函数(可选)
放入每日持仓
用持仓重算一遍收益,核对能不能复现回测;再把全部仓位推迟一天,看收益还剩多少。推迟后收益塌掉,要么策略很快,要么用到了当时拿不到的价格(例如收盘才知道的信号按收盘价成交)。每个交易日、每个品种一行;空仓的品种可以不写。
日期,品种,仓位权重,品种收益 2024-01-02,RB,0.35,0.0042 2024-01-02,CU,-0.20,-0.0013
仓位权重 = 当日收盘后持仓市值 ÷ 账户权益(空头为负);品种收益 = 该品种当日收益率(小数或带 % 号)。
自带基准:是不是换了皮的指数(可选) 需授权码
放入基准
把你的收益对你选的基准做回归,看剔除这部分暴露后还剩多少超额。股票没有内置基准(指数数据归指数公司所有,软件不能随带),从行情软件导出沪深 300、中证 1000 这类指数就行;期货放了就代替内置的趋势组合与商品指数。
日期,沪深300,中证1000 2024-01-02,3500.00,6000.00 2024-01-03,3482.50,5951.20
一到三列,每列一条基准:收盘点位(软件按相邻两行换成日收益)或日收益(小数或带 % 号);与收益重叠不足 250 个交易日不检验。
没有指数文件?用你自己的数据源下载
最多选 3 个,按你放入的收益文件的日期范围取。下载要连网,十几秒到一分钟;基准数据由服务器代为向数据源取,你的 token 只用于本次请求,不保存、不记日志;软件不随带指数数据。要留着复跑,就点「保存这份基准」。
研究自述(可选,写进研究档案)
体检只能检验数据;钱从哪来、什么情况下认输,要你自己先想清楚。这里填的内容原样收录、标为「未经验证」,软件不核实也不替你补写。不填的视角会显示为「未知」。
授权(收费功能)
免费体检中 · 收费功能需授权码免费体检不需要授权码。盯盘、历史报告保存、下载基准、自带基准、实盘记录模式报告需要授权码;日卡 9.9 元、月卡 249 元、年卡 1399 元,详见购买与授权页。
免责声明要点:不接账户、不下单、不荐股、不承诺收益;输出不是投资建议;投资风险自负。