期货套利的研究--工具之2
发布时间:2021-9-27 18:10阅读:474
在上一篇文章中,我们使用了最常用的价差或比价图来研究套利,这种方法在很多商用软件里面(如文华,博易)里面也有,但不太直观。之后,我们将这种方式使用接入Simnow进行交易。发现它是连续亏损的,为什么会这样呢?因为它遗漏了非常关键的内容。
下面是在上一篇文章得到的价差K线图。这个K线图的震荡走势非常明显,按照这个图,我们非常自然地设定下面的策略:
1. 价格向上突破布林上轨做空。2. 价格向下跌破布林下轨做多。
3. 同时操作多个品种,合计保证金使用为账户资金的70%。
4. 按照布林轨道的2倍设置保护性止损。
5. 第一单做多之后,第二单必须做空(防止保护性止损被触发之后继续入场)。

上述策略在历史测试的时候绩效好得不敢让人相信,因为是假的,所以就不show出来了。而在挂账户的时候几乎每一局都是亏损的,绩效差得不敢让人相信。
为了找出原因,在程序里面加入了大量的调试信息,来检查程序的判断和实际成交的信息,这当然也是一个比较麻烦的事情,最后的结论如下:
- 套利交易涉及两个品种,为了避免只有一条腿成交,因此我们只能采用市价入场。
- 市价入场的时候,买入价和卖出价之间存在着滑点,这个滑点对目前这种套利模式的影响非常大,是这个策略的一个决定性的因素。
- 上述K线图是按照1分钟的K线制作的,对应的是最新价格,里面并不包含买入价和卖出价的信息。
似乎不太好理解,我使用下面的一张图来表示。
在实际交易的时候,我们没有办法使用最新价格成交的,最新价格是上次成交的价格,我们会在Ask价格(卖出价)上成交买单,在Bid价格上成交卖单。买入价格卖出价之间的价差被称为滑点,滑点代表着市场的成交活跃度,是交易成本的一种。
在下面这张图中,价格先上涨然后下跌,我们可以看到一波大约20元的上涨,但如果扣除滑点成本之和,实际能够获得的盈利不足8元,在另外一波15点左右的下跌中,基本上没有获得任何盈利。

你也许会说,我上面画的是一个示意图,在实际的在套利交易中,滑点成本与该不会有上面这张图那么严重吧。我要说的是,按照我后面的研究,实际交易中的滑点比我上面这张图还要严重地多,它直接导致我在之前文章中大约93%的布林信号无效(我非常庆幸还有7%的信号是有有效的)。
因此,现在的问题是:如果我挑选出两个品种,比如沪铝al2005和al2007,在扣除滑点成本的情况下,我还能使用上面的布林策略来交易吗?我实际上已经给了答案,我们仍然是可以这样交易的,只要我们有办法把93%的无效信号过滤掉就可以了。
第一步:数据获得:1. 以沪铝AL来进行研究。
2. 我们首先需要获取沪铝2019年的所有合约的名称。
3. 之后获取这些合约的完整的TICK数据。
每个合约的数量大约是200M,我检查了一下al1901的数据量,总共206万条记录。这个数据量还是非常大的。
第二步:数据预处理1. 这一步实际上是在做后续开始写代码之后发现问题,然后再回头做的工作。
2. 后续程序中碰到的问题有:
- 因为数据量太大,导致计算过程非常缓慢和低效,一次处理过程大约花费了2个小时,因为程序编写过程中也需要调试,每次运行两个小时才发现一个BUG,效率太低了,严重影响开发进程。
- 处理过程中还因为内存不足导致计算无法继续下去。
- 原始数据中含有垃圾数据,导致程序运行出错。
数据预处理实际上就是把原始数据先做一轮处理,这样,后续计算的时候不需要每次都从最原始的的数据开始计算,从而节约了时间。
第三步:数据拼接合成例如,我们要拿到al1901-1903的30分钟价差K线图为例。
1. 我们需要把这两个品种的TICK数据按照时间排好顺序。
2. 找到同一个时间,这两个品种都有TICK数据的时间段(他们有几个月是没有数据的),TICK图中也会有时候没有对应数据。
3. 按照ASK1-BID2的方式计算出一个价差品种买入价BID、卖出价ASK和最新价,这就是价差品种的新的TICK图。
4. 根据这个新的TICK图,分别拼接成30分钟的买入价K线图,卖出价K线图。我们之后的操作实际上是在操作这个新的K线图。
5. 设定有效K线的规则:卖出价>买入价(注意这条规则过滤掉了绝大部分的K线)
6. 使用某种直观的图形化的方式把它呈现出来。
下图的时间点是2018-11-21 21:30这一根30分钟K线,这段时间是这两个品种成交活跃的时间段,假设我们的入场能力特别强,可以在价差的最低价80入场(上面一部分是Ask价格的K线图),如果我们在这根K线的最高价75离场(下面一张图是Bid价格的K线图),那么,即使不计算交易成本,我们仍然会亏损5元,这就是滑点带来的损失。。

如果我们看一下6月份的情况,就知道情况更糟了,下面这张图显示这个时候交易的话,每次会亏损160-125=35元。

那么,我们应该如何检查可能的交易机会呢?
非常简单,我在Ask买入的单子然后在Bid出去的时候需要有盈利才行,因此我设定Ask-Bid >0 作为一个判断条件,把它显示在成交量上面,并且把小于0的数字拿走,也就是说,只有成交量上有值的K线,才有可能有交易机会。

我们看到2018年6月-7月一个月的时间里面,总共只有8次交易机会,这还只是理论上的最多交易机会,实际操作的时候往往还不一定能够抓到这样额机会。

而下面11月的情况就好多了,基本上一半的K线都会有机会,尽管每次的盈利机会只有1-2跳。
当然,还有一种方式就是放大K线的时间级别,把它从30分钟提到到1小时,2小时甚至日图级别,图形类似,就不再贴出来了。
因为整个计算的工作量非常大的,一轮计算时间要好几分钟,因此我只能在我自己的计算机上完成整个过程,没有办法像前一篇文章一样做一个方便的图表供大家查看了。
这边可以推荐国际十大外汇交易商之一,15年的老牌交易商,有五六个国家的监管牌照,在150多个国家都有业务,一定要找正规持牌国际券商,而且点差优惠,没有额外手续费,最低入金100美金,可以交易0.01迷你手。
本人多年经验,如果需要了解如何识别正规平台,欢迎加V咨询:15910593550(微信同电话),提供一对一服务。


温馨提示:投资有风险,选择需谨慎。

