以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  [求助]金字塔公式系统和行情系统是不同的独立线程吗?  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=3127)

--  作者:小小虾米
--  发布时间:2010/10/6 22:29:37
--  [求助]金字塔公式系统和行情系统是不同的独立线程吗?

我的基本代码如下:

 

1       IF TBuyHolding(1)>0 THEN
2       BEGIN
3           IF 满足开空仓条件 THEN
4           BEGIN
5               WHILE TBuyHolding(1)>0 DO
6               BEGIN
7                   TSell(1,0,LMT, 卖一价-MINDIFF);
8                   Sleep(1000);
9                   IF TBuyHolding(1)=0 THEN
10                      break;
11                  TCancel(1,0);
12                  WHILE( TIsRemain(0)>0 ) DO
13                  BEGIN
14                      Sleep(100);
15                  END
16              END
17              WHILE 价格在可接受的开仓范围内 AND TSellHolding(1)=0 THEN
18              BEGIN
19                  TBuyShort(1,1,LMT,卖一价-MINDIFF);
20                  Sleep(1000);
21                  IF TSellHolding(1)>0 THEN
22                      break;
23                  TCancel(1,0);
24                  WHILE( TIsRemain(0)>0 ) DO
25                  BEGIN
26                      Sleep(100);
27                  END
28              END
29          END
30      END

 

我的问题如下:

1 如果交易系统和行情系统是独立的线程,则第7、19行的代码,在两次检测之间,价格已经发生了变化,可以追击当前价格平仓和开仓;反之,如果交易系统和行情系统不是独立的线程,行情价格不能更新,每次开仓点都是一样,可能会在很久以后(振荡行情)才开仓成功(单边行情可能导致死循环);

2 现在是轮询方式,平仓结果和开仓结果需要等待一定时间才能知道,有没有其他方法在交易成功后第一时间知道结果?

 


[此贴子已经被作者于2010-10-6 22:47:43编辑过]

--  作者:admin
--  发布时间:2010/10/7 1:24:49
--  

参考 http://www.weistock.com/bbs/dispbbs.asp?boardid=2&Id=49 问题36

此外,不建议在后台自动交易里使用循环来自己处理,否则容易出现你说的情况,此外效率也不见得提高,这种程序用户自己本身也很难去控制。

建议去掉循环,将固定轮循时间设为1秒,通过不断的检测来达到你的目的