以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  挂单超过N秒重新挂单问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=87253)

--  作者:eonianhouge
--  发布时间:2015/11/13 10:20:46
--  挂单超过N秒重新挂单问题
你好,我在代码中使用挂单超过N秒重新挂单的模块来执行无限次追单的功能(不是金字塔系统自带的追单功能),但是为什么只会进行2次的追单,第三次追单就只撤单,撤完挂单以后就不再挂单了,代码部分如下,应该不会是代码问题,不然第一次撤单都不会执行了。这个是为什么?
是否金字塔对开平仓函数的执行机制有限制呢?


if TSUBMIT(0)>挂单N秒重挂  or ( (CURRENTTIME=090030 or CURRENTTIME=000030 ) and TREMAINQTY(0 , \'\',\'\' )<>0 ) then  //挂单超过N秒未成交完  ,按照现在排队价追单  或者在30秒时刻重新挂单   //limitr   MARKET   and TSUBMIT(0)=0 
begin                   //
if TSUBMIT(4)>0 then //原来挂什么单,撤单重新按照现在排队价挂 
begin
未成交空平单数量:=TREMAINQTY(4 , \'\',\'\' );
TCANCELex(1,4 ,\'\',\'\' ); if Islastbar then  begin DEBUGFILE(\'D:\\TEST.TXT\'  ,  \'444444N秒重挂\'&numtostr(未成交空平单数量,0),0); end; 
while TREMAINQTY(4 , \'\',\'\' )<>0 do done:=1;
tsellshort (1, 未成交空平单数量,lmt,DYNAINFO( 28)),NODRAW;
end;
if TSUBMIT(2)>0 then 
begin
未成交多平单数量:=TREMAINQTY(2 , \'\',\'\' );
TCANCELex(1,2 ,\'\',\'\' ); if Islastbar then  begin DEBUGFILE(\'D:\\TEST.TXT\'  ,  \'222222N秒重挂\'&numtostr(未成交多平单数量,0),0); end; 
while TREMAINQTY(2 , \'\',\'\' )<>0 do done:=1;
tsell (1, 未成交多平单数量,lmt,DYNAINFO( 34)),NODRAW;
end;
if TSUBMIT(3)>0 then 
begin
未成交空开单数量:=TREMAINQTY(3 , \'\',\'\' );
TCANCELex(1,3 ,\'\',\'\' ); if Islastbar then  begin DEBUGFILE(\'D:\\TEST.TXT\'  ,  \'333333N秒重挂\'&numtostr(未成交空开单数量,0),0); end; 
while TREMAINQTY(3 , \'\',\'\' )<>0 do done:=1;
tbuyshort (1, 未成交空开单数量,lmt,DYNAINFO( 34)),NODRAW; //TBUYHOLDINGEX(\'\' ,\'\' , 2)=0
end;
if TSUBMIT(1)>0 then 
begin
未成交多开单数量:=TREMAINQTY(1 , \'\',\'\' );
TCANCELex(1,1 ,\'\',\'\' ); if Islastbar then  begin DEBUGFILE(\'D:\\TEST.TXT\'  ,  \'111111N秒重挂\'&numtostr(未成交多开单数量,0),0); end; 
while TREMAINQTY(1 , \'\',\'\' )<>0 do done:=1;
tbuy (1, 未成交多开单数量,lmt,DYNAINFO( 28)),NODRAW; //TSELLHOLDINGEX(\'\' ,\'\' ,2 )=0
end;

if Islastbar then  begin    
DEBUGFILE(\'D:\\TEST.TXT\'  ,  \'O 追单 撤单情况  TSUBMIT(1):\'&numtostr(TSUBMIT(1),0)&\'  TSUBMIT(2):\'&numtostr(TSUBMIT(2),0)&\'  TSUBMIT(3):\'&numtostr(TSUBMIT(3),0)&\'  TSUBMIT(4):\'&numtostr(TSUBMIT(4),0),0);  
DEBUGFILE(\'D:\\TEST.TXT\'  ,  \'P 实际持仓===指定账户买持\'&numtostr(TBUYHOLDINGEX(\'\' ,\'\' , 2),0)&\'    指定账户卖持\'&numtostr(TSELLHOLDINGEX(\'\' ,\'\' ,2 ),0),0);  
DEBUGFILE(\'D:\\TEST.TXT\'  ,  \'P 可用持仓===指定账户买持\'&numtostr(TBUYHOLDINGEX(\'\' ,\'\' , 1),0)&\'    指定账户卖持\'&numtostr(TSELLHOLDINGEX(\'\' ,\'\' ,1 ),0),0);  
end;   //输出
end;


--  作者:eonianhouge
--  发布时间:2015/11/13 10:32:12
--  
发错区了,版主帮忙移到软件问题区去把,谢谢
--  作者:jinzhe
--  发布时间:2015/11/13 13:15:31
--  
有下单日志记录吗?