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后台交易。
- 金字塔客服:
建义打开下单日志,看看BuyShort指令是否已经发送到服务器
Aspect和Kaiping这两个返回值应该是一样的吧,你看到哪些地方不一样了?
- 用户回复:
VBA后台交易哪有下单日志呢,从交易状态小窗口就可以看到,没有发送到服务器的。
多单就发送了。我在开空单的指令前后分别放上Application.msgout指令显示信息,都显示了,说明指令是执行了,可是就不送到服务器。
Aspect返回的值是统一的,就是Kaiping的值,不同的平台不一样。
模拟账号平仓时,kaiping在两条记录里分别有2、3两个值,而在Ctp平台下,平昨为1,平今为2,IB平台我没有账号,没有测试。
Status返回值也不相同,模拟账号上返回submitted,filled,CTP上返回submitted,filled,tradeing.
同样的代码,在股指上可以正常提取持仓信息,而在RB上,平仓之后持仓信息不会更新,需要再次单击刷新持仓才可以。
搞得人都要疯了。
- 网友回复:
今天用
Call Order.BuyShort(1,1,0,0,"IF07","ZJ","",0) '市价开空单
单独这一条语句测试,没有出现过异常
- 网友回复:
不知道什么时候出现问题,经常是你要测试的时候,好用,可是用于实盘就掉链子,我是用VBA做的管理持仓的,比如:设定好回撤3点止盈,可是有时能执行,有时不能执行,导致我该赚到的钱没有赚到。
相关文章
-
没有相关内容