以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  3.00版本和3.031版本,后台运作不同  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=57818)

--  作者:deni977
--  发布时间:2013/10/21 23:32:22
--  3.00版本和3.031版本,后台运作不同

一不小心点击了升级,程序升级到3.031版本,后台程序如下:

 

Xhold:=STKINDI(\'IF00\',\'AC09BY07.Xholding\',0 ,1, 0);                           //图表程序的虚拟持仓 ,在图表程序上是这样的  Xholding:=holding;

TBUF:=DYNAINFO(207)-(INTPART(DYNAINFO(207)/100)) *100,nodraw; //当前秒

Stime:tbuf,nodraw; 
 //实盘纠错 
  if STIME> 0 && STIME<=3 &&  Barstatus=2   then begin           //每分钟开始3秒纠正仓位同步

   //虚空实多

   Pdprice:=DYNAINFO(  7)-0.2; 
   Tsell(Xhold<0 && Tholding>0,0,lmt,Pdprice); 
   KKprice:=DYNAINFO(  7)-0.2; 
   Tbuyshort(Xhold<0 && Tholding=0 ,1,lmt,KKprice);
   // 虚多实空

  Pkprice:=DYNAINFO(  7)+0.2;
 TSELLSHORT(Xhold>0 && THOLDING<0 ,0,lmt,Pkprice); 
 KDprice:=DYNAINFO(  7)+0.2;
 Tbuy(Xhold>0 && Tholding=0,1,lmt,Kdprice); 
 //不持仓

 Pkprice:=DYNAINFO(  7)+0.2;
 TSELLSHORT(Xhold=0 && THOLDING<0 ,0,lmt,Pkprice); 
 PDprice:=DYNAINFO(  7)+0.2;
 Tsell(Xhold=0 && Tholding>0,0,lmt,Pdprice); 
  end

 后台程序工作在5秒周期下,用机构版账号登录,在3.00版本下,程序运作正常,升级到3.031版本后,程序不正常,表现为不纠正仓位同步,比如:

 

图表虚拟持仓为零的时候,手动开多1手,按正常,下一个1分钟的前3秒会纠错,平仓,实际是:在3.00版本有平仓,在3.031版本不平仓。

 

请高手给予指点,是不是软件问题? 用另外一台电脑运行3.00版本,加载后也是正常。

 

 

 
 


--  作者:lichenghu
--  发布时间:2013/10/22 9:24:05
--  
 您好,此现象测试后回复
--  作者:lichenghu
--  发布时间:2013/10/22 11:19:12
--  
 您好,本地测试!此段代码在3.031是正常运行的
--  作者:王锋
--  发布时间:2013/10/22 11:19:54
--  
检查看看你的代码是不是用了全局变量了
--  作者:deni977
--  发布时间:2013/10/22 13:54:34
--  
真实奇怪了,我再换一台电脑测试一下,看看什么情况。
--  作者:lichenghu
--  发布时间:2013/10/22 14:04:18
--  
 嗯,用DEBUGOUT输出下Xhold和tholding看下,上午用3.031正常呢!
--  作者:deni977
--  发布时间:2013/10/25 10:15:33
--  
今天多次测试,还是有问题,这个论坛能否上传录像?
--  作者:lichenghu
--  发布时间:2013/10/25 10:22:09
--  

 您好,对应的用DEBUGOUT输出下HOLDING和THOLDING,对比看下是不是HOLDING的值引用不正常。

 

本地已经用您提供的上述部分代码测试没有问题,另仔细查看下是不是对应的设置有问题

[此贴子已经被作者于2013/10/25 10:23:25编辑过]

--  作者:deni977
--  发布时间:2013/10/25 10:23:37
--  

VARIABLE:TRADEBEGIN:=91500;
VARIABLE:LASTTRADE:=145900;
VARIABLE:TRADECLOSE:=151400;
Ordvol:=1;
BN:=2.3;
Tradtime:= ((TIME >= TRADEBEGIN) && (time<=LASTTRADE));
M5A:=STKINDI(\'IF00\',\'AC09T7.TEST\',0 ,1, 0);//,colorred;
rfm5a:=ref(m5a,12);
M5BS:=STKINDI(\'IF00\',\'AC09T7.BS\',0 ,1, 0);//,colorgreen;
Xhold:=STKINDI(\'IF00\',\'AC09BY07.Xholding\',0 ,1, 0);
T5LC:=STKINDI(\'IF00\',\'AC09T7.TLC\',0 ,1, 0);
T5WD:=STKINDI(\'IF00\',\'AC09BY07.WD\',0 ,1, 0);
T5WK:=STKINDI(\'IF00\',\'AC09BY07.WK\',0 ,1, 0);
SSD:=  cross(m5a,m5bs )  ; //

SSK:=   cross(m5bs,m5a) ; //????
TBUF:=DYNAINFO(207)-(INTPART(DYNAINFO(207)/100)) *100,nodraw; //μ±?°??ê±??
Stime:tbuf,nodraw;
WinD:= (T5wd && Stime>=57);
WinK:=  (T5wk && Stime>=57);
PDcond1:= ( SSD or (ref(ssd,1)) or (ref(ssd,2))or (ref(ssd,3))or (ref(ssd,4))or (ref(ssd,5))or (ref(ssd,6))or (ref(ssd,7))or (ref(ssd,8))or (ref(ssd,9))or (ref(ssd,10)) or (ref(ssd,11)) );
Pdcond2:= STIME>3;
Pdcond4:= ref(ssd,12);//????ì??t
PKcond1:=( SSK or (ref(ssK,1)) or (ref(ssK,2))or (ref(ssK,3))or (ref(ssK,4))or (ref(ssK,5))or (ref(ssK,6))or (ref(ssK,7))or (ref(ssK,8))or (ref(ssK,9))or (ref(ssK,10))or (ref(ssK,11)) );
PKcond2:= STIME>3 ;
Pkcond4:=ref(ssk,12);
跑多:=  (PDcond1  && Pdcond2 &&  ref(LOW,1)< (rfm5a-0.1) && LOW< (rfm5a-0.3) && ((T5LC>=BN && Stime>3) or Stime>=58 )) or (Pdcond4 && Pdcond2 );
跑空:= (Pkcond1  && Pkcond2 && ref(high,1)>(rfm5a+0.1) && high>(rfm5a+0.3) && ((T5Lc>=BN && Stime>3)or Stime>=58) ) or  ( Pkcond4 && Pkcond2);
if 跑多 then begin
 Pdprice:=DYNAINFO(  7)-0.0; 
 TSELL(BARSTATUS=2 && THOLDING>0 ,0,lmt,Pdprice); 
 KKprice:=DYNAINFO(  7)-0.0; 
 TBUYSHORT( (BARSTATUS=2 && THOLDING=0 && Tradtime ),1,LMT,KKprice); //?′ê±?a2? 
end
if 跑空 then begin 
 Pkprice:=DYNAINFO(  7)+0.0;
 TSELLSHORT(BARSTATUS=2 && THOLDING<0 ,0,lmt,Pkprice); 
 KDprice:=DYNAINFO(  7)+0.0; 
 TBUY( (BARSTATUS=2 && THOLDING=0 && Tradtime),1,LMT,KDprice); //?′ê±?a2?
end
//极速止赢
if WinD then begin
 Pdprice:=DYNAINFO(  7)-0.0; 
 TSELL(BARSTATUS=2 && THOLDING>0 ,0,lmt,Pdprice);  
end
if WinK then begin 
 Pkprice:=DYNAINFO(  7)+0.0;
 TSELLSHORT(BARSTATUS=2 && THOLDING<0 ,0,lmt,Pkprice);  
end

 
 
 //实盘纠正 
  if STIME> 0 && STIME<=3 &&  Barstatus=2   then begin           //?aê?3??D£?y?ì2é2???
   //**********************Dé??êμ?à£????à?a??
   Pdprice:=DYNAINFO(  7)-0.2; 
   Tsell(Xhold<0 && Tholding>0,0,lmt,Pdprice); 
   KKprice:=DYNAINFO(  7)-0.2; 
   Tbuyshort(Xhold<0 && Tholding=0 ,1,lmt,KKprice);
   //*********************Dé?àêμ??£??????a?à
   Pkprice:=DYNAINFO(  7)+0.2;
 TSELLSHORT(Xhold>0 && THOLDING<0 ,0,lmt,Pkprice); 
 KDprice:=DYNAINFO(  7)+0.2;
 Tbuy(Xhold>0 && Tholding=0,1,lmt,Kdprice); 
 //*********************Dé??êμ3?2?£????à??
   Pkprice:=DYNAINFO(  7)+0.2;
 TSELLSHORT(Xhold=0 && THOLDING<0 ,0,lmt,Pkprice); 
 PDprice:=DYNAINFO(  7)+0.2;
 Tsell(Xhold=0 && Tholding>0,0,lmt,Pdprice); 
  end
 
 
 
  //?à?y3?2?êyá? 
  Tordvol:=Tholding;
  TDC:=TBUYHOLDING(0);
  TKC:=TSELLHOLDING(0);
 
  if ( Tbuf<3 && Tbuf>0 &&  Barstatus=2) then begin //3·?ú?ùóD±¨μ¥
   撤单:=TCANCEL(1,0);
   Pdprice:=DYNAINFO(  7)-0.2; 
   Tsell(Tordvol>Xhold,(Tordvol-Xhold),lmt,Pdprice);
   Tsell( (TDC>0 && Xhold<0),TDC,lmt,Pdprice);
   Tsell( (TDC>0 && Xhold>0 && TDC > Xhold),(TDC-Xhold),lmt,Pdprice);
   PKprice:=DYNAINFO(  7)+0.2; 
   Tsellshort(Tordvol<Xhold,(abs(Tordvol-Xhold)),lmt,Pkprice);
   Tsellshort((Tkc<0 && Xhold>0), TKC,lmt,Pkprice);
   Tsellshort((Tkc<0 && Xhold<0 && Tkc<Xhold), abs(Tkc-Xhold) ,lmt,Pkprice);   
  end
 
 //2???êyá?3?3?
 
 if ( abs(Tordvol)>1 ) then begin
   撤单:=TCANCEL(abs(Tordvol)>1,0);   
   Pdprice:=DYNAINFO(  7)-0.2;    
    Tsell( (Xhold>0 && Tordvol>0 && Tordvol > Xhold),(Tordvol-Xhold),lmt,Pdprice);  
   PKprice:=DYNAINFO(  7)+0.2; 
   Tsellshort( (Tordvol<Xhold && Xhold<0 && Tordvol<0) ,(abs(Tordvol-Xhold)),lmt,Pkprice);
  end
 
 
 
 
//ê??ì????è?2???2?
IF ((TIME >= TRADECLOSE) AND (THOLDING <> 0)) THEN BEGIN
 IF (THOLDING < 0) THEN BEGIN
  PKprice:=DYNAINFO(  7)+0.2;
  TSELLSHORT(1,0,LMT,PKprice,1); 
 END
 IF (THOLDING > 0) THEN BEGIN
  PDprice:=DYNAINFO(  7)-0.2;
  TSELL(1,0,LMT,PDprice,1); 
 END
END

 


--  作者:deni977
--  发布时间:2013/10/25 10:24:27
--  
以上是我的后台程序的全部代码,在3.01版本一直正常,在3.031就是不纠正持仓