这是通达信的承压线的公式,想把他用在对数坐标中,不过不知道怎么修改,如果直接选对数坐标,出来的不是直线,是弧线。所以还请各位老师帮忙改为对数坐标的,在此感谢了! A1:=REF(H,N)=HHV(H,2*N+1); B1:=FILTER(A1,N); C1:=BACKSET(B1,N+1); D1:=FILTER(C1,N); A2:=REF(L,N)=LLV(L,2*N+1); B2:=FILTER(A2,N); C2:=BACKSET(B2,N+1); D2:=FILTER(C2,N); E1:=(REF(LLV(L,2*N),1)+REF(HHV(H,2*N),1))/2; E2:=(H+L)/2; H1:=(D1 AND NOT(D2 AND E1>=E2)) OR ISLASTBAR OR BARSCOUNT(C)=1; L1:=(D2 AND NOT(D1 AND E1=E2); X1:=REF(BARSLAST(H1),1)+1; F1:=BACKSET(H1 AND COUNT(L1,X1)>0,LLVBARS(IF(L1,L,10000),X1)); G1:=F1>REF(F1,1); I1:=BACKSET(G1,2); LD:=I1>REF(I1,1); L2:=LD OR ISLASTBAR OR BARSCOUNT(C)=1; X2:=REF(BARSLAST(L2),1)+1; F2:=BACKSET(L2 AND COUNT(H2,X2)>0,HHVBARS(IF(H2,H,0),X2)); G2:=F2>REF(F2,1); I2:=BACKSET(G2,2); HD:=I2>REF(I2,1); R1:=BACKSET(ISLASTBAR,BARSLAST(HD)+1); S1:=R1>REF(R1,1); T1:=BACKSET(ISLASTBAR,BARSLAST(LD)+1); U1:=T1>REF(T1,1); R2:=BACKSET(S1,REF(BARSLAST(HD),1)+2); S2:=R2>REF(R2,1); T2:=BACKSET(U1,REF(BARSLAST(LD),1)+2); U2:=T2>REF(T2,1); NOTEXT1:DRAWLINE(S2,H,S1,H,1),LINETHICK2,COLORRED ; NOTEXT2:DRAWLINE(U2,L,U1,L,1),LINETHICK2,COLORRED ;
爱约股解答:
Z0:=CONST(REF(C,1));
SS1:=Z0*1.1;SS2:=SS1*1.1;SS3:=SS2*1.1;SS4:=SS3*1.1;
XX1:=Z0*0.9;XX2:=XX1*0.9;XX3:=XX2*0.9;XX4:=XX3*0.9;
NOTEXT3:Z0,COLOR3232FF,POINTDOT;
NOTEXT4:SS1,COLOR3232FF,POINTDOT;
NOTEXT5:SS2,COLOR3232FF,POINTDOT;
NOTEXT6:SS3,COLOR3232FF,POINTDOT;
NOTEXT7:SS4,COLOR3232FF,POINTDOT;
NOTEXT8:XX1,COLOR3232FF,POINTDOT;
NOTEXT9:XX2,COLOR3232FF,POINTDOT;
NOTEXT10:XX3,COLOR3232FF,POINTDOT;
NOTEXT11:XX4,COLOR3232FF,POINTDOT;
DRAWKLINE(HIGH,OPEN,LOW,CLOSE);
DRAWTEXT(CURRBARSCOUNT=20,SS1,STRCAT('+10%= ',CON2STR(SS1,2))),COLOR3232FF;
DRAWTEXT(CURRBARSCOUNT=20,SS2,STRCAT('+20%= ',CON2STR(SS2,2))),COLOR3232FF;
DRAWTEXT(CURRBARSCOUNT=20,SS3,STRCAT('+30%= ',CON2STR(SS3,2))),COLOR3232FF;
DRAWTEXT(CURRBARSCOUNT=20,SS4,STRCAT('+40%= ',CON2STR(SS4,2))),COLOR3232FF;
DRAWTEXT(CURRBARSCOUNT=20,XX1,STRCAT('-10%= ',CON2STR(XX1,2))),COLOR3232FF;
DRAWTEXT(CURRBARSCOUNT=20,XX2,STRCAT('-20%= ',CON2STR(XX2,2))),COLOR3232FF;
DRAWTEXT(CURRBARSCOUNT=20,XX3,STRCAT('-30%= ',CON2STR(XX3,2))),COLOR3232FF;
DRAWTEXT(CURRBARSCOUNT=20,XX4,STRCAT('-40%= ',CON2STR(XX4,2))),COLOR3232FF;
N:=100;
A1:=REF(H,N)=HHV(H,2*N+1);
B1:=FILTER(A1,N);
C1:=BACKSET(B1,N+1);
D1:=FILTER(C1,N);
A2:=REF(L,N)=LLV(L,2*N+1);
B2:=FILTER(A2,N);
C2:=BACKSET(B2,N+1);
D2:=FILTER(C2,N);
E1:=(REF(LLV(L,2*N),1)+REF(HHV(H,2*N),1))/2;
E2:=(H+L)/2;
H1:=(D1 AND NOT(D2 AND E1>=E2)) OR ISLASTBAR OR BARSCOUNT(C)=1;
L1:=(D2 AND NOT(D1 AND E1<E2));
H2:=D1 AND NOT(D2 AND E1>=E2);
X1:=REF(BARSLAST(H1),1)+1;
F1:=BACKSET(H1 AND COUNT(L1,X1)>0,LLVBARS(IF(L1,L,10000),X1));
G1:=F1>REF(F1,1);
I1:=BACKSET(G1,2);
LD:=I1>REF(I1,1);
L2:=LD OR ISLASTBAR OR BARSCOUNT(C)=1;
X2:=REF(BARSLAST(L2),1)+1;
F2:=BACKSET(L2 AND COUNT(H2,X2)>0,HHVBARS(IF(H2,H,0),X2));
G2:=F2>REF(F2,1);
I2:=BACKSET(G2,2);
HD:=I2>REF(I2,1);
R1:=BACKSET(ISLASTBAR,BARSLAST(HD)+1);
S1:=R1>REF(R1,1);
T1:=BACKSET(ISLASTBAR,BARSLAST(LD)+1);
U1:=T1>REF(T1,1);
R2:=BACKSET(S1,REF(BARSLAST(HD),1)+2);
S2:=R2>REF(R2,1);
T2:=BACKSET(U1,REF(BARSLAST(LD),1)+2);
U2:=T2>REF(T2,1);
NOTEXT1:DRAWLINE(S2,H,S1,H,1),LINETHICK2,COLORRED;
NOTEXT2:DRAWLINE(U2,L,U1,L,1),LINETHICK2,COLORRED;