如何有效规避程序化交易的滑点?

首先说说什么是程序化交易中的滑点?我眼中程序化交易中的滑点就是,实际成交价格与你的期望价格之间的点差。可以给出一个滑点的计算公式:

滑点 = 行情tick级别波动速度 * 网络延迟时间

行情并不是产生滑点的原因,因为行情永远是波动的。而在模拟盘和历史回测中,由于网络没有任何延迟,滑点也就不会产生(但行情在这个时候依然会有波动,却不会产生滑点),在模拟盘中,如果对每一张单子都设定止损止盈,就不难发现,每笔交易中激发的止损或止盈都是100%按照你期望价格出现的。

按照上述计算公式,行情的波动,你是无法左右的,但是网络延迟时间,却是你可以把控的。一定要清楚,你在你电脑上看到的行情,是重播而不是直播,而程序根据这一行情下发的指令,中间也需要传递的时间,才能生效。所以行情波动速度大以及网络延迟严重,会加大滑点的影响。而这一影响,其实对小周期交易级别甚至会产生颠覆性的结果。

规避滑点的影响,可以采取以下三条道路:

1.加大程序化交易的级别

在程序化交易的过程中,大周期的交易级别,其平均盈利点数和亏损点数必然大于小的交易级别。如果一个大级别的模型是平均盈利50点,平均亏损30点,而小级别是平均盈利5点,平均亏损3点,在历史回测和模拟盘中,两者看不出什么大的区别,都是可以取得稳定盈利的模型,但是实盘中,就会截然不同,前者一定比后者有效的多,因为滑点的尺度,和平均盈亏点数,不在一个数量级。

2.降低程序化交易过程中的网络延迟

采取一切办法,寻找连接程序化交易服务器最快的途径,降低网络延迟。

3.规避行情波动速度快的时间段

比如针对非农,就可以采取完全规避的做法,全部清仓的时间保持在数据公布15分钟前。你是无法左右行情的波动速度的,但是想要躲避开还是很好做到的,对于精确到秒的非农公布时间,这个时间我们不持仓,就算再大滑点的,也根本影响不到我们。

根据上述内容,对计算公式两个乘数进行调整而降低或者规避程序化交易中的滑点是第二和第三点,而第一点,只是使得降低滑点的影响效果而不是降低滑点,我们的收益率曲线率根本不会受到影响。程序化交易中的滑点有的时候还可以增加你的收益,这需要我们对开单和平仓的方式有一个更好的理解。

总而言之,如果我们用的是逆tick级别的势的开单方式,那滑点对我们是有好处的,如果我们用的是顺tick级别的势的平仓方式,滑点对我们也有好处,此时,网络延迟较大对我们来说,倒是一件好事!

比如靠回踩方式去下单,还有靠固定点数的止盈,我们和滑点都可以成为朋友。当我们有两个以上的交易主机的时候,就需要去甄别所有的下单和平仓,如果滑点对我们有利,则用慢速网络主机去操作这些指令,如果滑点对我们不利,则要将这些指令拆分到快速网络主机去操作。

FeiyangEA开单方面,回踩方式达到六成以上,所以最好用国内慢速网络主机去开单,而对于平仓方面,都是滑点对程序化交易中不利的方向,所以目前都是由美国快速网络VPS负责平仓操作。这些改进,使得同期历史回测不如实盘的成绩,从而确保了,实盘与回测一致的高度,这个前提是程序化交易中最为重要的,否则根本无法做出交易模型的编制和优化。

拓展阅读:

1.一个量化策略师的自白(好文强烈推荐)

2.市面上经典的量化交易策略都在这里了!(源码)

3.期货/股票数据大全查询(历史/实时/Tick/财务等)

4.干货| 量化金融经典理论、重要模型、发展简史大全

5.从量化到高频交易,不可不读的五本书

6.高频交易四大派系大揭秘

Guess you like

Origin blog.csdn.net/weixin_42219751/article/details/103146329