| 

 等级: 标准版 
注册: 2023-6-14曾用名:  | 
 
| 以下代码是老师前面帮我写的持仓总天数,,,我修改成了空仓总天数,但是计算结果成了交易总天数?请老师帮我看看是哪里出了问题 
 INPUT:NMIN(10,1,100,1);
 VARIABLE:ct:=0;
 VARIABLE:ct2:=0;
 
 
 ma1:=MA(c,20);
 ma2:=MA(C,260);
 ma3:=MA(c,50);
 
 HD1:=HOLDING;//计算持仓时间时要用到
 
 
 //交易条件
 开多条件:=CROSS(ma1,ma2)and holding=0;
 开空条件:=CROSS(ma2,ma1)and holding=0;
 
 收盘平仓:=TIME>=CLOSETIME(0)-NMIN*100;//收盘平仓
 
 平多条件:=(CROSS(ma3,ma1) OR 收盘平仓)and holding=1;
 平空条件:=(CROSS(ma1,ma3) OR 收盘平仓)and holding=-1;
 //平多条件:=CROSS(ma3,ma1) and holding=1;
 //平空条件:=CROSS(ma1,ma3) and holding=-1;
 
 //交易系统
 开多:BUY(开多条件 ,1,MARKET);
 开空:BUYSHORT(开空条件,1,MARKET);
 
 
 平多:SELL(平多条件,1,MARKET);
 平空:SELLSHORT(平空条件,1,MARKET);
 
 //计算持仓时间
 HD2:=HOLDING;
 if count((HD1+HD2)<>0,TODAYBAR)>=1 and time=CLOSETIME(0) then ct:=ct+1;
 持仓天数:ct;//平仓当天最后持仓是0 ,所以补上1
 
 
 //**********************输出
 AddTestReport('持仓天数',持仓天数);
 
 //计算空仓时间
 HD2:=HOLDING;
 if count((HD1+HD2)=0,TODAYBAR)>=1 and time=CLOSETIME(0) then ct:=ct+1;//修改了这句count((HD1+HD2)<>0,为=0.
 空仓总天数:ct;//平仓当天最后持仓是0 ,所以补上1
 
 
 //**********************输出
 AddTestReport('空仓总天数',空仓总天数);
 
 
 
 | 
 |