金字塔公式 金字塔模型策略源码: runmode:0;
input:n1(8,1,100,1);
input:n2(22,1,100,1);
input:n3(44,1,100,1);
input:n4(5,1,100,1);
ma1:=ma(close,n4);
zhx:=(hhv(high,n1)+llv(low,n1))/2;
jzx:=(hhv(high,n2)+llv(low,n2))/2;
yda:=ref((zhx+jzx)/2,n2);
ydb:=ref((hhv(high,n3)+llv(low,n3))/2,n2);
if holding=0 then begin
if cross(zhx,jzx) then
buy(1,1,limitr,close);
end
if holding=0 then begin
if cross(jzx,zhx) then
buyshort(1,1,limitr,close);
end
if holding>0 then begin
if cross(jzx,zhx) then begin
sell(1,holding,limitr,close),orderqueue;
buyshort(1,1,limitr,close),orderqueue;
end
end
if holding<0 then begin
if cross(zhx,jzx) then begin
sellshort(1,holding,limitr,close),orderqueue;
buy(1,1,limitr,close),orderqueue;
end
end
资产:asset,noaxis,colormagenta;
次数:totaltrade,linethick0;
收益:(asset-40000)/40000,linethick0;
胜率:percentwin,linethick0;
出击:totaltrade/(count(date<>ref(date,1),0)+1),linethick0;
连亏:maxseqloss,linethick0;
连赢:maxseqwin,linethick0;
复制上述代码粘贴到到公式管理器
源码解析:
MA1赋值:收盘价的N4日简单移动平均
ZHX赋值:(N1日内最高价的最高值+N1日内最低价的最低值)/2
JZX赋值:(N2日内最高价的最高值+N2日内最低价的最低值)/2
YDA赋值:N2日前的(ZHX+JZX)/2
YDB赋值:N2日前的(N3日内最高价的最高值+N3日内最低价的最低值)/2
逻辑判断 HOLDING=0 THEN BEGIN 逻辑判断 ZHX上穿JZX THEN BUY(1,1,LIMITR,收盘价)
END 逻辑判断 HOLDING=0 THEN BEGIN 逻辑判断 JZX上穿ZHX THEN BUYSHORT(1,1,LIMITR,收盘价)
END 逻辑判断 HOLDING>0 THEN BEGIN 逻辑判断 JZX上穿ZHX THEN BEGIN SELL(1,HOLDING,LIMITR,收盘价),ORDERQUEUE
BUYSHORT(1,1,LIMITR,收盘价),ORDERQUEUE
END END 逻辑判断 HOLDING<0 THEN BEGIN 逻辑判断 ZHX上穿JZX THEN BEGIN SELLSHORT(1,HOLDING,LIMITR,收盘价),ORDERQUEUE
BUY(1,1,LIMITR,收盘价),ORDERQUEUE
输出 END END 资产:ASSET,NOAXIS,画洋红色
输出 次数:TOTALTRADE,线宽为0
输出 收益:(ASSET-40000)/40000,线宽为0
输出 胜率:PERCENTWIN,线宽为0
输出 出击:TOTALTRADE/(统计0日中满足DATE<>REF(日期,1)的天数+1),线宽为0
输出 连亏:MAXSEQLOSS,线宽为0
输出 连赢:MAXSEQWIN,线宽为0