以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  ------自己改写的双轨道交易系统 ,为神马回测是0呢  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=142081)

--  作者:TomRidder716
--  发布时间:2016/11/1 18:06:08
--  ------自己改写的双轨道交易系统 ,为神马回测是0呢
 不是数据导入的问题 ,因为 其余的系统策略回测没有问题

代码如下 ,测试编译没有问题



//中间变量
INPUT:N(16,1,30,1),K1(0.4,0.1,1,0.1),K2(0.8,0.1,1,0.1),NMIN(6,1,10,1),SS(100,100,1000,100);
//INPUT:P1(3,1,5,1),P2(80,10,100,10);{计算最大回撤止损};
VARIABLE:P2=80;
variable:MAXPROFIT:=0;
variable:PROFIT:=0;
variable:DOWNPROFIT:=0;
variable: EX=0;
CYC:=BARSLAST(DATE<>REF(DATE,1))+1;
LHIGH:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);
LLOW:=CALLSTOCK(STKLABEL,VTLOW,6,-1);
LCLOSE:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);
TOPEN:=VALUEWHEN(CYC=1,OPEN);
HH:=HHV(LHIGH,N);//N日HIGH的最高价
HC:=HHV(LCLOSE,N);//N日CLOSE的最高价
LC:=LLV(LCLOSE,N);//N日CLOSE的最低价
LL:=LLV(LLOW,N);//N日LOW的最低价
MOVING:=MAX(HH-LL,HC-LL);//RANGE
T1:=TIME>=090200 AND TIME<=145000+NMIN*100;
T2:=TIME>=145000+NMIN*100 AND TIME<=150000;
HOLDER:=SS;
幅度:=0;
UP:TOPEN+K1*MOVING;
DOWN:TOPEN-K2*MOVING;
BUYCON:=C>UP AND HOLDING=0 ;
BUYSHORTCON:=C<DOWN AND HOLDING=0 ;
亏跳:=10;
盈跳:=200;
{
多头浮亏10跳止损条件: (ENTERPRICE-C)>5*MINDIFF();
空头浮亏10跳止损条件: (C-ENTERPRICE)>5*MINDIFF();
}
//移动动态止损部分

///每天的 开盘的时候 持仓为0 开仓为0

IF TIME =090100 THEN BEGIN
   EXTGBDATASET(\'B\',0);//A 代表是否有仓位 b代表是否开过仓位
   EXTGBDATASET(\'A\',0);
END
///

//持有空仓的情况
IF HOLDING=0 THEN BEGIN
 IF T1 THEN BEGIN
   IF BUYCON THEN BEGIN
    BUY( EXTGBDATA(\'B\')=0 AND EXTGBDATA(\'A\')=0,HOLDER,MARKET);
          EXTGBDATASET(\'A\',1);
          EXTGBDATASET(\'B\',1);  
   END
   IF BUYSHORTCON THEN BEGIN
    BUYSHORT( EXTGBDATA(\'B\')=0 AND EXTGBDATA(\'A\')=0,HOLDER,MARKET);
          EXTGBDATASET(\'A\',-1);
          EXTGBDATASET(\'B\',1); 
   END
 END
 
END



IF HOLDING>0 THEN BEGIN

  IF T1 THEN BEGIN
   //最高价格 浮亏10跳 止盈操作

   //浮亏10跳 止损
  
  
          IF  ( AVGENTERPRICE()-DYNAINFO(  7)>10*MINDIFF) THEN BEGIN
          SELL(1,HOLDER,MARKET);
          EXTGBDATASET(\'A\',0);
          EXTGBDATASET(\'B\',1);
          END
         
   //
  END
 
  IF T2 THEN BEGIN
  SELL(1,HOLDER,MARKET);
  EXTGBDATASET(\'A\',0);
  EXTGBDATASET(\'B\',0);
  END
END


 
IF HOLDING<0 THEN BEGIN
   IF T1 THEN BEGIN

          IF  ( DYNAINFO(  7)-AVGENTERPRICE()>10*MINDIFF) THEN BEGIN
          SELLSHORT(1,HOLDER,MARKET);
          EXTGBDATASET(\'A\',0);
          EXTGBDATASET(\'B\',1);
          END
         
   END
  
   IF T2 THEN BEGIN
   SELLSHORT(1,HOLDER,MARKET);
   EXTGBDATASET(\'A\',0);
   EXTGBDATASET(\'B\',0);
   END
END 


//交易系统

{

开多:BUY(开多条件 AND T1 AND CYC>1,手数,MARKET);
开空:BUYSHORT(开空条件 AND T1 AND CYC>1,手数,MARKET);
收盘平多:SELL(T2,手数,MARKET);
收盘平空:SELLSHORT(T2,手数,MARKET);
}
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低值
--  作者:jinzhe
--  发布时间:2016/11/2 9:00:42
--  

图表交易不要用dynainfo这一系列的动态行情函数,会有问题

图表交易不要用后台全局变量extgbdata,会有问题


--  作者:TomRidder716
--  发布时间:2016/11/2 19:07:48
--  
1.如果非要用 该用什么替代他们呢
--  作者:TomRidder716
--  发布时间:2016/11/2 19:10:56
--  
用 一般的变量代替 extgbdata 用什么代替最新的 dynainfo (7)呢
--  作者:jinzhe
--  发布时间:2016/11/3 9:03:23
--  

用variable和close