有那位老师可以帮我指点一下那里错了。。在开多单里,分为两种情况,在开空单里也分为两种情况。但平多和平空也只是用STOPL 和STOPH 这两个变量
下里的句子应该怎么改?
IF 开多条件 THEN BEGIN
IF DIFF60>DEA60 AND HOLDING >0 THEN BEGIN
STOPL:L65 ,COLORRED ;
END;
IF DIFF60< DEA60 AND HOLDING >0 THEN BEGIN
STOPL:L20 ,COLORRED ;
END;
END;
IF 开空条件 THEN BEGIN
IF DIFF60>DEA60 AND HOLDING >0 THEN BEGIN
STOPH:H20 ,COLORRED ;
END;
IF DIFF60< DEA60 AND HOLDING >0 THEN BEGIN
STOPH:H65 ,COLORRED ;
END;
END;
平多条件:=C< STOPL AND HOLDING>0; //下穿中轨平多
平空条件:=C> STOPH AND HOLDING<0; //上穿中轨平空
IF 开多条件 THEN BEGIN
IF DIFF60>DEA60 AND HOLDING >0 THEN BEGIN
STOPL:L65 ,COLORRED ;
END;
这样写赋值stopl的目的是为了什么?
h20:=ref(hhv(h,20),1);//20周期最高价
l20:=ref(llv(l,20),1);//20周期最低价
h65:=ref(hhv(h,65),1);//65周期最高价
l65:=ref(llv(l,65),1);//65周期最低价
之前已经定义了这些变量
用户把开仓语句写在哪里了?能否把整体的开仓语句都写出来?
h20:=ref(hhv(h,20),1);//20周期最高价
l20:=ref(llv(l,20),1);//20周期最低价
h65:=ref(hhv(h,65),1);//65周期最高价
l65:=ref(llv(l,65),1);//65周期最低价
INPUT:M(35,5,300,30),N(2,0.1,10,1),SS(1,1,10000,1);
MID := MA(CLOSE,M);//中轨
UPPER:= MID + N*STD(CLOSE,M);//上轨
LOWER:= MID - N*STD(CLOSE,M);//下轨
DIFF60:=EMA(CLOSE,12*60) - EMA(CLOSE,26*60);
DEA60:= EMA(DIFF60,9*60);
MACD60:=2*(DIFF60-DEA60);
手数:=SS;
开多条件:=C>UPPER AND HOLDING=0;//上穿上轨开多
开空条件:=C<LOWER AND HOLDING=0;//下穿下轨开空
IF 开多条件 THEN BEGIN
IF DIFF60>DEA60 AND HOLDING >0 THEN BEGIN
STOPL:L65 ,COLORRED ;
END;
IF DIFF60< DEA60 AND HOLDING >0 THEN BEGIN
STOPL:L20 ,COLORRED ;
END;
END;
IF 开空条件 THEN BEGIN
IF DIFF60>DEA60 AND HOLDING >0 THEN BEGIN
STOPH:H20 ,COLORRED ;
END;
IF DIFF60< DEA60 AND HOLDING >0 THEN BEGIN
STOPH:H65 ,COLORRED ;
END;
END;
平多条件:=C< STOPL AND HOLDING>0;
平空条件:=C> STOPH AND HOLDING<0;
IF 开多条件 AND HOLDING =0 THEN BUY(1,手数,MARKET);
IF 开空条件 AND HOLDING =0 THEN BUYSHORT(1,手数,MARKET);
IF 平多条件 THEN SELL(1,手数,MARKET);
IF 平空条件 THEN SELLSHORT(1,手数,MARKET);
全部语句了
h20:=ref(hhv(h,20),1);//20周期最高价
l20:=ref(llv(l,20),1);//20周期最低价
h65:=ref(hhv(h,65),1);//65周期最高价
l65:=ref(llv(l,65),1);//65周期最低价
INPUT:M(35,5,300,30),N(2,0.1,10,1),SS(1,1,10000,1);
MID := MA(CLOSE,M);//中轨
UPPER:= MID + N*STD(CLOSE,M);//上轨
LOWER:= MID - N*STD(CLOSE,M);//下轨
DIFF60:EMA(CLOSE,12*60) - EMA(CLOSE,26*60);
DEA60: EMA(DIFF60,9*60);
MACD60:=2*(DIFF60-DEA60);
手数:=SS;
开多条件:=C>UPPER AND HOLDING=0;//上穿上轨开多
开空条件:=C<LOWER AND HOLDING=0;//下穿下轨开空
IF 开多条件 and holding=0 and barpos>65 THEN BEGIN
BUY(1,手数,MARKETr);
IF DIFF60>=DEA60 AND HOLDING >0 THEN BEGIN
STOPL:=L65 ,COLORRED ;
END;
IF DIFF60< DEA60 AND HOLDING >0 THEN BEGIN
STOPL:=L20 ,COLORRED ;
END;
END;
IF 开空条件 and holding=0 and barpos>65 THEN BEGIN
BUYSHORT(1,手数,MARKETr);
IF DIFF60>=DEA60 AND HOLDING <0 THEN BEGIN
STOPH:=H20 ,COLORRED ;
END;
IF DIFF60< DEA60 AND HOLDING <0 THEN BEGIN
STOPH:=H65 ,COLORRED ;
END;
END;
平多条件:=C< STOPL AND HOLDING>0;
平空条件:=C> STOPH AND HOLDING<0;
IF 平多条件 THEN SELL(1,手数,MARKET);
IF 平空条件 and stoph<>0 THEN SELLSHORT(1,手数,MARKET);