1. 正确的做法:复权数据只负责“出信号”,真实价格负责“做交易”
    量化交易的标准流程是分离的:

信号产生(在虚拟层):用前复权主连数据保持趋势连贯,计算出准确的技术指标和信号点位(例如:当复权价向上突破20日高点X时,产生开多信号)。

交易执行(在现实层):当信号被触发的那一毫秒,立刻查询当前真实主力合约的盘口。以真实合约的对手价(或你设定的限价)直接下单。 止损、止盈和追踪价位,也全部转换为真实合约的真实价格来设置。

在你的回测系统中,也需要模拟这个过程:让信号基于复权价格产生,但模拟的成交价要使用当时主力合约的真实价格(也就是简单拼接数据里的价格)。这样得出来的回测绩效,才是在现实中可以复现的。

请问一下我在vnpy使用复权后的主力连续合约回测的时候,它的成交价也是用的复权后的价格吧?
这样计算出来的收益就不对了。
是这样吗?如何解决这个问题呢?