金字塔公式 金字塔模型策略源码: HNL:=IF(HIGH>REF(HHV(HIGH,3),1),LOW,0); L1:=IF(HNL>REF(L,1),REF(L,1),IF(HNL>REF(L,2),REF(L,2),IF(HNL>REF(L,3),REF(L,3),IF(HNL>REF(L,4),REF(L,4),0)))); L2:=IF(L1>REF(L,1),REF(L,1),IF(L1>REF(L,2),REF(L,2),IF(L1>REF(L,3),REF(L,3),IF(L1>REF(L,4),REF(L,4),0)))); L3:=VALUEWHEN(L2>0,L2); LNH:=IF(LOW<REF(LLV(LOW,3),1),HIGH,666); H1:=IF(LNH<REF(H,1),REF(H,1),IF(LNH<REF(H,2),REF(H,2),IF(LNH<REF(H,3),REF(H,3),IF(LNH<REF(H,4),REF(H,4),666)))); H2:=IF(H1<REF(H,1),REF(H,1),IF(H1<REF(H,2),REF(H,2),IF(H1<REF(H,3),REF(H,3),IF(H1<REF(H,4),REF(H,4),0)))); H3:=VALUEWHEN(H2>0,H2); SEL:=VALUEWHEN((CLOSE>H3 and REF(CLOSE,1)<=H3)or(CLOSE<L3 and REF(CLOSE,1)>=L3),IF(CLOSE>H3 and REF(CLOSE,1)<=H3,1,0)); LINE:IF(SEL=1,L3,H3),COLORblue;//开仓 long:= line<c and time>091400 and time<150500; if long then begin sellshort(holding<0,holding,limitr,c); buy(holding=0,1,limitr,c); end //程序化交易 www.88gs.com short:=line>c and time>091400 and time<150500; if short then begin sell(holding>0,holding,limitr,c); buyshort(holding=0,1,limitr,c); endsell(time>151200 and holding>0,0,thisclose); sellshort(time>151200 and holding<0,0,thisclose);PARTLINE( line<c, line, colorrgb(255,0,0)); PARTLINE( line>c, line, colorrgb(0,255,0));DRAWNUMBER(ISLASTBAR,LINE,LINE,0,COLORblue);源码解析:HNL赋值:如果最高价>昨日3日内最高价的最高值,返回最低价,否则返回0 L1赋值:如果HNL>昨日最低价,返回昨日最低价,否则返回如果HNL>2日前的最低价,返回2日前的最低价,否则返回如果HNL>3日前的最低价,返回3日前的最低价,否则返回如果HNL>4日前的最低价,返回4日前的最低价,否则返回0 L2赋值:如果L1>昨日最低价,返回昨日最低价,否则返回如果L1>2日前的最低价,返回2日前的最低价,否则返回如果L1>3日前的最低价,返回3日前的最低价,否则返回如果L1>4日前的最低价,返回4日前的最低价,否则返回0 L3赋值:VALUEWHEN(L2>0,L2) LNH赋值:如果最低价<昨日3日内最低价的最低值,返回最高价,否则返回666 H1赋值:如果LNH<昨日最高价,返回昨日最高价,否则返回如果LNH<2日前的最高价,返回2日前的最高价,否则返回如果LNH<3日前的最高价,返回3日前的最高价,否则返回如果LNH<4日前的最高价,返回4日前的最高价,否则返回666 H2赋值:如果H1<昨日最高价,返回昨日最高价,否则返回如果H1<2日前的最高价,返回2日前的最高价,否则返回如果H1<3日前的最高价,返回3日前的最高价,否则返回如果H1<4日前的最高价,返回4日前的最高价,否则返回0 H3赋值:VALUEWHEN(H2>0,H2) SEL赋值:VALUEWHEN((收盘价>H3 AND 昨收<=H3)OR(收盘价<L3 AND 昨收>=L3),如果收盘价>H3ANDREF(收盘价,1)<=H3,返回1,否则返回0) 输出LINE:如果SEL=1,返回L3,否则返回H3,画蓝色 开仓LONG赋值: LINE<收盘价 AND 时间>091400 AND 时间<150500 逻辑判断 LONG THEN BEGIN SELLSHORT(HOLDING<0,HOLDING,LIMITR,收盘价) BUY(HOLDING=0,1,LIMITR,收盘价) SHORT赋值:LINE>收盘价 AND 时间>091400 AND 时间<150500 逻辑判断 SHORT THEN BEGIN SELL(HOLDING>0,HOLDING,LIMITR,收盘价) BUYSHORT(HOLDING=0,1,LIMITR,收盘价) ENDSELL(时间>151200 AND HOLDING>0,0,THISCLOSE) SELLSHORT(时间>151200 AND HOLDING<0,0,THISCLOSE) PARTLINE( LINE<收盘价, LINE, COLORRGB(255,0,0)) PARTLINE( LINE>收盘价, LINE, COLORRGB(0,255,0)) 当满足条件是否最后一个周期时,在LINE位置书写数字
|