以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  后台多品种  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=4554)

--  作者:stephen_mcse
--  发布时间:2010/12/23 11:31:38
--  后台多品种

公式常见问题(转):

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

 

用建议修改后的类似代码测试,  只监控一个品种,开仓可以,但平仓时只能平当前监控的品种, 另一个品种怎么也平不掉.报价用常数也不行.  不知道是什么原因.

 

预警窗口中有另一个品种的平仓信号,但监控中没有另一个品种的下单.


--  作者:大灰狼
--  发布时间:2010/12/23 12:18:46
--  
请把你修改后的代码贴过来
--  作者:stephen_mcse
--  发布时间:2010/12/23 14:06:51
--  

 

 

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没有下单.


--  作者:大灰狼
--  发布时间:2010/12/23 14:22:50
--  

交易->交易设置-》程式化交易-》然后打开日志记录功能,看看日志的记录。


--  作者:fly
--  发布时间:2010/12/24 8:55:46
--  

俺用的2.2的测的,正常的很.