其他分享
首页 > 其他分享> > 商品期货的OpenInterest和FMZ回测撮合机制

商品期货的OpenInterest和FMZ回测撮合机制

作者:互联网

记录一些商品期货程序化交易时学习的概念与问题思考,对于初学者入门时概念理解应该会有点帮助。


商品期货的OpenInterest

商品期货行情数据中包含一个OpenInterest字段的数据,经常有用户咨询这个数据如何获取,获取是非常简单的。在此之前,我们先给还不清楚这个OpenInterest概念的同学讲解一下,什么是OpenInterest即:未平仓量。


未平仓量是指市场当时存在的契约口数,举个例子:如果当前rb2105螺纹钢2105合约所有多头持有100手,空头也持有100手,未平仓量为100手。此时如果新增一个1手开多仓订单,新增一个1手的开空仓订单,这两个订单撮合成交就形成了一手持仓,未平仓量变动为101手。我们使用一个表格来理解,买卖交易对于持仓量的影响:

ba0f9dd2c4af9f38f181669d8a830e88.png


未平仓量这个数据对于交易者心理的体现

每一个持仓数量的增加,都需要多头和空头交易者的参与,看多的交易者认为价格会上涨,所以下单开多仓。看空的交易者认为价格会下跌,所以下单开空仓。当下的订单被撮合成交时,未平仓量就增加。一个、两个这样的交易者可能不足以推动价格变动,但是成千上万的交易者同时进行此类行为,他们将对价格的变动产生一定影响。


如果多空双方分歧增大,都认为价格将往自己有利的方向进行,可能都会向各自的交易方向上继续加码。反之,如果都认为行情将对于自己不利的方向发展,也都会平仓。未平仓量也会随之下降。这些心理、预判也可以由一个表格来表达:

a46cede9bc1927cfbc2ecb8bdfdfd0a8.png


不过这也仅仅是从盘面数据上对行情做的预判而已,也只是作为行情的参考信息,市场的变化是复杂的、难以捉摸的,对于市场行情的规律来说也不是一成不变的。


用机器人测试时的策略代码:

3b6b97632f7cb320c68f8470cc03754b.png


拿到数据

106bbfc0d307cf75957c3fa8d6b5e4b7.png


FMZ回测撮合机制的思考

最近有朋友在做商品期货回测的时候有一些困惑,比如在盘口挂一个手数特别大的订单,为什么会一下就成交了,注意说的是回测系统。所以就举个例子:

9db84d25f8e6e46829e3b21ab31ab490.png


回测运行结果:

539ba907a58b8b24fea0134a0a809771.png

可以看到运行日志,开始根据盘口买一的价格下了一个订单,数量是10000手,价格就是当前的买一价格。但是在一秒之内就全部成交了。打印下一次的行情,可以看到价格已经变为:

85e4a0a8e616d912ba64207b49b4d490.png


可以看到卖一价格已经低过了下单的买入价4346。这个就是回测系统的过价成交机制,可能有的朋友会问了:“为什么你下10000手这么大量的订单,都能完全成交,盘口有那么多量么?”


这种情况是由于这种过价机制的设计,为何要这样设计是因为历史行情回溯的回测系统是不可能完全还原当时行情发生时整个市场的实际交易情况的,这也是常说的回测系统不可能100%模拟还原真实市场的原因之一。


本例子中,盘口挂了一个大额买单,是否挡住了价格从:

7735cbea660c5de2aa1bfe9864d52039.png


下滑到:

c814b44ee6de26357e163f881dd9cbde.png


呢?

显然回测系统不能设计成让这个大额买单挡住下跌,如果挡住了,那么后续的行情就变了,就不是历史行情重放了。所以回测系统要设计成不考虑策略参与交易影响市场,影响行情的模式。这个就是设计为过价成交的原因,所以就有了以上的回测情景。虽然盘口订单量不足,但是价格过了,就默认为有足够的新订单把阻碍行情变动的订单都吃掉了,所以全部成交了。


标签:FMZ,平仓,盘口,订单,测系统,回测,OpenInterest
来源: https://blog.51cto.com/u_13020291/2757034