大客户由于资金量大,满足模型条件时如果一次下单手数过多很可能无法成交或直接将价格打穿。通过加载自己编写的分批算法交易模型,可在下单时由系统自动拆分成合适的小单分批委托,也可由算法交易模型监测价差过大时是否放弃后续委托。源码如下:
//大单拆分 Data data0:"m1709"; Vars Numeric n;//大单手数 Numeric Pn;//分批数量 Global_Numeric YN;//已委托数量 Global_Numeric PP;//第一笔开仓价格 Numeric 开仓条件; Begin n=20; Pn=5; If(YN<n && YN<>0)//如果不是第一笔开仓,并且开仓数没有完成 { If(data0.Price("New")<=PP) { //如果最新价小于等于第一笔开仓价,继续开仓 A_SendOrder(Enum_Buy,Enum_Entry,min(Pn,n-YN),data0.Price("bid1")); YN = YN+min(Pn,n-YN);//记录已开仓数量 } } Else If(YN==0) { //第一笔开仓,记录开仓价,用于判断价格没有往不利方向发展 A_SendOrder(Enum_Buy,Enum_Entry,Pn,data0.Price("bid1")); PP=data0.Price("bid1");//记录第一笔开仓价 YN = Pn; } End
算法交易模型执行效果如下图所示,利用算法交易模型,将20手委托拆分成4批委托,每批5手。
