- 金币:
-
- 奖励:
-
- 热心:
-
- 注册时间:
- 2008-3-4
|
|
macd
input: LONG(26,1,100,1),SHORT(12,1,40,1),M(9,2,60,1);
variable:dpHBL=0;
variable:gHBL=0;
variable:dpLBL=0;
variable:gLBL=0;
dpDIF:=ema(INDEXC,short) - ema(INDEXC,long);
dpDEA:=ema(dpDIF,M);
dpMACD:=2*(dpDIF-dpDEA);
gDIF:=EMA(C,SHORT) - EMA(C,LONG);
gDEA:=EMA(gDIF,M);
gMACD:=2*(gDIF-gDEA);
DIFF:=if(CATEGORY=0 or CATEGORY=3, dpDIF, gDIF);
DEA:=if(CATEGORY=0 or CATEGORY=3, dpDEA, gDEA);
MACD:=if(CATEGORY=0 or CATEGORY=3, dpMACD, gMACD);
dpHDIF:=if(ref(dpDIF,2)<=ref(dpDIF,1) and dpDIF<ref(dpDIF,1),ref(dpDIF,1),0);
dpLDIF:=if(ref(dpDIF,2)>=ref(dpDIF,1) and dpDIF>ref(dpDIF,1),ref(dpDIF,1),0);
gHDIF:=if(ref(gDIF,2)<=ref(gDIF,1) and gDIF<ref(gDIF,1),ref(gDIF,1),0);
gLDIF:=if(ref(gDIF,2)>=ref(gDIF,1) and gDIF>ref(gDIF,1),ref(gDIF,1),0);
dpT:=if(BARSLAST(dpHDIF)=0,ref(BARSLAST(dpHDIF),1)+1,BARSLAST(dpHDIF));
dpT1:=if(BARSLAST(dpLDIF)=0,ref(BARSLAST(dpLDIF),1)+1,BARSLAST(dpLDIF));
gT:=if(BARSLAST(gHDIF)=0,ref(BARSLAST(gHDIF),1)+1,BARSLAST(gHDIF));
gT1:=if(BARSLAST(gLDIF)=0,ref(BARSLAST(gLDIF),1)+1,BARSLAST(gLDIF));
if ref(dpHBL,1)=1 then begin
if dpHDIF<>0 then begin
dpHBL:=if(dpHDIF<=ref(dpHDIF,dpT),0,1);{新高>前高为1,其余为0}
end else begin
dpHBL:=ref(dpHBL,1);
end
end else begin
if dpHDIF<>0 then begin
dpHBL:=if(dpHDIF<=ref(dpHDIF,dpT),0,1);{新高>前高为1,其余为0}
end else begin
dpHBL:=ref(dpHBL,1);
end
end
if ref(dpLBL,1)=1 then begin
if dpLDIF<>0 then begin
dpLBL:=if(dpLDIF>=ref(dpLDIF,dpT1),0,1);{新低<前低为1,其余为0}
end else begin
dpLBL:=ref(dpLBL,1);
end
end else begin
if dpLDIF<>0 then begin
dpLBL:=if(dpLDIF>=ref(dpLDIF,dpT1),0,1);{新低<前低为1,其余为0}
end else begin
dpLBL:=ref(dpLBL,1);
end
end
if ref(gHBL,1)=1 then begin
if gHDIF<>0 then begin
gHBL:=if(gHDIF<=ref(gHDIF,gT),0,1);{新高>前高为1,其余为0}
end else begin
gHBL:=ref(gHBL,1);
end
end else begin
if gHDIF<>0 then begin
gHBL:=if(gHDIF<=ref(gHDIF,gT),0,1);{新高>前高为1,其余为0}
end else begin
gHBL:=ref(gHBL,1);
end
end
if ref(gLBL,1)=1 then begin
if gLDIF<>0 then begin
gLBL:=if(gLDIF>=ref(gLDIF,gT1),0,1);{新低<前低为1,其余为0}
end else begin
gLBL:=ref(gLBL,1);
end
end else begin
if gLDIF<>0 then begin
gLBL:=if(gLDIF>=ref(gLDIF,gT1),0,1);{新低<前低为1,其余为0}
end else begin
gLBL:=ref(gLBL,1);
end
end
dpA1:=dpDIF>0 and dpDIF>dpDEA;
gA1:=gDIF>0 and gDIF>gDEA;
dpA2a:=dpDIF>0 and cross(dpDEA,dpDIF);
dpA2b:=dpDIF>0 and cross(dpDIF,dpDEA) and INDEXV>ref(hhv(INDEXV,3),1) and INDEXV>ma(INDEXV,5);
gA2a:=gDIF>0 and cross(gDEA,gDIF);
gA2b:=gDIF>0 and cross(gDIF,gDEA) and V>ref(hhv(v,3),1) and V>ma(v,5);
dpA3:=dpDIF>0 and dpHBL=0 and cross(dpDEA,dpDIF);
gA3:=gDIF>0 and gHBL=0 and cross(gDEA,gDIF);
dpA4:=cross(0,dpDIF);
gA4:=cross(0,gDIF);
if dpA1 then begin
cw:=if(gA1,4,if(gA2a,5,if(gA2b,6,if(gA3 or gA4,0,0))));
end
if dpA2a then begin
cw:=if(gA1,3,if(gA2a or gA3 or gA4,0,0));
end
if dpA3 then begin
cw:=if(gA1,if(C>ref(C,1) and V>ref(V,1),2,0),0);
end
if dpA4 then cw:=0;
if dpMACD>=0 and dpDIF<=0 then begin
cw:=if(gA1,if(C>ref(C,1) and V>ref(V,1),1,0),0);
end
DIFF:DIFF,linethick0;
DEA:DEA, coloryellow;
MACD:MACD,colorstick;
CW:cw,linethick0;
PARTLINE(DIFF,DIFF>ref(DIFF,1),rgb(255,0,0),DIFF<=ref(DIFF,1),rgb(0,0,255));
DRAWICON(cw<>ref(cw,1) and cw=0,DIFF,5),ALIGN1,VALIGN1;
DRAWTEXT(cw<>ref(cw,1) and cw=0,DIFF,' 空仓'),ALIGN1,VALIGN2;
DRAWICON(cw<>ref(cw,1) and cw=1,DIFF,4),ALIGN1,VALIGN1;
DRAWTEXT(cw<>ref(cw,1) and cw=1,DIFF,' 1/4仓'),ALIGN1,VALIGN2;
DRAWICON(cw<>ref(cw,1) and cw=2,DIFF,4),ALIGN1,VALIGN1;
DRAWTEXT(cw<>ref(cw,1) and cw=2,DIFF,' 1/3仓'),ALIGN1,VALIGN2;
DRAWICON(cw<>ref(cw,1) and cw=3,DIFF,4),ALIGN1,VALIGN1;
DRAWTEXT(cw<>ref(cw,1) and cw=3,DIFF,' 1/2仓'),ALIGN1,VALIGN2;
DRAWICON(cw<>ref(cw,1) and cw=4,DIFF,4),ALIGN1,VALIGN1;
DRAWTEXT(cw<>ref(cw,1) and cw=4,DIFF,' 2/3仓'),ALIGN1,VALIGN2;
DRAWICON(cw<>ref(cw,1) and cw=5,DIFF,5),ALIGN1,VALIGN1;
DRAWTEXT(cw<>ref(cw,1) and cw=5,DIFF,' 减半'),ALIGN1,VALIGN2;
DRAWICON(cw<>ref(cw,1) and cw=6,DIFF,4),ALIGN1,VALIGN1;
DRAWTEXT(cw<>ref(cw,1) and cw=6,DIFF,' 补仓'),ALIGN1,VALIGN2;
{};
在指标版找的漂亮macd 和软件中的一样 |
-
宁沪高速
|
|