
等级: 标准版
- 注册:
- 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('空仓总天数',空仓总天数);
|
|