[PEL] 复制代码
/////参数
input : a(24,1,100,1);
input : lots(1,1,1000,1);//头寸
input : hld(29,1,1000,1);//获利
input : zsd(24,1,1000,1);//止损
////////////////变量
ma1:ma(close,a);
maref:=ref(ma1,1);
maref2:=ref(ma1,2);
cref:PRVSETTLEMENT;
lastkd:(typebar(1,1)>todaybar or typebar(1,1)=-1);
lastkk:(typebar(1,3)>todaybar or typebar(1,3)=-1);
///////////主逻辑
if holding=0 and maref2<=cref then begin
buy(maref>cref and lastkd,lots,limitr,open);
end
if holding=0 and maref2>=cref then begin
buyshort(maref<cref and lastkk,lots,limitr,open);
end
/////////////////////
if holding<0 and maref2<=cref then begin//金叉反手做多
sellshort(maref>cref,holding,limitr, open);
buy( maref>cref and lastkd,lots,limitr, open);
end
if holding>0 and maref2>=cref then begin//死叉反手空
sell( maref<cref,holding,limitr,open);
buyshort( maref<cref and lastkk,lots,limitr, open);
end
////////////////////////
if holding >0 then begin//多单止盈
bccj:=max(avgenterprice+hld*mindiff,open);
sell(h>=avgenterprice+hld*mindiff,holding,limitr, bccj);
end
if holding >0 then begin//多单止损
bccj1:=min(avgenterprice-zsd*mindiff,open);
sell(l<=avgenterprice-zsd*mindiff,holding,limitr, bccj1);
end
if holding <0 then begin//空单止盈
sccj:=min(avgenterprice-hld*mindiff,open);
sellshort(l<=avgenterprice-hld*mindiff,holding,limitr,sccj);
end
if holding <0 then begin//空单止损
sccj1:=max(avgenterprice+zsd*mindiff,open);
sellshort(h>=avgenterprice+zsd*mindiff,holding,limitr,sccj1);
end
/////统计信息
当前持仓:holding,colorred,linethick0;
当前资产:asset,noaxis,colormagenta,linethick3;
比: payoffrate,colormagenta;
胜率:percentwin,coloryellow;