818期货学习网 > 期货书籍 > 期货策略(中) >

盘口主动型算法交易指令流

来源:未知

投资者使用算法交易的主要目的有两个:一是要更有效地交易,防止自己的交易在完成前就对市场造成影响,发现市场中隐藏着的交易对手;二是通过合理选择买卖时机,减少买入成本、增加卖出收益,获取超越竞争对手的Alpha。

算法交易主要分为两个方向,主动型算法和被动型算法。主动型算法也叫机会型算法。这类交易算法根据市场的状况做出实时的决策,判断是否交易、交易的数量、交易的价格,等等。而被动型算法也叫结构型算法或者时间表型算法交易,主要是按照一个既定的交易方针进行交易。

根据投资的目的不同,可以选择主动型算法或被动型算法。如果投资人希望在尽量短的时间内进行交易,需要使用偏主动型的算法交易;如果希望交易必须全部完成,需要使用偏被动型的算法交易。

算法交易对我们既是陌生的也是熟悉的。一方面优秀的算法的编制比较复杂,还需要硬件软件的配合,另一方面,算法其实在我们日常交易中,也会不自觉地采用相关的理念,比如分批交易、频繁挂撤单等。很多短线炒手只习惯于用手动方式进行交易而非使用机器自动交易,是因为还没有能把自己的算法模式程序化、标准化。

2010年下半年,各交易所积极开展了针对市场异常交易行为的监管,并将各品种的交易手续费从日内单边收取改为双边收取。其中就有对频繁挂撤单的监管要求,主要是整顿出于非成交目的的挂撤单行为。这样的监管一定程度上限制了算法交易的发展。另一方面,由于交易成本的上升,对客户长期盈利能力构成了很大影响,非常需要用某种方式降低交易成本,特别是短线交易成本。而算法交易能够大大降低短线交易成本。从这个意义上来说,算法交易将有巨大的发展空间。

无论是大单买卖还是小单买卖,算法交易都能对成交产生帮助。我们现在设计一个小单盘口主动型算法交易指令流:

假设盘口买一价为B1,,卖一价为S1,买一挂单量为Vb,卖一挂单量为Vs,需要成交量为Vd,每秒市场成交量是Vm,以1秒为最大成交延迟。

(1)假设现在的需求是必须买入1手,以盘口最优惠的价格。我们可以这样来设计:

1)如果Vs≤Vm,报S1买;

2)如果未能成交,并且卖一价变成S1+1,Vs≤Vm)报S1+l买;

3)如果仍然未能成交,循环2)依次把委托价变成S1+2,S1+3,•••S1+n;

4)如果Vs>Vm报B1买;

5)满足4)的前提下,如果未成交时,Vb≤Vm,则撤单改报B1-1买;

6)如果5)之后Vb>Vm,则再撤单报B1买;

7)如果5)之后,买一价变成B1-l,Vs≤Vm,报S1-1买;

8)如果买一价变成B1-1,并且Vb≤Vm,撤单改B1-2买;

9)如果买一变成B1-2并且仍然Vb≤Vm,循环8)依次把委托价变成B1-3,B1-4,…B1-n;

(2)如果需要成交的数量Vd不止1手,但是小于Vm/2,则更为复杂一点,要修改挂单量的买卖条件:

1)如果Vs≤Vm+Vd,报S1买;

2)如果未能成交,并且卖一价变成S1+1,Vs≤Vm+Vd,报S1+1买;

3)如果仍然未能成交,循环2)依次把委托价变成S1+2,S1+3,...S1+n;

4)报Va>Vm+Vd,报B1买;

5)满足4)的前提下,如果未成交时,Vb≤Vm+Vd,则撤单改报B1-1买;

6)如果5)之后Vb>Vm+Vd,则再撤单报B1买;

7)如果5)之后,买一价变成B1-1,Vs≤Vm+Vd,报S1-l买;

8)如果买一价变成B1-1,并且Vb≤Vm+Vd,撤单改B1-2买;

9)如果买一变成B1-2并且仍然Vb≤Vm+Vd,循环8)依次把委托价变成B1-3,B1-4,...B1-n;

(3)如果需要成交的数量大于Vm/2,则还需要结合被动型算法。此处不再赘述。

算法的指令由于复杂多变,短期可能就会有频繁的挂撤与拆单行为,一般人的反应速度是跟不上盘面的变化的,所以要借助电脑程序,让指令流能够自动执行。关于做市商的算法体系,我们在本书第七篇“流动法则”中会再作探讨。

期货手续费【与交易所同步更新】
期货保证金【与交易所同步更新】
猜你喜欢
分享
关闭