以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  对后台交易,出现查询到委托单与持仓单同时存在的问题  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=61276)

--  作者:lanchongms
--  发布时间:2014/1/25 11:27:45
--  对后台交易,出现查询到委托单与持仓单同时存在的问题

【1】代码:

 

委托多单:=tremainqty(1,ac,stklabel);

持有多单:=tbuyholdingex(ac,stklabel,1);

 

【2】程序下单情况

如果目前我没有任何持仓以及委托单。

现在委托开多1手单子,在单子顺利报出去,不撤单情况下只可能出现两种情况:

1、“委托多单”=1,“持仓多单”=0

2、“持有多单”=1,“委托多单”=0

 

【3】出现的问题

在执行上述代码,输出到本地的时候会发现,有概率出现:

“委托多单”=1,“持仓多单”=1的情况

 

【4】程序出现的问题,我想到两种可能性

1、成交回报回来,对委托单-1以及持有单+1的运算没有加锁

2、程序顺序执行时候,先查询到委托多单==1,这时候刚好这瞬间成交回报过来了,持有单也==1了

 

怎么解决这个问题?


--  作者:lichenghu
--  发布时间:2014/1/26 9:59:11
--  

对应您把持有多单的代码放在委托多单的前面来进行处理

并且在工具-选项维护里的持仓刷新调小至500ms以下


--  作者:lanchongms
--  发布时间:2014/1/26 16:40:00
--  
跟代码位置没关系的啊~这个是程序的问题,
即使两个位置调转过来,发平仓单等也是会有问题的~跟时间间隔没关系,已经是500MS以下了。
[此贴子已经被作者于2014/1/26 16:41:34编辑过]

--  作者:lanchongms
--  发布时间:2014/1/26 16:46:31
--  
发开多单,如果代码调转过来,会出现“持有多单”=0,“委托多单”=0的情况;
--  作者:lichenghu
--  发布时间:2014/1/27 8:46:22
--  
对应是委托回报在接收上有延迟,持仓刷新再小点试试