您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 其他期货软件知识>>正文内容

Order开多单有反应,开空单却没有,奇怪! [金字塔]

  • 咨询内容:

    Call Order.Buy(1,1,0,0,"IF07","ZJ","",0)  '市价开多单

    Call Order.BuyShort(1,1,0,0,"IF07","ZJ","",0)  '市价开空单

     

    这两个指令,一个是开多单,一个是开空单,使用CTP平台,开多单指令正常执行,非交易时间可以看到“该席位未处于交易状态”,开空单指令却没有反应,交易时间开多单每次都能执行,开空单却经常不执行。

     

    同样的代码,在模拟账户下,都可以执行,交易状态都有提示,实在是令人费解。

    这段代码使用了好长时间了,我都没有发现这个问题,这两天才发现的。

     

    不知道是不是金字塔程序升级后留下的问题?

     

    另外:CTP账号下,订单状态和模拟账号也不相同,主要是Aspect和Kaiping这两个返回值,不同平台返回的值不一样,对于做VBA后台交易,要判断持仓变化情况,经常在某一个平台可以使用的代码,到了另一个平台就出现问题,程序并不出错,可是结果不对。

     

    建议:将CTP、金士达、IB不同的账号交易时返回的结果统一一下,以便于做VBA后台交易。

     

    [此贴子已经被作者于2011-6-23 16:32:33编辑过]

     

  • 金字塔客服:

    建义打开下单日志,看看BuyShort指令是否已经发送到服务器

    Aspect和Kaiping这两个返回值应该是一样的吧,你看到哪些地方不一样了?

     

  • 用户回复:

    VBA后台交易哪有下单日志呢,从交易状态小窗口就可以看到,没有发送到服务器的。

    多单就发送了。我在开空单的指令前后分别放上Application.msgout指令显示信息,都显示了,说明指令是执行了,可是就不送到服务器。

     

    Aspect返回的值是统一的,就是Kaiping的值,不同的平台不一样。

    模拟账号平仓时,kaiping在两条记录里分别有2、3两个值,而在Ctp平台下,平昨为1,平今为2,IB平台我没有账号,没有测试。

    Status返回值也不相同,模拟账号上返回submitted,filled,CTP上返回submitted,filled,tradeing.

     

    同样的代码,在股指上可以正常提取持仓信息,而在RB上,平仓之后持仓信息不会更新,需要再次单击刷新持仓才可以。

    搞得人都要疯了。

     

     

    [此贴子已经被作者于2011-6-23 22:44:20编辑过]

     

  • 网友回复:

    今天用

    Call Order.BuyShort(1,1,0,0,"IF07","ZJ","",0)  '市价开空单

    单独这一条语句测试,没有出现过异常

     

  • 网友回复:

    不知道什么时候出现问题,经常是你要测试的时候,好用,可是用于实盘就掉链子,我是用VBA做的管理持仓的,比如:设定好回撤3点止盈,可是有时能执行,有时不能执行,导致我该赚到的钱没有赚到。

     


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容