回测踩坑记:涨跌停、T+1 和费用口径,少算一样结果全变
【摘要】 回测信号没问题也可能全错:数据更新、涨跌停与T+1、费用口径和定义取错,都会让结果失真;先统一口径、再看收益率。
刚开始自己写回测的时候,我以为只要把买卖信号写对,结果就可信。跑了几轮才发现,信号本身没问题,死的全是口径。
第一个坑是数据更新。我的回测一开始只维护 656 只大盘股,后来想扩到全市场 4935 只,才发现有 2068 只停在 9 月 30 日、2349 只停在 10 月 15 日——信号是按旧数据算出来的,看着漂亮,全是假的。后来加了全市场回填,数据口径统一了,策略的真实表现才露出来。教训很简单:跑策略之前,先查一遍每只票的最后更新日期。
第二个坑是涨跌停和 T+1。A 股涨停买不进、跌停卖不出,今天买明天才能卖,这些规则不写进引擎,胜率会被系统性高估。还有 ST 票的 5% 涨跌停,我一开始也没单独处理,小盘回测里这是个不能忽略的口径。现在我的做法是:涨跌停、停牌、T+1 全部按真实规则处理,宁可少算几笔信号,也不用假信号充数。
第三个坑是费用。佣金万 2.5(最低 5 元)、卖出印花税 0.05%、过户费万 0.1,单笔看着都不大,但短线策略一年几百笔下来,费用能吃掉一大块收益。不算费用跑出来的年化,实盘根本复现不了。
还有一次是定义取错了:策略的第一版把买点定义写偏了,测出来全是假信号,后来重写定义、重新跑才作数。那次之后我立了个规矩:先把规格(定义、确认条件、离场)写清楚再开跑,跑完先审计定义对不对,再看收益率。
回测这东西,代码不难,难的是口径。信号可以慢慢优化,口径错了,优化全是白搭。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)