有点迷茫,量化交易该怎么继续深入?
链接:https://www.zhihu.com/question/491634539/answer/2687818172
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
”回测好,实盘差“ 是个人量化一个很常见的现象 。
我从自己实战的经验来讲一下,回测与实盘 怎样做到同步。
首先 分钟级别的颗粒度 是肯定不行的,有可能最后收盘前几秒信号才出现,太失真了,我的量化系统是秒级的颗粒度。
1.量化 要不要回测 ?
做量化 有人说 不要搞回测,直接实盘跑看结果,我是很奇怪这种说法的,我的立场是回测很重要,一定要做,就是一个时序队列而已,一个py文件几百行就能搞定,我把核心代码贴出来

2.回测 和实盘 有误差的原因分析
回测和实盘 不一致 就排查呗
2.1 看有没有未来函数
例如你用了4h的某技术指标,是收盘价计算的。也就是4h 这个周期 走完了,指标向上。结果回测时,参考了这个4h的指标,相当于提前知道这个4h周期向上,所以做多 ,当然有问题。例如13:08:40 开多,结果用到了12h-16h 这个4h 收盘价的指标,相当于13点08分穿越到16点了,用到了未来的数据,这就是未来函数 。
2.2 数据处理层与核心逻辑层 两大块 , 回测和实盘 用一套。
这个很关键 ,我用keynote画个简易的图

数据加工层 与 核心逻辑层 ,无论回测 ,实盘都用同一套。 确保数据的一致性 和 逻辑的一致性 会减少很多问题。
实盘 是不会存数据的,数据信号处理一下,把特征向量的时空关键信息提取出来一直在内存中,
回测是按照秒级,把处理的特征向量数据,一秒一秒的存下来 类似这样的 15分钟增量保存一次

记得压缩一下,会省很多空间 我用的是 compression=’bz2′
保证了数据源的绝对统一。
秒级别 数据太多 序列化回测 即使再优化 都很耗时间,向量化是必然的,看你的程度,省时间就废空间,足够快与策略因子灵活找到平衡就好,这些都在 ”状态信号处理“ 扩充封装就好
2.3 滑点 用taker来解决,除非单子特别大,不然滑点不会影响大局。
如果 一个低频的策略 taker不能盈利的话,说明不是一个好的策略。
即使 maker 返点 ,如果你order盘口 撤单 再挂买一卖一,这样产生的滑点,长期算下来,不但把maker返点磨没了,还会额外亏损,不如直接taker 合适。 这个就考验策略了,回测系统ok了,在平仓那里,可以通过手续费调参,测一测。随机加上一点滑点 看回测效果。
下面上一些 实盘运行的清单 与回测的交割单
一些都是混了很多因子,我就公开几天的,估计不可能猜出来,有那本事也不屑我的策略,
用超算跑的,非常多非常多策略, 先上一个
这策略 75倍杠杆,75倍杠杆, 凯利公式算的仓位,一单 初始资金的10倍封顶。 即30u 起始资金,300u一单封顶。 7个月300倍,没看错7个月 300倍,回测收益曲线是不是看的非常爽
7个月是 21年11月下旬 到22年6月下旬
这就是成功的第一步。

前100倍次操作 看着很平放大了是这样的

当我们不赌命,假设是币圈大佬 这个策略 放5000u, 1%仓位,一单400u封顶,曲线就会变成这样。

是不是好看多了,仓位就是风险,资金量越往上 一单仓位占比越小 收益曲线自然就更稳定。
按照这个币圈大佬的仓位逻辑,同一个策略,又回测了6月初 到9月中旬的,收益结果如下图

ok 重头戏来了,实盘!
毕竟杠杆高啊,看收益曲线,1周应该有不错的表现,9.16 6点上线的 8天半,
实盘3.2倍,没看错实盘3.2倍
最关键的是,回测函数,传入实盘期间收集的数据(与之前一样 0代码改动)
回测显示的买卖点 与实盘是否一致
回测显示的买卖点 与实盘是否一致
回测显示的买卖点 与实盘是否一致
回测数据是到 9.24 13:57

后台交易截图 这个策略一共11u 初始资金(确实没钱 还有很多其他策略 ) 目前35u ,


下面是回测表格:程序启动后,第一个买卖信号,可能不是最佳买卖点,所以只进行最低开仓1张,实盘也是,rr 列 是净值

csv表格是 下午3点多 刚跑完的回测。 开单时间和上面两页 对应一下,可以发现 回测和实盘 买卖点 相差1-2秒 具体参数 止盈止损 都是超算算的,我只是给几个计划盈亏比区间,具体参数为啥是这个,我也不知道,我是真不知道。
很多很多策略 不同止盈止损也算的话,估计有几千个,
我在分享几个 实盘后的策略
小的因子变动,小止盈 一泛化可以好几个策略
止盈是 26%,把胜率做到88% 7个月130倍

币圈大佬仓位逻辑 5000u 1% 一单50u起,
400u封顶 曲线

回测,首单不是最佳买卖点 开单1张

实盘:


另一个 这个是41% 止盈,7个月175倍 胜率82%

币圈大佬仓位逻辑 ,一单总仓位1%,一单400u 封顶:

回测:

实盘


我再来一个突破策略 ,混了几个因子
7个月320倍

前45次操作放大,如下图

实盘同期的回测:

实盘:
