对了,之前一篇讲了BackTrader的整体(非常粗略)的架构, 但是对于量化小白(没错就是我)来说连什么是回测都不清楚,只能大概意会…..
所以今天特别学习了一下什么是回测(来源于万能的知乎)
然后下面是我自己的整理
一般来说,做量化得先开发一个交易系统。那交易系统开发完了之后总得证明这个交易系统非常不错。那怎么证明呢?肯定要模拟一下交易然后看看交易结果好不好嘛。Officially的说,回测就是根据历史数据来验证交易策略的可行性和有效性的过程。做回测是希望可以用回测后的表现来评估未来实盘表现。
所以其实在做回测的时候我们已经预先假设了我们在测试这个交易系统时候的市场表现在未来会重演。那为啥要证明交易系统好不好嘛?直接假装非常nice也没人发现咯(不行,这样非常没有职业道德)。其实,如果我们有100种策略,那通过回测我们可以根据回测出的结果去筛选最好的5种交易策略。这样我们就不会把时间金钱成本浪费在不好的策略上面了。
所以如果不回测的话,不仅没有职业道德,而且很浪费嗷。
那回测的基本原则是啥?
1. 回测中策略产出的来回交易(一买一卖算一次来回)越多,回测得出的结果越可靠(robust)
2. 避免回测陷阱
3. 注意结构转移
那什么是回测陷阱啊?At first, officially, 数据窥探偏差:引用王靖一老师上课说的“水太深把握不住”。建模的原则是越简单越好、参数越少越好。所以其实为啥上课的时候老师说金融最终还是人的事情嘛,不建议用太复杂的modelling比如机器学习什么的去做预测。因为这里面东西太黑箱啦,一出错都不知道错在哪里,怎么向客户和老板交代哇…Secondly, still officially, 前视偏差:很简单,不能用未来的信息来确定今天的交易信号。比如用今天的最高价来决定今天买入啥…但你今天还没过完呢你咋知道今天最高价是啥?Lastly, 幸存者偏差:你只选择买入当前存在的股票(幸存者)。这样是不行的。比如你的策略是买入前一天狂跌的股票,但是这个股票万一跌的退市了咋整?你不就超级大损失了嘛。哦对了,还有就是规则的变化,比如交易所不准卖空但你策略中卖空,显然不符合实际嘛。
结构转移又是啥?宏观的经济形势的变化+宏观市场的变化+整个公司结构的变化。总而言之就是一个大整体结构层面的变化嘛。
最后引用知乎大佬的一句话“我们的目的不是拟合过去,我们的目的是预测未来”
所以如果平时看到一些回测方法,如果它的年收益率、夏普率啥的显然不合理,那就不用去尝试了….