回覆: 股票箱的公式
這是一組股票箱的指標您參考看看
引用:
hh:=h;ll:=l;
top:=h;
bot:=l;
xx[1]:=1;
kk:=1;
for i=1 to datacount do begin
if xx[i]=1 then begin
top[i]:=hh[i];
end;
if xx[i-1]=1 then begin
if hh[i]>top[i-1] then begin
top[i]:=hh[i];
xx[i]:=1;
end;else begin
top[i]:=top[i-1];
xx[i]:=2;
end;
end;
if xx[i-1]=2 then begin
if hh[i]>top[i-1] then begin
top[i]:=hh[i];
xx[i]:=1;
end;else begin
top[i]:=top[i-1];
bot[i]:=ll[i];
xx[i]:=3;
end;
end;
if xx[i-1]=3 then begin
top[i]:=top[i-1];
if ll[i]<bot[i-1] then begin
bot[i]:=ll[i];
xx[i]:=3;
end;else begin
bot[i]:=bot[i-1];
xx[i]:=4;
end;
end;
if xx[i-1]=4 then begin
top[i]:=top[i-1];
if ll[i]<bot[i-1] then begin
bot[i]:=ll[i];
xx[i]:=3;
end;else begin
bot[i]:=bot[i-1];
xx[i]:=5;
end;
end;
if xx[i-1]=5 then begin
if ll[i]<bot[i-1] or hh[i]>top[i-1] then begin
top[i]:=hh[i];
bot[i]:=hh[i];
xx[i]:=1;
end;else begin
bot[i]:=bot[i-1];
top[i]:=top[i-1];
xx[i]:=5;
end;
end;
end;
for j=1 to datacount do begin
if xx[j]=5 and xx[j-1]=4 then begin
for k=j-1 downto j-kk do begin
top[k]:=top[j];
bot[k]:=bot[j];
end;
end;
if xx[j-1]=5 and xx[j]=1 then kk:=0;
kk:=kk+1;
end;jj:=BARSLAST(top<>ref(top,1));
top:top POINTDOT linethick3 colorcyan;drawnumber(top<>ref(top,1),ref(top,jj)*1.015 ,(top-bot)*100/bot,2) colorff9900;
bot:bot POINTDOT linethick3 colorcyan;drawnumber(top<>ref(top,1),ref(bot,jj)*0.99,top-bot ,2) colorgreen ;
DRAWICON(cross(h,ref(top,1)) and xx=1 and ref(xx,1)=5,h,4);
DRAWICON(cross(ref(bot,1),l) and xx=1 and ref(xx,1)=5,l,5);
|