去年帮公司算量化策略的回测参数,翻交易所数据翻到凌晨三点,才搞明白a股一年有多少个交易日根本不是脑子里默认的250天,之前拿着这个数算夏普比率,被部门老周骂了整整半小时。

最开始做回测的时候图省事,直接按一年52周每周5天扣,算出来260天就往上套,结果回测出来的年化收益和实盘跑出来的差了快8个点。当时还以为是策略参数没调对,反复换因子、改止损线折腾的一周多,把显示器旁边的速溶咖啡罐都喝空了两罐,数据曲线还是歪歪扭扭对不上。

A股交易日的扣减逻辑

后来才反应过来,自己漏了最关键的一环:调休补班的周末,上班的人要打卡,A股是照常休市的。上交所每年年底会发下一年度的休市安排公告,就拿2024年来说,全年扣掉104个周末,再叠加元旦1天、春节4天、清明1天、劳动节2天、端午1天、中秋国庆连休5天,最后算下来刚好242个交易日。之前用的250天,是早年券商研报里的粗略估算值,每年差个三五天很正常。

同组的朋友阿凯之前跟我犯一样的错,他自己做小账户定投,算年收益的时候直接按250个交易日算预期,结果2024年实际下来定投份额少了快3天的买入量,他还以为是券商偷偷扣了手续费,拉着交割单一笔一笔对了俩晚上,最后发现是自己记的交易日数不对。

年份实际交易日数粗略估算值与估算差值
2022年242天250天8天
2023年242天250天8天
2024年242天250天8天

别拿研报里的旧数套新一年的账。

其实很多人不知道,遇到临时交易所公告的情况还会临时休市。

之前有几年碰到极端天气或者重大活动安排,休市安排比公开公告的多出来半天,这种情况虽然少,但算长期回测的时候差一点,复利下来结果就差很多。

算交易日数最省心的办法

折腾好久才搞明白,根本不用自己拿着日历一天天勾,交易软件里随便拉个上证指数的年K线,数一下当年有多少根日K,那就是实打实的交易日数,连临时休市的情况都给你算进去了。我后来算回测参数的时候,就直接拉前十年的日K数一遍,取个平均值,差不多243天上下,比自己对着日历算靠谱多了。

那天晚上改完参数已经凌晨四点,电脑里的回测曲线终于和实盘对上了,阿凯在群里发了个苦笑的表情,说他明天就去把定投里按250天算的预期收益改成242天。