说明: 1考虑到期货中三浪常打破一浪底,所以就对P一浪A和P三浪C没有定高低的关系限制,且在延长浪中也可见机使用 2公式必须由使用者打出十字光标后,并且选择参数才能使用,
3调整参5和参236的数值就可以打开0.5和0.236倍数的线。
0.382和0.618的倍数取了3组数(例:0.382,1.382 2.382三组)根据飞狐原有的1的倍数取了2组数,第三组可以修改公式 里的内容打开第三组。
准备了0.5和0.236的备选。
还有2个自定义的数字,由使用者自己写入所需的比例数值。}
input:p(10,1,30),参a(2,1,111),参b(1,1,111),参c(1,1,111),A偏移(0),B偏移(0),C偏移(0),整体偏移(0),参382(0,-1,99999),参618(0,-1,99999),参壹(0,-1,99999),参236(-1,-1,99999),参5(-1,-1,99999),参自定义1(-1,-1,99999),参自定义2(-1,-1,99999);
x1:=TROUGH(4,p,1);//BARPOS
x8:=TROUGHBARS(4,p,1)=0;
x11:=TROUGHBARS(4,p,参a);
x18:=TROUGHBARS(4,p,参b);
x13:=TROUGHBARS(4,p,参c);
x3:=PEAK(4,p,1);
x31:=PEAKBARS(4,p,参a);
x38:=PEAKBARS(4,p,参b);
x33:=PEAKBARS(4,p,参c);
x5:=PEAKBARS(4,p,1)=0;
光标位置:=SYSPARAM(1),linethick0;
cldis:=x13[SYSPARAM(1)],linethick0;
chdis:=x33[SYSPARAM(1)],linethick0;
tcl:=光标位置-cldis,linethick0;
tch:=光标位置-chdis,linethick0;
bldis:=x18[SYSPARAM(1)],linethick0;
bhdis:=x38[SYSPARAM(1)],linethick0;
tbl:=光标位置-bldis,linethick0;
tbh:=光标位置-bhdis,linethick0;
aldis:=x11[SYSPARAM(1)],linethick0;
ahdis:=x31[SYSPARAM(1)],linethick0;
tal:=光标位置-aldis,linethick0;
tah:=光标位置-ahdis,linethick0;
K一浪a:=IF(tcl>tch,tal+A偏移,tah+A偏移),linethick0;
K二浪b:=IF(tcl>tch,tbh+B偏移,tbl+B偏移),linethick0;
K三浪c:=IF(tcl>tch,tcl+C偏移,tch+C偏移),linethick0;
PH:=H;
PL:=L;
P一浪a:IF(tcl>tch,PL[tal+A偏移],PH[tah+A偏移]),LINETHICK0;
P二浪b:IF(tcl>tch,PH[tbh+B偏移],PL[tbl+B偏移]),LINETHICK0;
P三浪c:IF(tcl>tch,PL[tcl+C偏移],PH[tch+C偏移]),LINETHICK0;
{kdisab:IF(ldis[SYSPARAM(1)]<hdis[SYSPARAM(1)],lldis-hdis,hhdis-ldis),linethick0;
kc:max(tl,th),linethick0;}
drawline(barpos=K一浪a,p一浪a,barpos=K二浪b,p二浪b,0),color77FFFF,linethick1;
drawline(barpos=K二浪b,p二浪b,barpos=K三浪c,p三浪c,0),color77FFFF,linethick1;
一浪长:P二浪b-P一浪a,linethick0;
//xx:=x;
//SETLBOUND(xx,k看);
{---------------------说话啊-------------------}
y1:一浪长,linethick0;
P1:P三浪c+y1,linethICK0;
POLYLINE(barpos>=K三浪c,p1),COLORffffff,LINEDOT;
DRAWTEXT(barpos=K三浪c,P1,Ƈ'+' '+numtostr(P1,3)),COLORFFFFFF;
{☆§-------------------------------------§☆}
if 参236>-0.5 then
begin
倍数236:=0.236+整体偏移+参236;
y236:一浪长*倍数236,linethick0;
P236:=P三浪c+y236,linethick0;
partline(barpos>=K三浪c,p236),COLOR0099FF,LINEDOT;
DRAWTEXT(barpos=K三浪c,P236,numtostr(倍数236,3)+' '+numtostr(P236,3)),COLOR0099FF;
end;
{-------------------------------------}
if 参382>-0.5 then
begin
倍数0382:=0.382+整体偏移+参382;
y0382:一浪长*倍数0382,linethick0;
P0382:=P三浪c+y0382,linethick0;
partline(barpos>=K三浪c,p0382),COLOR77FFFF,LINEDOT;
DRAWTEXT(barpos=K三浪c,P0382,numtostr(倍数0382,3)+' '+numtostr(P0382,3)),COLOR77FFFF;
倍数1382:=1.382+整体偏移+参382;
y1382:一浪长*倍数1382,linethick0;
P1382:=P三浪c+y1382,linethick0;
partline(barpos>=K三浪c,p1382),COLOR77FFFF,LINEDOT;
DRAWTEXT(barpos=K三浪c,P1382,numtostr(倍数1382,3)+' '+numtostr(P1382,3)),COLOR77FFFF;
倍数2382:=2.382+整体偏移+参382;
y2382:一浪长*倍数2382,linethick0;
P2382:=P三浪c+y2382,linethick0;
partline(barpos>=K三浪c,p2382),COLOR77FFFF,LINEDOT;
DRAWTEXT(barpos=K三浪c,P2382,numtostr(倍数2382,3)+' '+numtostr(P2382,3)),COLOR77FFFF;
end;
{-------------------------------------}
{-------------------------------------}
if 参5>-0.5 then
begin
倍数5:=0.5+整体偏移+参5;
y5:一浪长*倍数5,linethick0;
P5:=P三浪c+y5,linethick0;
partline(barpos>=K三浪c,p5),COLOR00FF00,LINEDOT;
DRAWTEXT(barpos=K三浪c,P5,numtostr(倍数5,1)+' '+numtostr(P5,3)),COLOR00FF00;
end;
{-------------------------------------}
{小花园}
{-------------------------------------}
if 参618>-0.5 then
begin
倍数0618:=0.618+整体偏移+参618;
y0618:一浪长*倍数0618,linethick0;
P0618:=P三浪c+y0618,linethick0;
partline(barpos>=K三浪c,p0618),COLOR77FFFF,LINEDOT;
DRAWTEXT(barpos=K三浪c,P0618,numtostr(倍数0618,3)+' '+numtostr(P0618,3)),COLOR77FFFF;
倍数1618:=1.618+整体偏移+参618;
y1618:一浪长*倍数1618,linethick0;
P1618:=P三浪c+y1618,linethick0;
partline(barpos>=K三浪c,p1618),COLOR77FFFF,LINEDOT;
DRAWTEXT(barpos=K三浪c,P1618,numtostr(倍数1618,3)+' '+numtostr(P1618,3)),COLOR77FFFF;
倍数2618:=2.618+整体偏移+参618;
y2618:一浪长*倍数2618,linethick0;
P2618:=P三浪c+y2618,linethick0;
partline(barpos>=K三浪c,p2618),COLOR77FFFF,LINEDOT;
DRAWTEXT(barpos=K三浪c,P2618,numtostr(倍数2618,3)+' '+numtostr(P2618,3)),COLOR77FFFF;
end;
{-------------------------------------}
{-------------------------------------}
if 参壹>-0.5 then
begin
倍数壹:=1+整体偏移+参壹;
y壹:一浪长*倍数壹,linethick0;
P壹:P三浪c+y壹,linethICK0;
POLYLINE(barpos>=K三浪c,p壹),COLORffffff,LINEDOT;
DRAWTEXT(barpos=K三浪c,P壹,numtostr(倍数壹,0)+' '+numtostr(P壹,3)),COLORFFFFFF;
{DRAWTEXT(barpos=K三浪c,P1,Ƈ'),COLORFFFFFF;}
倍数贰:=2+整体偏移+参壹;
y贰:一浪长*倍数贰,linethick0;
P贰:P三浪c+y贰,linethICK0;
POLYLINE(barpos>=K三浪c,p贰),COLORffffff,LINEDOT;
DRAWTEXT(barpos=K三浪c,P贰,numtostr(倍数贰,0)+' '+numtostr(P贰,3)),COLORFFFFFF;
{按照飞狐原有参数,3倍的1这里先隐去,想恢复去掉下边前后的中括号即可}
{倍数叁:=3+整体偏移+参壹;
y叁:一浪长*倍数叁,linethick0;
P叁:P三浪c+y叁,linethICK0;
POLYLINE(barpos>=K三浪c,p叁),COLORffffff,LINEDOT;
DRAWTEXT(barpos=K三浪c,P叁,numtostr(倍数叁,0)+' '+numtostr(P叁,3)),COLORFFFFFF;
}
end;
{-------------------------------------}
if 参自定义1>-0.5 then
begin
倍数自定义1:= 参自定义1+整体偏移;
y自定义1:一浪长*倍数自定义1,linethick0;
P自定义1:=P三浪c+y自定义1,linethick0;
partline(barpos>=K三浪c,p自定义1),COLOR0000FF,LINEDOT;
DRAWTEXT(barpos=K三浪c,P自定义1,numtostr(倍数自定义1,3)+' '+numtostr(P自定义1,3)),COLOR0000FF;
end;
{-------------------------------------}
if 参自定义2>-0.5 then
begin
倍数自定义2:= 参自定义2+整体偏移;
y自定义2:一浪长*倍数自定义2,linethick0;
P自定义2:=P三浪c+y自定义2,linethick0;
partline(barpos>=K三浪c,p自定义2),COLOR0000FF,LINEDOT;
DRAWTEXT(barpos=K三浪c,P自定义2,numtostr(倍数自定义2,3)+' '+numtostr(P自定义2,3)),COLOR0000FF;
end;
{§历史影响现在,现在影响未来。§}
{-------------画k线---------------}
{觉得k线被线阻挡,就重新画k线}
{stickline(c>o,c,o,8,1),color5050ff;
stickline(c>o,h,c,0.5,0),color5050ff;
stickline(c>o,o,l,0.5,0),color5050ff;
stickline(c<o,o,c,8,0),colorffff50;
stickline(c<o,h,c,0.5,0),colorffff50;
stickline(c<o,o,l,0.5,0),colorffff50;}
分析一楼源码主要以SYSPARAM编制的,是其他软件独有函数,暂时无法改写
需要您调整一下思路,这里给您一个文化软件中波浪尺指标的编写参考:
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;//收盘价与N周期最低值做差,N周期最高值与N周期最低值做差,两差之间做比值。
K:SMA(RSV,3,1),NODRAW;//RSV的移动平均值
B1:=BARSLAST(CROSS(K,80))+1,NODRAW;
B2:=BARSLAST(CROSSDOWN(K,80))+1,NODRAW;
A1:=BARSLAST(CROSS(K,50))+1,NODRAW;
A2:=BARSLAST(CROSSDOWN(K,50))+1,NODRAW;
D1:=BARSLAST(CROSS(K,20))+1,NODRAW;
D2:=BARSLAST(CROSSDOWN(K,20))+1,NODRAW;
AH:VALUEWHEN(A2=1&&A1<B2,HV(H,A1)),NODRAW,COLORWHITE;
AHN:=BACKSET(A2=1&&A1<B2,REF(HHVBARS(H,A1),1)+2);
BH:VALUEWHEN(A2=1&&A1<B2,REF(HHV(H,B1),B2)),COLORYELLOW,NODRAW;
BHN:=BACKSET(A2=1&&A1<B2,REF(HHVBARS(H,B1),B2)+B2+1);
C1:=CROSS(BHN,0.5)&&AH<BH;
DRAWNUMBER(C1,H,1,0,COLORGREEN);
C3:=CROSS(AHN,0.5)&&COUNT(CROSS(BHN,0.5)&&AH<BH,SUMBARS(CROSS(AHN,0.5),2))=1;
DRAWNUMBER(C3,H,3,0,COLORGREEN);
XX:=BACKSET(C3,1+LLVBARS(L,SUMBARS(C1,1)));
C2:=CROSS(XX,0.5);
DRAWNUMBER(C2,L,2,0,COLORGREEN),VALIGN0;
DRAWLINE1(C1,H,C2,L,0),COLORGREEN;
DRAWLINE1(C2,L,C3,H,0),COLORGREEN;
CL:VALUEWHEN(A1=1&&A2<D1,LV(L,A2)),COLORMAGENTA,NODRAW;
CLN:=BACKSET(A1=1&&A2<D1,REF(LLVBARS(L,A2),1)+2);
DL:VALUEWHEN(A1=1&&A2<D1,REF(LLV(L,D2),D1)),COLORGREEN,NODRAW;
DLN:=BACKSET(A1=1&&A2<D1,REF(LLVBARS(L,D2),D1)+D1+1);
F1:=CROSS(DLN,0.5)&&CL>DL;
DRAWNUMBER(F1,L,1,0,COLORRED),VALIGN0;
F3:=CROSS(CLN,0.5)&&COUNT(F1,SUMBARS(CROSS(CLN,0.5),2))=1;
DRAWNUMBER(F3,L,3,0,COLORRED),VALIGN0;
SS:=BACKSET(F3,1+HHVBARS(H,SUMBARS(F1,1)));
F2:=CROSS(SS,0.5);
DRAWNUMBER(F2,H,2,0,COLORRED);
DRAWLINE1(F1,L,F2,H,0),COLORRED;
DRAWLINE1(F2,H,F3,L,0),COLORRED;
A:=BACKSET(ISLASTBAR,SUMBARS(CROSS(BHN,0.5)&&AH<BH,1));
DRAWWAVERULER(C1&&A,H,C2,L,C3,H,0.3,COLORGREEN);
DRAWWAVERULER(C1&&A,H,C2,L,C3,H,0.6,COLORGREEN);
DRAWWAVERULER(C1&&A,H,C2,L,C3,H,0.9,COLORGREEN);
AA:=BACKSET(ISLASTBAR,SUMBARS(CROSS(DLN,0.5)&&CL>DL,1));
DRAWWAVERULER(F1&&AA,L,F2,H,F3,L,0.3,COLORRED);
DRAWWAVERULER(F1&&AA,L,F2,H,F3,L,0.6,COLORRED);
DRAWWAVERULER(F1&&AA,L,F2,H,F3,L,0.9,COLORRED);