Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共9 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:Order开多单有反应,开空单却没有,奇怪!

1楼
guotx2010 发表于:2011/6/23 16:16:20

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编辑过]
2楼
王锋 发表于:2011/6/23 19:18:33

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

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

3楼
guotx2010 发表于:2011/6/23 22:42:37

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编辑过]
4楼
王锋 发表于:2011/6/24 9:27:06

今天用

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

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

5楼
guotx2010 发表于:2011/6/25 0:15:07

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

 

6楼
王锋 发表于:2011/6/25 0:33:44

似乎有矛盾,你说的是止赢未执行,那应该是平仓动作。但是BuyShort是开仓的

7楼
一亩三分地 发表于:2011/6/25 0:47:58
咱曾经几个月日内波段用order下单,没有失手过。说明实盘交易金字塔的可靠性还是不错的。是不是后续版本引入了bug就不太清楚了。
8楼
guotx2010 发表于:2011/6/25 14:23:39
我再继续找寻问题的答案吧。程序化之路走得好辛苦呀。
9楼
allanhoo 发表于:2013/4/4 11:47:02
我估计是你资金不够,市价开单要涨跌停保证金!
共9 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.03516 s, 2 queries.