
等级: 标准版
- 注册:
- 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:多单笔浮动盈利率;
|
|