请教老师:
开仓条件h>h20,
当h>h20时,如果前20周期内有pm<-20 or mp <-20时,则以h>h20作为开仓信号。这个怎么写,谢谢!
RUNMODE:0;
INPUT : n(20,1,100,1);
INPUT : p(14,1,100,1);
tr1 := sum(max(max(high - low,abs(high-ref(close,1))),abs(low - ref(close, 1))),p);
hd := high - ref(high, 1);
ld := ref(low, 1) - low;
dmp := sum(if(hd>0 and hd>ld,hd,0),p);
dmm := sum(if(ld>0 and ld>hd,ld,0),p);
pdi := ma(dmp*100/tr1,18);
mdi := ma(dmm*100/tr1,18);
pm := pdi-mdi;
mp := mdi-pdi;
h20 := ref(hhv(high,n),1);
l20 := ref(llv(low,n),1);
//当最高价突破20周期内的最高点时,前20个周期内出现PM或MP小于-20,则以h>h20作为买入信号;
if h>h20 and barslast(pm<-20)<=20 or barslast(mp<-20)<=20 then
begin
sellshort(holding<0,0,thisclose);
buy(holding=0,1,thisclose);
end
//当最低价突破20周期内的最低点时,前20个周期内出现PM或MP小于-20,则以l<l20作为卖出信号;
if l<l20 and barslast(pm<-20)<=20 or barslast(mp<-20)<=20 then
begin
sell(holding>0,0,thisclose);
buyshort(holding=0,1,thisclose);
end
//账户信息:
资产:ASSET,NOAXIS,COLORRED,LINETHICK2;
可用现金:CASH(0),PRECISION0,NOAXIS,LINETHICK0;
持仓:HOLDING,LINETHICK0;
胜率:PERCENTWIN,LINETHICK0;
交易次数:TOTALTRADE,LINETHICK0;
RUNMODE:0;
INPUT : n(20,1,100,1);
INPUT : p(14,1,100,1);
tr1 := sum(max(max(high - low,abs(high-ref(close,1))),abs(low - ref(close, 1))),p);
hd := high - ref(high, 1);
ld := ref(low, 1) - low;
dmp := sum(if(hd>0 and hd>ld,hd,0),p);
dmm := sum(if(ld>0 and ld>hd,ld,0),p);
pdi := ma(dmp*100/tr1,18);
mdi := ma(dmm*100/tr1,18);
pm := pdi-mdi;
mp := mdi-pdi;
h20 := ref(hhv(high,n),1);
l20 := ref(llv(low,n),1);
//当最高价突破20周期内的最高点时,前20个周期内出现PM或MP小于-20,则以h>h20作为买入信号;
if h>h20 and (barslast(pm<-20)<=20 or barslast(mp<-20)<=20) then
begin
sellshort(holding<0,0,thisclose);
buy(holding=0,1,thisclose);
end
//当最低价突破20周期内的最低点时,前20个周期内出现PM或MP小于-20,则以l<l20作为卖出信号;
if l<l20 and (barslast(pm<-20)<=20 or barslast(mp<-20)<=20) then
begin
sell(holding>0,0,thisclose);
buyshort(holding=0,1,thisclose);
end
//账户信息:
资产:ASSET,NOAXIS,COLORRED,LINETHICK2;
可用现金:CASH(0),PRECISION0,NOAXIS,LINETHICK0;
持仓:HOLDING,LINETHICK0;
胜率:PERCENTWIN,LINETHICK0;
交易次数:TOTALTRADE,LINETHICK0;