程序化交易“高阶技巧”之期货指数映射交易,交易信号更真实

程序化交易“高阶技巧”之期货指数映射交易,交易信号更真实
点及财经,股票期货专业投机者。

前言

在往期所分享的策略,全部都是使用指数来进行回测。并且所用的发单方法,是以指数计算出的开仓及平仓价格来进行触发。

这无疑是有漏洞的!漏洞到底在哪里?请看下图:

上图是指数与主连最新价格的对比,我们发现,他们俩的价差是比较大的。

如果,当前以指数计算出的开平仓价格来进行实际买卖的话,要么信号成交不了,要么滑点代价大!至于为什么,后续会详细介绍。

作者在接下来,就以趋势线通道突破交易系统为例,分享如何通过期货指数信号来映射其主连进行交易。

"高阶技巧"之映射交易法!

所谓映射交易,简单来说就是"两个价格序列",一个负责交易信号时间节点的计算,而以另一个序列的价格在此时间节点上进行开仓。

例如,两个时间长度相等的,螺纹钢指数和螺纹钢主连两个期货合约叠加!

如下图所示:

当螺纹钢指数触发开仓信号的时候,系统不会在螺纹钢指数交易,也不以指数计算出的开仓价格进行报单。

而是指数触发信号时在期货主连上进行开平仓。

如下图所示:

小结。

上述,就主要给大家讲解所谓的“映射”是什么。其实也就是指数是开仓信号时间节点的确定,主力合约是真实交易的标的。

另外,想要实现这样的功能,量化交易平台都能做到。那么,作者就用交易开拓者TB进行讲解。

指数映射主连交易功能实现!

首先,作者在往期策略-“趋势线通道突破”交易系统进行改进。我们需要将开平仓指令及跟踪止盈函数进行修改,以适应映射交易。

1.“趋势通道突破”系统开平仓逻辑:

这个系统是以价格所形成的具有一定意义的波峰和波谷,通过下面算法得到上下轨道。

1)开仓条件(多头为例)

前两个波谷和波峰依次抬高。如果当前价格突破前一个波峰+N*ATR。满足上述两个条件,开多。

2)平仓条件

最低价跌破,AF加速算法跟踪止盈。满足上述条件,平多。

如下图所示:

2.上述策略,改进部分代码,以适应“映射交易”方法。

由于策略是在两个数据源叠加的图表中进行交易,因此需要用到“data[i]”这个前缀来获取对应的数据源。

例如,在下图中作者叠加了螺纹钢期货指数和螺纹钢期货主力合约。

上图中,灰色k线是螺纹钢主力。

1)下面是获取数据源对应价格的方法

获取数据源1,螺纹钢指数开盘价。使用 open或者data[0].open。获取数据源2,螺纹钢主力开盘价。只能使用 data[1].open

2)策略开仓部分的修改

① 策略改进1:

开仓条件中,数据源采用螺纹钢指数。而开仓指令以主力数据来进行发单。

② 策略改进2:

计算平仓条件及AF加速算法跟踪止盈线的数据源,全部修改成主力。因为,我们的平仓价格是需要根据主力的情况来计算。

3)修改后的开平仓信号,效果如下图所示:

空头信号:多头信号:

小结。

策略的改进,我们只需解决数据源之间的切换问题就可以了。也就是,data[i].open的形式进行切换,以获取对应数据源的价格。

策略回测数据统计分析

作者将改进前后的数据进行对比,看下他们之间有什么变化。

① 策略回测参数设置:

回测资金,10万。交易周期,15分钟。回测区间,上市年份至今。仓位控制,1手。滑点,1跳。手续费,1%%。

② 策略交易盈亏曲线:

1) 改进前回测数据。

2) 改进后回测数据。

小结。

从曲线上看,策略的各项指标提高了很多。

胜率和盈亏比都表现的也不是很差,分别是59%和2.73。最大亏损1356.25,最大盈利4481.17,最大回撤2386.76,总交易次数289。

变化最大的是策略的盈亏比,从1.76到2.73。其他指标的变化并不是很大。

最后

如果想要自己的交易策略信号报单及时成交,就必须这样做“映射”交易。

否则,发出的信号是不准确的。同时我们发现,指数回测和主力回测数据之间其实相差不大。

文章及策略代码仅供交流学习,切勿直接实盘。

相关