公式常见问题(转):
20、对于后台程式化交易指定品种下单时填写报单价格的注意事项
例如如下代码:
if TBUYHOLDINGEX('1000','dqc09' , 1)>0 and TSELLHOLDINGEX( '1000','dqm09', 1)>0 then begin
tsell(1,1,lmt,c-2*mindiff,0,'1000','dqc09');
tsellshort(1,1,lmt,c+2*mindiff,0,'1000','dqm09');
end;
这是一段套利的代码,应该注意2点;
1、代码中自己指定下单品种后,预警监控则就不可再次把这两个品种都添加进来,因为后台交易是轮询模式的,会将列进去的品种都监控执行一遍,如上的代码如果添加了两个品种进入预警监控后,会导致重复的开平仓。解决方法是这两个品种只添加任意一只即可。
2、代码中指定的开仓价是c+2*mindiff,这样犯了致命错误,因为C是当前监控品种的最新价报价,但是下单时确是指定的另外一个品种,解决办法是使用DYNAINFO2函数,使用指定品种买卖盘价格报单。
对问题20
用建议修改后的类似代码测试, 只监控一个品种,开仓可以,但平仓时只能平当前监控的品种, 另一个品种怎么也平不掉.报价用常数也不行. 不知道是什么原因.
预警窗口中有另一个品种的平仓信号,但监控中没有另一个品种的下单.
BEGIN
TSELL(1,1,LMT,DYNAINFO2(28,'Y09')-8*MINDIFF,0,'','Y09');
TSELLSHORT(1,1,LMT,DYNAINFO2(34,'Y05')+8*MINDIFF,0,'','Y05');
END
有仓位,监控Y09,Y09可平,Y05没有下单.
交易->交易设置-》程式化交易-》然后打开日志记录功能,看看日志的记录。
俺用的2.2的测的,正常的很.