以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 高级功能研发区 (http://222.73.7.161/bbs/list.asp?boardid=5) ---- Order开多单有反应,开空单却没有,奇怪! (http://222.73.7.161/bbs/dispbbs.asp?boardid=5&id=6969) |
-- 作者:guotx2010 -- 发布时间:2011/6/23 16:16:20 -- 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编辑过]
|
-- 作者:王锋 -- 发布时间:2011/6/23 19:18:33 -- 建义打开下单日志,看看BuyShort指令是否已经发送到服务器 Aspect和Kaiping这两个返回值应该是一样的吧,你看到哪些地方不一样了? |
-- 作者: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编辑过]
|
-- 作者:王锋 -- 发布时间:2011/6/24 9:27:06 -- 今天用 Call Order.BuyShort(1,1,0,0,"IF07","ZJ","",0) \'市价开空单 单独这一条语句测试,没有出现过异常 |
-- 作者:guotx2010 -- 发布时间:2011/6/25 0:15:07 -- 不知道什么时候出现问题,经常是你要测试的时候,好用,可是用于实盘就掉链子,我是用VBA做的管理持仓的,比如:设定好回撤3点止盈,可是有时能执行,有时不能执行,导致我该赚到的钱没有赚到。
|
-- 作者:王锋 -- 发布时间:2011/6/25 0:33:44 -- 似乎有矛盾,你说的是止赢未执行,那应该是平仓动作。但是BuyShort是开仓的 |
-- 作者:一亩三分地 -- 发布时间:2011/6/25 0:47:58 -- 咱曾经几个月日内波段用order下单,没有失手过。说明实盘交易金字塔的可靠性还是不错的。是不是后续版本引入了bug就不太清楚了。 |
-- 作者:guotx2010 -- 发布时间:2011/6/25 14:23:39 -- 我再继续找寻问题的答案吧。程序化之路走得好辛苦呀。 |
-- 作者:allanhoo -- 发布时间:2013/4/4 11:47:02 -- 我估计是你资金不够,市价开单要涨跌停保证金! |