然后根据规则形成持仓:从发生事件的T日起,持有到T+3。
在形成持仓的时候,一般会对备选股票有所限定,比如我的限定一般如下。限定的原因是希望事件策略回测的股票本身具有较好的适用性,是真实可以交易的标的。
1. 在观测期至少上市了 6 个月,在观测期至少交易 10 天,剔除所有北交所的股票
2. 以交易额衡量流动性,以 A 股流通股本衡量市值
3. 取流动性、市值和股东户数都在前 95% ,且股票价格在前98%的股票的交集(univ_research),与指数成分股(hs300, zz500, zz1000, sz50)的并集
4. 即univ_research | hs300 | zz500 | zz1000 | sz50
形成的持仓数据概览如下,一共有2587个交易日(10年),平均一天是2-3个票。
接下来对持仓进行回测,由于持仓数量很少,所以这次我们计算绝对收益。一些回测时的假设如下。
1. 每天所有标的都是平均持仓,如果当日无持仓,则空仓
2. 涨跌停和停牌均不交易
3. 使用0930到0959的vwap价格作为买卖成交价
4. 佣金万2,印花税千1
回测结果如下。
看到这个10年接近10倍的结果是不是特别心动?先别着急,一般来说,结果这么好的策略,如果不是回测有问题,就是逻辑或者数据出了问题。我们来检查一下。
很快就发现有个很细节的问题,很多信号的入库时间其实不全是开盘前,而是盘中或者盘后不定时入库的。这就导致我们回测时假设的交易时间和价格不对了。
按照是日频信号的假设,把当天触发的信号,改到下一个交易日开始建仓交易,仍然是持有3天,重新回测如下。一下子少掉了接近70%的收益,这基本可以推断出这个信号是当天大涨之后,就会触发的概率很大,而且大部分的收益都在第一天结束了。
做到这里,一个基本的回测就做的差不多了,后面当然还可以加一些其他的条件进行筛选,不过基本上是一个数据挖掘的过程,没有太多经济学的背景了,所以我个人判断也不是那么“健壮”,就不继续往下写了。