当前位置:→ 股票公式指标网 > 公式解答 > 正文 

    编写要求:

     

    www.gszx.com.cn网解答:

     网友求助:

    借用之前一位朋友的公式,举个例子。

    A1:=REF(HIGH,3)=HHV(HIGH,2*3+1);
    B1:=FILTER(A1,3);
    C1:=BACKSET(B1,3+1);
    D1:=FILTER(C1,3);{高点}
    A2:=REF(LOW,3)=LLV(LOW,2*3+1);
    B2:=FILTER(A2,3);
    C2:=BACKSET(B2,3+1);
    D2:=FILTER(C2,3);{低点}
    E1:=(REF(LLV(LOW,2*3),1)+REF(HHV(HIGH,2*3),1))/2;
    E2:=(HIGH+LOW)/2;{高低点出现在同一K线上时可作取舍}
    H1:=(D1 AND NOT(D2 AND E1>=E2)) OR ISLASTBAR OR BARSCOUNT(CLOSE)=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,LOW,10000),X1));
    G1:=F1>REF(F1,1);
    I1:=BACKSET(G1,2);
    LD:=I1>REF(I1,1);{过滤后低点}
    L2:=LD OR ISLASTBAR OR BARSCOUNT(CLOSE)=1;
    X2:=REF(BARSLAST(L2),1)+1;
    F2:=BACKSET(L2 AND COUNT(H2,X2)>0,HHVBARS(IF(H2,HIGH,0),X2));
    G2:=F2>REF(F2,1);
    I2:=BACKSET(G2,2);
    HD:=I2>REF(I2,1);{过滤后高点}
    {
    DRAWLINE(LD,L,HD,H,0),COLORWHITE,LINETHICK1,POINTDOT;
    DRAWLINE(HD,H,LD,L,0),COLORWHITE,LINETHICK1,POINTDOT;
    }
    J1:=BACKSET(ISLASTBAR,MIN(BARSLAST(HD),BARSLAST(LD))+1);
    J2:=J1>REF(J1,1);
    {
    DRAWLINE(J2,IF(HD,H,L),ISLASTBAR,IF(BARSLAST(HD)>BARSLAST(LD),H,L),0),
    COLORWHITE,LINETHICK1,POINTDOT;
    }


    A3:=H<REF(H,REF(BARSLAST(HD),1)+1);
    B3:=REF(H,REF(BARSLAST(HD),1)+1)>REF(H,REF(BARSLAST(HD),1)+2+REF(BARSLAST(HD),REF(BARSLAST(HD),1)+2));
    D3:=A3 AND B3 AND HD;
    E3:=BACKSET(D3,REF(BARSLAST(HD),1)+2);
    HH:=E3>REF(E3,1);{找出全部长期高点}
    A4:=L>REF(L,REF(BARSLAST(LD),1)+1);
    B4:=REF(L,REF(BARSLAST(LD),1)+1)<REF(L,REF(BARSLAST(LD),1)+2+REF(BARSLAST(LD),REF(BARSLAST(LD),1)+2));
    D4:=A4 AND B4 AND LD; E4:=BACKSET(D4,REF(BARSLAST(LD),1)+2);
    LL:=E4>REF(E4,1);{找出全部长期低点}
    DRAWICON(HH,H,10),ALIGN2; DRAWICON(LL,L,12),ALIGN1;
    H3:=HH OR ISLASTBAR OR BARSCOUNT(C)=1; {后面进行过滤,方法同前。只是不用考虑高低点出现在同一K线}
    X3:=REF(BARSLAST(H3),1)+1;
    F3:=BACKSET(H3 AND COUNT(LL,X3)>0,LLVBARS(IF(LL,L,POW(10,20)),X3));
    G3:=F3>REF(F3,1);
    I3:=BACKSET(G3,2);
    LZ:=I3>REF(I3,1),LINETHICK0; {长期低点,也可供引用}
    L4:=LZ OR ISLASTBAR OR BARSCOUNT(C)=1;
    X4:=REF(BARSLAST(L4),1)+1;
    F4:=BACKSET(L4 AND COUNT(HH,X4)>0,HHVBARS(IF(HH,H,-POW(10,20)),X4));
    G4:=F4>REF(F4,1);
    I4:=BACKSET(G4,2);
    HZ:=I4>REF(I4,1),LINETHICK0;{长期高点,也可供引用}
    DRAWLINE(HZ,H,LZ,L,0),COLORGREEN,LINETHICK1;
    DRAWLINE(LZ,L,HZ,H,0),COLORGREEN,LINETHICK1;{长期连线}
    K1:=BACKSET(ISLASTBAR,MIN(BARSLAST(HZ),BARSLAST(LZ))+1); K2:=K1>REF(K1,1);
    DRAWLINE(K2,IF(HZ,H,L),ISLASTBAR,C,0),COLORGREEN,LINETHICK2; {最后的长期连线,连在收盘价上}

    选第一低点:=BACKSET(ISLASTBAR,BARSLAST(lz)+1);
    第一低点:=选第一低点>REF(选第一低点,1);
    选第二低点:=BACKSET(选第一低点,REF(BARSLAST(lz),1)+2);
    第二低点:=选第二低点>REF(选第二低点,1);

    选第一高点:=BACKSET(ISLASTBAR,BARSLAST(hz)+1);
    第一高点:=选第一高点>REF(选第一高点,1);
    ----------------------------------------------------------

    接下来的思路是这样
    第一种情况下:
    如果 大波段的倒数的第一个低点,在大波段的倒数第一个高点之后才出现,
    那么就定位在大波段的倒数第二个低点上,
    就做这两个点(第二低点,第一高点)的趋势线。

    第二种情况下
    如果 大波段的倒数的第一个低点,在大波段的倒数第一个高点之前就出现了,没有后续的大波段低点了,
    那么就在这个第一个低点定位。

    就做这两个点(第一低点,第一高点)的趋势线。

    这两个条件是同时成立的。
    画出来是图上是只有一条向右上方延长的线出现。。。
     

    低点中两选一,在加一个高点,划出趋势线

    低点中两选一,在加一个高点,划出趋势线

    解答如下:
    j3:=sum(hz,0);
    j4:=sum(lz,0);
    j5:=j3[datacount]-j3+1;
    j6:=j4[datacount]-j4+1;
    j7:=barslast(hz);
    j8:=barslast(lz);
    j9:=j7[datacount];
    j10:=j8[datacount];
    drawline(lz and j6=2 and j9>j10,l,hz and j5=1,h,1)coloryellow;
    drawline(lz and j6=1 and j9<j10,l,hz and j5=1,h,1)coloryellow;

    低点中两选一,在加一个高点,划出趋势线

    低点中两选一,在加一个高点,划出趋势线

     

    互动内容:
    昵称: 验证码:验证码 

关于我们 - 联系我们 - 广告合作 - 下载声明 - 网站帮助 - 友情链接 - 网站地图 - RSS订阅 - TOP
Copyright © 铭网科技,All Rights Reserved. 湘ICP备09016573号-3
股票公式,股票指标,股票软件,股票知识
股票公式,股票指标,股票软件,股票知识湘公网安备43108102000039号