交易延迟函数让回测更真实

用户头像叮咚叮咛
2023-03-07 发布

在实盘交易中,我们下单后,常常会因为各种原因导致交易未能及时触发而是延后了一点。在量化交易中,大量的下单,一分钟的差别可能就是上千万的差别。正所谓失之毫厘谬以千里。为了更贴近真实的交易环境,MindGo推出了交易延迟函数,我们可以根据以往交易的经验设置延迟时间以便能够精准回测。

我们就以最简单的均线策略为例(当五日均线与二十日均线金叉时买入,当五日均线与二十日均线死叉时卖出)。我们首先看下无延时的走势图:

那我们来试试添加了延迟交易函数后的情况是怎么样的呢?假设延时5分钟交易(这个值可以根据你的交易经验自行设置)

从上面两张图可以看出,延迟了的策略比没有延迟少了10个点的收益,可见有延迟和没有延迟策略收益的差别是很大的。

那么如何在原有的均线策略里加上交易延迟函数呢?交易延迟函数的调用方法很简单,见示例。 交易延迟函数:set_trade_delay(minute) 示例:

#开盘后3分钟成交 def initialize(account,data): set_trade_delay(minute=3) 看完简单的示例,我猜你应该想到如何在均线策略里添加交易延迟函数了。对的,只需要在初始化账户里添加设置好参数的交易延迟函数即可。

交易延迟函数除了能够更好的贴近现实进行回测外,还有别的妙用比如:盘中下跌2%1分钟后买入……更多的妙用欢迎大家来社区一起讨论交流。大家快试试自己的策略,在更加贴合真实环境下回测情况如何吧!

收益&风险
源码

评论