以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  这个成交延时的问题,如何处理?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=63580)

--  作者:txin66
--  发布时间:2014/4/8 7:16:47
--  这个成交延时的问题,如何处理?

昨天提的没人回答,今天再说清楚一点,请教各位如何处理我这个问题:

我在后台程序里,1秒轮询,做一个止损程序,思路如下(只说多头);

1、程序把TBUGHOLIND(1),和程序自己记录(用 全局变量记录)的多头余仓比较,发现TBUGHOLIND(1)>多头余仓,就作为一次开多记录,记录下相关数据,比如:第1次开多的日期、时间、价格、第1次开多余仓等等;第2次、3次....以此类推;

2、当TBUGHOLIND(1)<多头余仓,就作为一次平多,按照一定的规则,找到某一个开多记录,进行平仓;

3、每次开多记录里,包含止损价格,当价格小于某次开多记录里的止损价格时,触发平多指令,并对该开多记录做平多处理;

 

现在的问题是:

比如:第1次开多的止损价格时20000,余仓1手,第2次开多的止损价格是20010,余仓2手,总多头余仓是5手,最新价格是19990。在这种情况下,我的程序是先处理第1个开多记录,去平第1次开多的那个1手余仓;但因为平多指令执行的时间有延迟,在发出平多指令后,程序会将第1次的开多余仓减为0,同时将总多头余仓减为4手,因平多指令还没执行所以实际的仓位TBUGHOLIND(1)还是等于5手;这时候程序继续执行,却变成了TBUGHOLIND(1)>多头总余仓,转而以为是产生了一次开多交易,当做开多处理了,导致整个思路混乱。

 

自己也想在平多指令发出后,等待一段时间再执行下一个语句,但会导致其他的止损的触发时间。

 

请问如何解决这个问题?

谢谢。


--  作者:jinzhe
--  发布时间:2014/4/8 9:19:57
--  
那么另外的我删掉了,在这里集中回复