以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://www.weistock.com/bbs/list.asp?boardid=4)
----  怎么修改才会顺利执行  (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=2535)

--  作者:期指新手
--  发布时间:2010/8/19 15:11:19
--  怎么修改才会顺利执行

INPUT:N(20,1,100,1);
A:=REF(OPEN,1);
B:=REF(CLOSE ,1 );
 IF A>B AND  TODAYHOLDING=0 AND TISPRVREMAIN( 0)=0  AND TIME<145500 THEN  //所有委托,持仓为0
 Tbuy(Tholding=0 and TTOTALTRADE=0 ,1,LMT,C+MINDIFF*2);     //限价开多
 IF A<=B AND  TODAYHOLDING=0 AND TISPRVREMAIN( 0)=0  AND TIME<145500 THEN  //所有委托,持仓为0 
 Tbuyshort(Tholding=0 and TTOTALTRADE=0,1,LMT,C-MINDIFF*2); //限价开空
 
DS:=IF( C-TENTERPRICE>0,C-TENTERPRICE,TENTERPRICE-C);   //间隔
JJD:=INTPART(DS/N);                                 //间隔点数

Lots:=POW(2,TNUMSEQLOSS)/2;
Lots1:=if(Lots>16,1,ROUND( Lots));                   //交易手数
  //=========================================================== 多头
 IF TOPENPROFIT<0 AND C<=TENTERPRICE-N AND TIME<145500 THEN 
 BEGIN   
 TSELL(Tholding>0 AND C<=TENTERPRICE-N ,0,LMT,C-MINDIFF*3);        //平多
 Tbuyshort(Tholding=0 AND C<=TENTERPRICE-N,Lots1,LMT,C-MINDIFF*3);     //开空
  CS2:=0;XD2:=0;
  END
 
VARIABLE: CS1=0,XD1=0;

 IF JJD>CS1  AND  TOPENPROFIT>0  THEN //AND  TOPENPROFIT>0
 BEGIN                                                     //提高一档空间
 CS1:=JJD;
 XD1:=TENTERPRICE+CS1*N;
 END
 
 IF C<=XD1-N AND XD1<>0  THEN
 BEGIN    
 TSELL(Tholding>0 AND C<=XD1-N ,0,LMT,C-MINDIFF*3);        //平多
 Tbuyshort(Tholding=0 AND C<=XD1-N,Lots1,LMT,C-MINDIFF*3);     //开空
    CS2:=0;XD2:=0;
    END
//=============================================================空头
    IF  TOPENPROFIT<0 AND C>=TENTERPRICE+N AND TIME<145500 THEN                                  
    BEGIN                                
    Tsellshort(Tholding<0 AND C>=TENTERPRICE+N,0,LMT,C+MINDIFF*3);   //平空
    Tbuy(Tholding=0 AND C>=TENTERPRICE+N ,Lots1,LMT,C+MINDIFF*3);        //开多
    CS1:=0; XD1:=0;
    END
 
VARIABLE:CS2=0,XD2=0;

 IF JJD>CS2  AND  TOPENPROFIT>0   THEN //AND  TOPENPROFIT>0
    BEGIN                                                         //提高一档空间
 CS2:=JJD;
 XD2:=TENTERPRICE-CS2*N;
 END
  
 IF C>=XD2+N AND XD2<>0  THEN
 BEGIN  
    Tsellshort(Tholding<0 AND C>=XD2+N,0,LMT,C+MINDIFF*3);   //平空
    Tbuy(Tholding=0 AND C>=XD2+N,Lots1,LMT,C+MINDIFF*3);         //开多
    CS1:=0; XD1:=0;
    END
   
 DEBUGOUT(\'次数1=%.2f\',CS1);
 DEBUGOUT(\'次数2=%.2f\',CS2);
 DEBUGOUT(\'新点1=%.2f\',XD1);
 DEBUGOUT(\'新点2=%.2f\',XD2);
 DEBUGOUT(\'手数=%.2f\',TNUMSEQLOSS);

Tsell(time>145500 and tholding>0,0,LMT,C);
Tsellshort(time>145500 and tholding<0,0,LMT,C);

 

 


--  作者:admin
--  发布时间:2010/8/19 15:55:01
--  

http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=332

看问题15,将Tholding从开平仓语句中去掉试试


--  作者:期指新手
--  发布时间:2010/8/19 22:04:40
--  
VARIABLE: CS1=0,XD1=0;

 IF JJD>CS1  AND  TOPENPROFIT>0  THEN //AND  TOPENPROFIT>0
 BEGIN                                                     //提高一档空间
 CS1:=JJD;
 XD1:=TENTERPRICE+CS1*N;
 END

 

CS1有问题吗?会随JJD变小吗?


--  作者:admin
--  发布时间:2010/8/20 8:59:30
--  
建议使用DEBUGFILE,通过不断写文件,了解后台程式化交易的运行原理,逐步上手。