| 

 等级: 标准版 
注册: 2023-6-14曾用名:  | 
 
| 请教老师,为了计算单次浮动盈亏情况,所以要计算开平仓内的最高价,但是等过了平仓点后,这个最高价会一直变化,为了让高归零,用了if但是效果还是不行,直接返回了开仓以来的最高价,我知道这是if的问题,但是不知道如何解决,如何能计算单笔浮动盈利率呢?如果不用if让高归零,那么最高价就会一直变化 谢谢老师!!!
 
 INPUT:NMIN(10,1,100,1);
 
 
 ma5:MA(c,5);
 ma10:MA(C,10);
 ma30:MA(c,30);
 
 
 //交易条件
 开多条件:CROSS(ma5,ma30)and holding=0;
 开空条件:CROSS(ma30,ma5)and holding=0;
 
 
 收盘平仓:=TIME>=CLOSETIME(0)-NMIN*100;//收盘平仓
 
 
 平多条件:(CROSS(ma5,ma10) OR 收盘平仓)and holding=1,COLORWHITE;
 平空条件:(CROSS(ma5,ma10) OR 收盘平仓)and holding=-1;
 
 
 //平多条件:CROSS(ma5,ma10) and holding=1;
 //平空条件:CROSS(ma5,ma10) and holding=-1;
 
 
 
 
 //交易系统
 开多:BUY(开多条件 ,1,MARKET);
 开空:BUYSHORT(开空条件,1,MARKET);
 
 
 平多:SELL(平多条件,1,MARKET);
 平空:SELLSHORT(平空条件,1,MARKET);
 
 
 
 
 //浮动盈亏大于2%次数
 VARIABLE:开多根数=0,开空根数=0,开多最高价=0,多开仓价=0,多浮盈涨幅=0,多浮盈成功次=0;
 
 
 IF  holding=1 THEN
 BEGIN
 开多根数:=开多根数+1;
 END
 
 
 
 
 IF holding=0  then
 BEGIN
 开多根数:=0;
 END
 
 
 IF  holding=-1 THEN
 BEGIN
 开空根数:=开空根数+1;
 END
 
 
 IF holding=0  then
 BEGIN
 开空根数:=0;
 END
 
 
 开多最高价:=HHV(h,开多根数);
 开空最低价:=LLV(l,开空根数);
 开仓价:=ENTERPRICE;
 
 
 多单笔浮动盈利率:=(开多最高价-开仓价)/开仓价;
 空单笔浮动盈利率:=(开仓价-开空最低价)/开仓价;
 
 
 //输出
 开多根数1:开多根数;
 开多最高价1:开多最高价;
 多单笔浮动盈利率1:多单笔浮动盈利率;
 
 
 | 
 |