Stock Portfolio Organizer

The ultimate porfolio management solution.

Shares, Margin, CFD's, Futures and Forex
EOD and Realtime
Dividends and Trust Distributions
And Much More ....
For Portfolio Manager Click Here

WiseTrader Toolbox

#1 Selling Amibroker Plugin featuring:

Advanced Adaptive Indicators
Advanced Pattern Exploration
Neural Networks
And Much More ....
Find Out More Here

veryy good indicator for Amibroker (AFL)

Copy & Paste Friendly
SECTION_BEGIN("Price");
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
Plot( C, "Close", ParamColor("Color", colorWhite ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() ); 
_SECTION_END();
 
_SECTION_BEGIN("Gartley");
 
GBmin = Param("Swing B Min.",0.55,0.3,1,0.01);
GBmax = Param("Swing B Max.",0.72,0.4,1,0.01);
GCmin = Param("Swing C Min.",0.38,0.3,1.27,0.01);
GCmax = Param("Swing C Max.",1.0,0.4,1.27,0.01);
GDmin = Param("Swing D Min.(XA)",0.55,0.3,1,0.01);
GDmax = Param("Swing D Max.(XA)",1.0,0.4,1.0,0.01);
 
_SECTION_END();
 
_SECTION_BEGIN("Bat");
 
BatBmin = Param("Swing B Min.",0.38,0.3,1,0.01);
BatBmax = Param("Swing B Max.",0.55,0.4,1,0.01);
BatCmin = Param("Swing C Min.",0.38,0.3,1.62,0.01);
BatCmax = Param("Swing C Max.",1.27,0.4,1.62,0.01);
BatDmin = Param("Swing D Min.(XA)",0.5,0.3,1,0.01);
BatDmax = Param("Swing D Max.(XA)",1.0,0.4,1.0,0.01);
 
_SECTION_END();
 
_SECTION_BEGIN("Butterfly");
 
BtBmin = Param("Swing B Min.",0.55,0.3,1,0.01);
BtBmax = Param("Swing B Max.",0.9,0.4,1,0.01);
BtCmin = Param("Swing C Min.",0.38,0.3,1.62,0.01);
BtCmax = Param("Swing C Max.",1.27,0.4,1.62,0.01);
BtDmin = Param("Swing D Min.(XA)",1,1,1.8,0.01);
BtDmax = Param("Swing D Max.(XA)",1.8,1,1.8,0.01);                      // Max XA of Butterfly = (1.0 - 1.618)
 
_SECTION_END();
 
_SECTION_BEGIN("Crab");
 
CBmin = Param("Swing B Min.",0.38,0.3,1,0.01);
CBmax = Param("Swing B Max.",0.65,0.4,1,0.01);
CCmin = Param("Swing C Min.",0.38,0.3,1.62,0.01);
CCmax = Param("Swing C Max.",1.270,0.4,1.62,0.01);
CDmin = Param("Swing D Min.(XA)",1.25,1,1.8,0.01);
CDmax = Param("Swing D Max.(XA)",1.8,1,2,0.01);
 
_SECTION_END();
 
_SECTION_BEGIN("AB=CD");
 
abcd_Cmin = Param("Swing C Min.",0.3,       0.3 ,   1,      0.01);
abcd_Cmax = Param("Swing C Max.",0.8,       0.8 ,   1,      0.01);
abcd_Dmin = Param("Swing D Min.",1.2,       1,      2.7,    0.01);
abcd_Dmax = Param("Swing D Max.",3.7,       1,      4,      0.01);
 
_SECTION_END();
 
_SECTION_BEGIN("Patterns");
     
//strength = Param("Strength",5,2,15,1);                                    // Best use: 3, 4, 5
strength = Param("BARS of each LINE",5,2,15,1);                         // So luong bar cho moi duong XA, AB, BC, 
bu = ParamToggle("Bullish Pattern","Off|On",1);                         // So bar/lines se quyet dinh. mo^ hinh` duoc ve the' nao`
be = ParamToggle("Bearish Pattern","Off|On",1);
 
bi = Cum(1)-1;
 
function GetTop(bars)                                                       // Lay' gia' tri cao nhat' = di?nh
    {
        Top = H == HHV(H,2*bars) AND Ref(HHV(H,bars),bars) < H;
        Top = Top AND LastValue(bi)-ValueWhen(Top,bi) > bars;
        return Top;
    }
 
function GetValley(bars)                                                    // La'y gia tri thap' nhat' = day'
    {
        Valley = L == LLV(L,2*bars) AND Ref(LLV(L,bars),bars) > L;
        Valley = Valley AND LastValue(bi)-ValueWhen(Valley,bi) > bars;
        return Valley;
    }
 
 
// Build fractals array
 
P1 = GetTop(strength);                                      // so' bar cho 1 duong` XA, AB, BC, CD
V1 = GetValley(Strength);
 
P1 = IIf(P1,IIf(ValueWhen(P1,bi,2) < ValueWhen(V1,bi),P1,IIf(ValueWhen(P1,H,2) > H,False,P1)),P1);
P1 = IIf(P1 AND ValueWhen(P1,bi,0) > bi,IIf(ValueWhen(P1,bi,0) < ValueWhen(V1,bi,0),IIf(ValueWhen(P1,H,0) >= H,False,P1),P1),P1);
V1 = IIf(V1,IIf(ValueWhen(V1,bi,2) < ValueWhen(P1,bi),V1,IIf(ValueWhen(V1,L,2)<L,False,V1)),V1);
V1 = IIf(V1 AND ValueWhen(V1,bi,0) > bi ,IIf(ValueWhen(V1,bi,0) < ValueWhen(P1,bi,0),IIf(ValueWhen(V1,L,0) <= L, False,V1),V1),V1); 
 
 
P1H1 = ValueWhen(P1,H);
P1Bar1 = ValueWhen(P1,bi);
P1H2 = ValueWhen(P1,H,2);
P1Bar2 = ValueWhen(P1,bi,2);
V1L1 = ValueWhen(V1,L);
V1Bar1 = ValueWhen(V1,bi);
V1L2 = ValueWhen(V1,L,2);
V1Bar2 = ValueWhen(V1,bi,2);
 
 
//============================================
//              BULLISH PATTERNS
//============================================
/*
    Mo hinh Bullish:
    A   =   P1H2
    B   =   V1L1
    C   =   P1H1
    X   =   V1L2
 
*/
 
PTvalid = (P1Bar1 > V1Bar1 AND V1Bar1 > P1Bar2 AND P1bar2 > V1Bar2) AND P1; // Peaks and troughs are in order
 
myAX            =   P1H2-V1L2;
myAB            =   P1H2-V1L1;
myBC            =   P1H1-V1L1;
 
myAB_AX     =   myAB/ myAX;
myBC_AB     =   myBC/ myAB; 
 
BullGartley4        = PTvalid   AND     (   myAB_AX > GBmin  )       AND (   myAB_AX < GBmax  )
                                AND     (   myBC_AB > GCMin  )       AND (   myBC_AB < GCMax  ); 
 
BullBat4            = PTvalid   AND     (   myAB_AX > BatBmin )      AND (   myAB_AX < BatBmax    )
                                AND     (   myBC_AB > BatCMin )      AND (   myBC_AB < BatCMax    ); 
 
BullButterfly4  = PTvalid   AND     (   myAB_AX > BtBmin )       AND (   myAB_AX < BtBMax )
                                AND     (   myBC_AB > BtCmin )       AND (   myBC_AB < BtCmin     );
 
BullCrab4           = PTvalid   AND     (   myAB_AX > CBmin )            AND (   myAB_AX < CBmax  )
                                AND     (   myBC_AB > CCmin )        AND (   myBC_AB < CCmax  );
 
BullABCD4           = PTvalid AND   (   myBC_AB > abcd_Cmin)     AND (   myBC_AB < abcd_Cmax  );
 
strPattern = "";
 
//==================================================
//               BULLISH ABCD
//  Bullish pattern found. D retracement level is not evaluated
//==================================================
    dHigh       =       HighestSince(BullABCD4,H);              // Tinh' gia' tri min, max cua duong Ad. Duong Ad la duong con cua AD
    dLow        =       LowestSince(BullABCD4,L);
     
    myC         =       ValueWhen(BullABCD4,P1H1);
    myB         =       ValueWhen(BullABCD4,V1L1);
    myA         =       ValueWhen(BullABCD4,P1H2);
    myX         =       ValueWhen(BullABCD4,V1L2);
    myCB        =       myC - myB;
 
    my_d_min    =       myCB    *   abcd_DMin ;                 // Tinh' gia' tri cua duong Ad con. Khi gia' giam? tu` tre^n xuong' thi` max -> min
    my_d_max    =       myCB    *   abcd_DMax ;
    my_Cd_min   =       myC - my_d_min;                    // Khoang dich chuyen cua duong Ad con.
    my_Cd_max   =       myC - my_d_max;
 
BullABCD        =       IIf(        ( dLow  <    my_Cd_min   )   AND     ( dLow  > my_Cd_max )    
                                AND ( dHigh <=   myC     )   AND     ( dLow  ==  L), 
                                True, False
                            );
 
BullABCD        =       BullABCD    AND (dLow       <    myB);
 
 
//==================================================
//              BULLISH GARTLEY
//==================================================
    dHigh       =       HighestSince(BullGartley4,H);               // Tinh' gia' tri min, max cua duong Ad. Duong Ad la duong con cua AD
    dLow        =       LowestSince(BullGartley4,L);
 
    myC         =       ValueWhen(BullGartley4,P1H1);
    myB         =       ValueWhen(BullGartley4,V1L1);
    myA         =       ValueWhen(BullGartley4,P1H2);
    myX         =       ValueWhen(BullGartley4,V1L2);
    myAX        =       myA - myX;
 
    my_d_min    =       myAX    *   GDmin;                          // Tinh' gia' tri cua duong Ad con. Khi gia' giam? tu` tre^n xuong' thi` max -> min
    my_d_max    =       myAX    *   GDMax;
    my_Ad_min   =       myA - my_d_min;                         // Khoang dich chuyen cua duong Ad con.
    my_Ad_max   =       myA - my_d_max;
 
BullGartley     =       IIf(        ( dLow  <    my_Ad_min   )   AND     ( dLow  > my_Ad_max )    
                                AND ( dHigh <=   myC     )   AND     ( dLow  ==  L), 
                                True, False
                            );
BullGartley     =       BullGartley     AND (dLow       <    myB);                       // diem D thap' hon B
strPattern  =       WriteIf(BullGartley,"BULLISH GARTLEY",strPattern);
 
 
 
//==================================================
//              BULLISH BAT
//==================================================
    dHigh       =       HighestSince(BullBat4,H);               // Tinh' gia' tri min, max cua duong Ad. Duong Ad la duong con cua AD
    dLow        =       LowestSince(BullBat4,L);    
 
    myC         =       ValueWhen(BullBat4,P1H1);
    myB         =       ValueWhen(BullBat4,V1L1);
    myA         =       ValueWhen(BullBat4,P1H2);
    myX         =       ValueWhen(BullBat4,V1L2);
    myAX        =       myA - myX;
 
    my_d_min    =       myAX    *   BatDmin;                        // Tinh' gia' tri cua duong Ad con. Khi gia' giam? tu` tre^n xuong' thi` max -> min
    my_d_max    =       myAX    *   BatDmax ;
    my_Ad_min   =       myA - my_d_min;                         // Khoang dich chuyen cua duong Ad con.
    my_Ad_max   =       myA - my_d_max;
 
BullBat         =       IIf(        ( dLow  <    my_Ad_min   )   AND     ( dLow  > my_Ad_max )    
                                AND ( dHigh <=   myC     )   AND     ( dLow  ==  L), 
                                True, False
                            );
BullBat         =       BullBat     AND (dLow       <    myB);           // diem d thap hon diem B
strPattern  =       WriteIf(BullBat,"BULLISH BAT",strPattern);
 
 
//==================================================
//              BULLISH CRAB - CUA
//==================================================
    dHigh       =       HighestSince(BullCrab4,H);              // Tinh' gia' tri min, max cua duong Ad. Duong Ad la duong con cua AD
    dLow        =       LowestSince(BullCrab4,L);
 
    myC         =       ValueWhen(BullCrab4,P1H1);
    myB         =       ValueWhen(BullCrab4,V1L1);
    myA         =       ValueWhen(BullCrab4,P1H2);
    myX         =       ValueWhen(BullCrab4,V1L2);
    myAX        =       myA - myX;
 
    my_d_min    =       myAX    *   CDmin ;                 // Tinh' gia' tri cua duong Ad con. Khi gia' giam? tu` tre^n xuong' thi` max -> min
    my_d_max    =       myAX    *   CDmax ;
    my_Ad_min   =       myA - my_d_min;                     // Khoang dich chuyen cua duong Ad con.
    my_Ad_max   =       myA - my_d_max;
 
BullCrab        =       IIf(        ( dLow  <    my_Ad_min   )   AND     ( dLow  > my_Ad_max )    
                                AND ( dHigh <=   myC     )   AND     ( dLow  ==  L), 
                                True, False
                            );
BullCrab        =       BullCrab    AND (dLow       <    myX);                   // diem D thap' hon X
strPattern  =       WriteIf(BullCrab ,"BULLISH CRAB",strPattern);
 
 
//==================================================
//              BULLISH  BUTTTERFLY
//==================================================
    dHigh       =       HighestSince(BullButterfly4,H);             // Tinh' gia' tri min, max cua duong Ad. Duong Ad la duong con cua AD
    dLow        =       LowestSince(BullButterfly4,L);
 
    myC         =       ValueWhen(BullButterfly4,P1H1);
    myB         =       ValueWhen(BullButterfly4,V1L1);
    myA         =       ValueWhen(BullButterfly4,P1H2);
    myX         =       ValueWhen(BullButterfly4,V1L2);
    myAX        =       myA - myX;
 
    my_d_min    =       myAX    *   BtDmin ;                                // Tinh' gia' tri cua duong Ad con. Khi gia' giam? tu` tre^n xuong' thi` max -> min
    my_d_max    =       myAX    *   BtDmax ;
    my_Ad_min   =       myA - my_d_min;                                 // Khoang dich chuyen cua duong Ad con.
    my_Ad_max   =       myA - my_d_max;
 
BullButterfly   =       IIf(        ( dLow  <    my_Ad_min   )   AND     ( dLow  > my_Ad_max )    
                                    AND ( dHigh <=   myC     )   AND     ( dLow  ==  L), 
                                True, False
                                );
BullButterfly   =       BullButterfly   AND (dLow       <    myX);                   // diem D thap' hon X
strPattern      =       WriteIf(BullButterfly ,"BULLISH BUTTERFLY",strPattern);
 
 
 
//==========================================================
//   VE DUONG CHO MO HINH BULLISH ABCB 
//==========================================================
BullHar4    =  BullABCD4;
BullHar     =  BullABCD;
 
Point4 = IIf(BullHar,ValueWhen(BullHar4,bi),Null);
BullHar = IIf(BullHar, IIf(Point4 == ValueWhen(BullHar,point4,0) AND ValueWhen(BullHar,bi,0) > bi ,False,BullHar),BullHar);
 
A = ValueWhen(BullHar4,P1H2);
Abar = ValueWhen(BullHar4,P1bar2);
B = ValueWhen(BullHar4,V1L1);
Bbar = ValueWhen(BullHar4,V1bar1);
C1 = ValueWhen(BullHar4,P1H1);
C1bar = ValueWhen(BullHar4,P1bar1);
D = ValueWhen(BullHar,L);
Dbar = ValueWhen(BullHar,bi);
 
BCdAB = (C1-B)/(A-B);
BCdCD = (C1-D)/(C1-B);
 
PlotPattern = Dbar > C1bar;
 
if(LastValue(PlotPattern) AND bu)
{
        ColorX = colorGreen;
    // Ve cac duong AB, BC, CD
        Plot(LineArray(LastValue(Abar),LastValue(A),LastValue(Bbar),LastValue(B)),"",ColorX ,styleThick);
        Plot(LineArray(LastValue(Bbar),LastValue(B),LastValue(C1bar),LastValue(C1)),"",ColorX ,styleThick);
        Plot(LineArray(LastValue(C1bar),LastValue(C1),LastValue(Dbar),LastValue(D)),"",ColorX ,styleThick);
        Plot(LineArray(LastValue(Abar),LastValue(A),LastValue(C1bar),LastValue(C1)),"",ColorX ,styleDashed);
        Plot(LineArray(LastValue(Bbar),LastValue(B),LastValue(Dbar),LastValue(D)),"",ColorX ,styleDashed);
 
    // Ve cac gia tri Fibo
        PlotText(NumToStr(LastValue(BCdAB),1.2),(LastValue(C1bar)+LastValue(Abar))/2,(LastValue(C1)+LastValue(A))/2,ColorX );
        PlotText(NumToStr(LastValue(BCdCD),1.2),(LastValue(Bbar)+LastValue(Dbar))/2,(LastValue(B)+LastValue(D))/2,ColorX );
 
    //---------- Viet cac diem X, A, B, C, D: by binhnd---------------------
        xlech       =   0;
        ylech       =   2;
        PlotText("A",LastValue(Abar)    +   xlech,  LastValue(A)    +   ylech,  ColorX );
        PlotText("B",LastValue(Bbar)    +   xlech,  LastValue(B)    -   ylech,  ColorX );
        PlotText("C",LastValue(C1bar)   +   xlech,  LastValue(C1)   +   ylech,  ColorX );
        PlotText("D",LastValue(Dbar)    +   xlech,  LastValue(D)    -   ylech,  ColorX );
 
    //--------- Viet thuyet minh mo hinh: by binhnd--------------
        if (strPattern!="")  
        {
            myStr           =   "Pattern: BULLISH AB=CD";
            toadoX          =   LastValue(Abar);
            toadoY          =   LastValue(D);
 
            PlotText(myStr,toadoX,toadoY,ColorX );
        }
 
}           //  end of Ve duong` bullish abcd
 
 
 
//==========================================================
//   VE DUONG CHO MO HINH BULLISH BAT, GARTLEY, BUTTERFLY, CRAB
//==========================================================
 
 
BullHar4 = BullGartley4 OR BullButterfly4 OR BullBat4 OR BullCrab4 ;
BullHar = BullGartley OR BullButterfly OR BullBat OR BullCrab;
 
Point4 = IIf(BullHar,ValueWhen(BullHar4,bi),Null);
BullHar = IIf(BullHar, IIf(Point4 == ValueWhen(BullHar,point4,0) AND ValueWhen(BullHar,bi,0) > bi ,False,BullHar),BullHar);
 
X = ValueWhen(BullHar4,V1L2);
Xbar = ValueWhen(BullHar4,V1Bar2);
A = ValueWhen(BullHar4,P1H2);
Abar = ValueWhen(BullHar4,P1bar2);
B = ValueWhen(BullHar4,V1L1);
Bbar = ValueWhen(BullHar4,V1bar1);
C1 = ValueWhen(BullHar4,P1H1);
C1bar = ValueWhen(BullHar4,P1bar1);
D = ValueWhen(BullHar,L);
Dbar = ValueWhen(BullHar,bi);
 
ABdXA = (A-B)/(A-X);
BCdAB = (C1-B)/(A-B);
ADdXA = (A-D)/(A-X);
BCdCD = (C1-D)/(C1-B);
 
PlotPattern = Dbar > C1bar;
 
if(LastValue(PlotPattern) AND bu)
{
            ColorX  = colorBlue;
        // Ve cac duong XA, AB, BC, CD
            Plot( LineArray(LastValue(Xbar),LastValue(X),LastValue(Abar),LastValue(A)),"",ColorX,styleThick);
            Plot(LineArray(LastValue(Abar),LastValue(A),LastValue(Bbar),LastValue(B)),"",ColorX,styleThick);
            Plot(LineArray(LastValue(Bbar),LastValue(B),LastValue(C1bar),LastValue(C1)),"",ColorX,styleThick);
            Plot(LineArray(LastValue(C1bar),LastValue(C1),LastValue(Dbar),LastValue(D)),"",ColorX,styleThick);
            Plot(LineArray(LastValue(Xbar),LastValue(X),LastValue(Bbar),LastValue(B)),"",ColorX,styleDashed);
            Plot(LineArray(LastValue(Xbar),LastValue(X),LastValue(Abar),LastValue(A)),"",ColorX,styleThick);
            Plot(LineArray(LastValue(Abar),LastValue(A),LastValue(C1bar),LastValue(C1)),"",ColorX,styleDashed);
            Plot(LineArray(LastValue(Bbar),LastValue(B),LastValue(Dbar),LastValue(D)),"",ColorX,styleDashed);
            Plot(LineArray(LastValue(Xbar),LastValue(X),LastValue(Dbar),LastValue(D)),"",ColorX,styleDashed);
 
        // Ve cac gia tri Fibo
            PlotText(NumToStr(LastValue(ABdXA),1.2),(LastValue(Bbar)+LastValue(Xbar))/2,(LastValue(B)+LastValue(X))/2,ColorX);
            PlotText(NumToStr(LastValue(BCdAB),1.2),(LastValue(C1bar)+LastValue(Abar))/2,(LastValue(C1)+LastValue(A))/2,ColorX);
            PlotText(NumToStr(LastValue(ADdXA),1.2) ,(LastValue(Dbar)+LastValue(Xbar))/2,(LastValue(D)+LastValue(X))/2,ColorX);
            PlotText(NumToStr(LastValue(BCdCD),1.2),(LastValue(Bbar)+LastValue(Dbar))/2,(LastValue(B)+LastValue(D))/2,ColorX);
 
        //---------- Viet cac diem X, A, B, C, D: by binhnd---------------------
            xlech       =   0;
            ylech       =   2;
            PlotText("X",LastValue(Xbar)    +   xlech,  LastValue(X)    -   ylech,  ColorX);
            PlotText("A",LastValue(Abar)    +   xlech,  LastValue(A)    +   ylech,  ColorX);
            PlotText("B",LastValue(Bbar)    +   xlech,  LastValue(B)    -   ylech,  ColorX);
            PlotText("C",LastValue(C1bar)   +   xlech,  LastValue(C1)   +   ylech,  ColorX);
            PlotText("D",LastValue(Dbar)    +   xlech,  LastValue(D)    -   ylech,  ColorX);
 
        //--------- Viet thuyet minh mo hinh: by binhnd--------------
            if (strPattern!="")  
            {
                strPattern  =   "Pattern: " + strPattern;
                toadoX          =   (LastValue(Dbar)+LastValue(Xbar))/2;
                toadoY          =   (LastValue(D)+LastValue(X))/2;
 
                PlotText(strPattern,toadoX,toadoY-2,ColorX);
            }
 
}           // end of Ve duong cho cac mo hinh Crab, Butterfly, Bat
 
 
//=============================================================
//              BEARISH PATTERNS
//=============================================================
 
PTvalid = (V1Bar1 > P1Bar1 AND P1Bar1 > V1Bar2 AND V1Bar2 > P1Bar2) AND V1;
 
/*=====================
        X   =   P1H2                     Trong mo hinh` bear: Die^m X cao hon diem A. MyAX = X-> A
        A   =   V1L2
        B   =   P1H1
        C   =   V1L1
 
=======================*/
myAX            =   P1H2-V1L2;              
myAB            =   P1H1-V1L2;
myBC            =   P1H1-V1L1;
 
myAB_AX     =   myAB/ myAX;
myBC_AB     =   myBC/ myAB; 
 
BearGartley4        = PTvalid   AND     (   myAB_AX > GBmin  )       AND (   myAB_AX < GBmax  )
                                AND     (   myBC_AB > GCMin  )       AND (   myBC_AB < GCMax  ); 
 
BearBat4            = PTvalid   AND     (   myAB_AX > BatBmin )      AND (   myAB_AX < BatBmax    )
                                AND     (   myBC_AB > BatCMin )      AND (   myBC_AB < BatCMax    ); 
 
BearButterfly4  = PTvalid   AND     (   myAB_AX > BtBmin )       AND (   myAB_AX < BtBMax )
                                AND     (   myBC_AB > BtCmin )       AND (   myBC_AB < BtCmin     );
 
BearCrab4           = PTvalid   AND     (   myAB_AX > CBmin )            AND (   myAB_AX < CBmax  )
                                AND     (   myBC_AB > CCmin )        AND (   myBC_AB < CCmax  );
 
BearABCD4           = PTvalid AND   (   myBC_AB > abcd_Cmin)     AND (   myBC_AB < abcd_Cmax  );
 
strPattern = "";
 
 
 
//==========================================================
//               BEARISH ABCD
//  Bearish pattern found. D retracement level is not evaluated
//==========================================================
    dHigh       =       HighestSince(BearABCD4,H);              // Tinh' gia' tri min, max cua duong Ad. Duong Ad la duong con cua AD
    dLow        =       LowestSince(BearABCD4,L);
     
    myA         =       ValueWhen(BearABCD4,V1L2);
    myB         =       ValueWhen(BearABCD4,P1H1);
    myC         =       ValueWhen(BearABCD4,V1L1);
    myCB        =       myB - myC;
 
    my_d_min    =       myCB    *   abcd_DMin ;                 // Tinh' gia' tri cua duong Ad con. Khi gia' giam? tu` tre^n xuong' thi` max -> min
    my_d_max    =       myCB    *   abcd_DMax ;
    my_Cd_min   =       myC + my_d_min;                    // Khoang dich chuyen cua duong Ad con.
    my_Cd_max   =       myC + my_d_max;
 
BearABCD        =       IIf(        ( dHigh     >    my_Cd_min   )   AND     ( dHigh < my_Cd_max )    
                                AND ( dLow      >=   myC         )   AND     ( dHigh ==  H), 
                                True, False
                            );
 
BearABCD        =       BearABCD    AND (dHigh      >    myB);
 
//=============================================================
//              BEARISH GARTLEY
//=============================================================
    dHigh       =       HighestSince(BearGartley4,H);       // Tinh' gia' tri min, max cua duong Ad. Duong Ad la duong con cua AD
    dLow        =       LowestSince(BearGartley4,L);
 
    myX         =       ValueWhen(BearGartley4,P1H2);
    myA         =       ValueWhen(BearGartley4,V1L2);
    myAX        =       myX - myA;
 
    myB         =       ValueWhen(BearGartley4,P1H1);
    myC         =       ValueWhen(BearGartley4,V1L1);
 
 
    my_d_min    =       myAX    *   GDmin;                      // Tinh' gia' tri cua duong Ad con. Khi gia' giam? tu` tre^n xuong' thi` max -> min
    my_d_max    =       myAX    *   GDMax;
    my_Ad_min   =       myA     +   my_d_min;                   // Khoang dich chuyen cua duong Ad con.
    my_Ad_max   =       myA     +   my_d_max;
 
BearGartley     =       IIf(        ( dHigh >    my_Ad_min   )   AND     ( dHigh < my_Ad_max )    
                                AND ( dLow      >=   myC         )   AND     ( dHigh ==  H), 
                                True, False
                            );
BearGartley     =       BearGartley     AND (dHigh      >    myB);                       // diem D cao hon B
strPattern  =       WriteIf(BearGartley ,"BEARISH GARTLEY",strPattern);
 
//=============================================================
//              BEARISH BAT
//=============================================================
    dHigh       =       HighestSince(BearBat4,H);       // Tinh' gia' tri min, max cua duong Ad. Duong Ad la duong con cua AD
    dLow        =       LowestSince(BearBat4,L);
 
    myX         =       ValueWhen(BearBat4,P1H2);
    myA         =       ValueWhen(BearBat4,V1L2);
    myAX        =       myX - myA;
 
    myB         =       ValueWhen(BearBat4,P1H1);
    myC         =       ValueWhen(BearBat4,V1L1);
 
 
    my_d_min    =       myAX    *   BatDmin ;                       // Tinh' gia' tri cua duong Ad con. Khi gia' giam? tu` tre^n xuong' thi` max -> min
    my_d_max    =       myAX    *   BatDMax ;
    my_Ad_min   =       myA     +   my_d_min;                   // Khoang dich chuyen cua duong Ad con.
    my_Ad_max   =       myA     +   my_d_max;
 
BearBat         =       IIf(        ( dHigh >    my_Ad_min   )   AND     ( dHigh < my_Ad_max )    
                                AND ( dLow      >=   myC         )   AND     ( dHigh ==  H), 
                                True, False
                            );
BearBat         =       BearBat     AND (dHigh      >    myB);                       // diem D cao hon B
strPattern  =       WriteIf(BearBat ,"BEARISH BAT",strPattern);
 
 
//=============================================================
//              BEARISH BUTTERFLY
//=============================================================
    dHigh       =       HighestSince(BearButterfly4,H);     // Tinh' gia' tri min, max cua duong Ad. Duong Ad la duong con cua AD
    dLow        =       LowestSince(BearButterfly4,L);
 
    myX         =       ValueWhen(BearButterfly4,P1H2);
    myA         =       ValueWhen(BearButterfly4,V1L2);
    myAX        =       myX - myA;
 
    myB         =       ValueWhen(BearButterfly4,P1H1);
    myC         =       ValueWhen(BearButterfly4,V1L1);
 
 
    my_d_min    =       myAX    *   BtDmin ;                        // Tinh' gia' tri cua duong Ad con. Khi gia' giam? tu` tre^n xuong' thi` max -> min
    my_d_max    =       myAX    *   BtDmax ;
    my_Ad_min   =       myA     +   my_d_min;                       // Khoang dich chuyen cua duong Ad con.
    my_Ad_max   =       myA     +   my_d_max;
 
BearButterfly =         IIf(        ( dHigh >    my_Ad_min   )   AND     ( dHigh < my_Ad_max )    
                                AND ( dLow      >=   myC         )   AND     ( dHigh ==  H), 
                                True, False
                            );
BearButterfly   =       BearButterfly   AND (dHigh      >    myX);                       // diem D cao hon X
strPattern      =       WriteIf(BearButterfly ,"BEARISH BUTTERFLY",strPattern);
 
 
 
//=============================================================
//              BEARISH CRAB
//=============================================================
    dHigh       =       HighestSince(BearCrab4,H);              // Tinh' gia' tri min, max cua duong Ad. Duong Ad la duong con cua AD
    dLow        =       LowestSince(BearCrab4,L);
 
    myX         =       ValueWhen(BearCrab4,P1H2);
    myA         =       ValueWhen(BearCrab4,V1L2);
    myAX        =       myX - myA;
 
    myB         =       ValueWhen(BearCrab4,P1H1);
    myC         =       ValueWhen(BearCrab4,V1L1);
 
 
    my_d_min    =       myAX    *   CDmin ;                     // Tinh' gia' tri cua duong Ad con. Khi gia' giam? tu` tre^n xuong' thi` max -> min
    my_d_max    =       myAX    *   CDmax ;
    my_Ad_min   =       myA     +   my_d_min;                       // Khoang dich chuyen cua duong Ad con.
    my_Ad_max   =       myA     +   my_d_max;
 
BearCrab        =       IIf(        ( dHigh >    my_Ad_min   )   AND     ( dHigh < my_Ad_max )    
                                AND ( dLow      >=   myC         )   AND     ( dHigh ==  H), 
                                True, False
                            );
BearCrab        =       BearCrab    AND (dHigh      >    myX);                       // diem D cao hon X
strPattern  =       WriteIf(BearCrab ,"BEARISH CRAB",strPattern);
 
 
 
//==========================================================
//   VE DUONG CHO MO HINH BEARISH ABCD
//==========================================================
 
 
BearHar4 = BearABCD4;
BearHar = BearABCD;
 
Point4 = IIf(BearHar,ValueWhen(BearHar4,bi),Null);
BearHar = IIf(BearHar, IIf(Point4 == ValueWhen(BearHar,point4,0) AND ValueWhen(BearHar,bi,0) > bi ,False,BearHar),BearHar);
 
A = ValueWhen(BearHar4,V1L2);
Abar = ValueWhen( BearHar4,V1bar2);
B = ValueWhen(BearHar4,P1H1);
Bbar = ValueWhen(BearHar4,P1bar1);
C1 = ValueWhen(BearHar4,V1L1);
C1bar = ValueWhen(BearHar4,V1bar1);
D = ValueWhen(BearHar,H);
Dbar = ValueWhen(BearHar,bi);
 
BCdAB = (B-C1)/(B-A);
BCdCD = (D-C1)/(B-C1);
 
PlotPattern = Dbar > C1bar;
 
//--------- Ve duong ------------------
if(LastValue(Plotpattern) AND be)
{
        ColorX = colorYellow;
    // Ve duong AB, BC
        Plot(LineArray(LastValue(Abar),LastValue(A),LastValue(Bbar),LastValue(B)),"",ColorX ,styleThick);
        Plot(LineArray(LastValue(Bbar),LastValue(B),LastValue(C1bar),LastValue(C1)),"",ColorX ,styleThick);
        Plot(LineArray(LastValue(C1bar),LastValue(C1),LastValue(Dbar),LastValue(D)),"",ColorX ,styleThick);
        Plot(LineArray(LastValue(Abar),LastValue(A),LastValue(C1bar),LastValue(C1)),"",ColorX ,styleDashed);
        Plot(LineArray(LastValue(Bbar),LastValue(B),LastValue(Dbar),LastValue(D)),"",ColorX ,styleDashed);
 
    // Viet cac gia tri Fibo tren duong AB, BC
        PlotText(NumToStr(LastValue(BCdAB),1.2),(LastValue(C1bar)+LastValue(Abar))/2,(LastValue(C1)+LastValue(A))/2,ColorX );
        PlotText(NumToStr(LastValue(BCdCD),1.2) ,(LastValue(Dbar)+LastValue(Bbar))/2,(LastValue(D)+LastValue(B))/2,ColorX );
 
    //---------- Viet cac diem A, B, C, D: by binhnd---------------------
        xlech       =   -1;
        ylech       =   1;
        PlotText("A",LastValue(Abar)    +   xlech,  LastValue(A)    -   ylech,  ColorX );
        PlotText("B",LastValue(Bbar)    +   xlech,  LastValue(B)    +   ylech,  ColorX );
        PlotText("C",LastValue(C1bar)   +   xlech,  LastValue(C1)   -   ylech,  ColorX );
        PlotText("D",LastValue(Dbar)    +   xlech,  LastValue(D)    +   ylech,  ColorX );
 
    //--------- Viet thuyet minh mo hinh: by binhnd--------------
        if (strPattern!="") 
            {
                myStr           =   "Pattern: BEARISH AB=CD";
                toadoaX     =   LastValue(Abar);
                toadoY          =   LastValue(D);
 
                PlotText(myStr,toadoaX,toadoY+1,ColorX );
            }
     
}           // end of VE DUONG CHO MO HINH BEARISH ABCD
 
 
//==========================================================
//   VE DUONG CHO MO HINH BEARISH BAT, GARTLEY, BUTTERFLY, CRAB
//==========================================================
 
BearHar4 = BearGartley4 OR BearButterfly4 OR BearBat4 OR BearCrab4 ;
BearHar = BearGartley OR BearButterfly OR BearBat OR BearCrab ;
 
Point4 = IIf(BearHar,ValueWhen(BearHar4,bi),Null);
BearHar = IIf(BearHar, IIf(Point4 == ValueWhen(BearHar,point4,0) AND ValueWhen(BearHar,bi,0) > bi ,False,BearHar),BearHar);
 
X = ValueWhen(BearHar4,P1H2);
Xbar = ValueWhen(BearHar4,P1Bar2);
A = ValueWhen(BearHar4,V1L2);
Abar = ValueWhen( BearHar4,V1bar2);
B = ValueWhen(BearHar4,P1H1);
Bbar = ValueWhen(BearHar4,P1bar1);
C1 = ValueWhen(BearHar4,V1L1);
C1bar = ValueWhen(BearHar4,V1bar1);
D = ValueWhen(BearHar,H);
Dbar = ValueWhen(BearHar,bi);
 
ABdXA = (B-A)/(X-A);
BCdAB = (B-C1)/(B-A);
ADdXA = (D-A)/(X-A);
BCdCD = (D-C1)/(B-C1);
 
PlotPattern = Dbar > C1bar;
 
//--------- Ve duong ------------------
if(LastValue(Plotpattern) AND be)
{
        ColorX = colorRed;
    // Ve duong XA, AB, BC
        Plot( LineArray(LastValue(Xbar),LastValue(X),LastValue(Abar),LastValue(A)),"",ColorX ,styleThick);
        Plot(LineArray(LastValue(Abar),LastValue(A),LastValue(Bbar),LastValue(B)),"",ColorX ,styleThick);
        Plot(LineArray(LastValue(Bbar),LastValue(B),LastValue(C1bar),LastValue(C1)),"",ColorX ,styleThick);
        Plot(LineArray(LastValue(C1bar),LastValue(C1),LastValue(Dbar),LastValue(D)),"",ColorX ,styleThick);
        Plot(LineArray(LastValue(Xbar),LastValue(X),LastValue(Bbar),LastValue(B)),"",ColorX ,styleDashed);
        Plot(LineArray(LastValue(Xbar),LastValue(X),LastValue(Abar),LastValue(A)),"",ColorX ,styleThick);
        Plot(LineArray(LastValue(Abar),LastValue(A),LastValue(C1bar),LastValue(C1)),"",ColorX ,styleDashed);
        Plot(LineArray(LastValue(Bbar),LastValue(B),LastValue(Dbar),LastValue(D)),"",ColorX ,styleDashed);
        Plot(LineArray(LastValue(Xbar),LastValue(X),LastValue(Dbar),LastValue(D)),"",ColorX ,styleDashed);
 
    // Viet cac gia tri Fibo tren duong XA, AB, BC
        PlotText(NumToStr(LastValue(ABdXA),1.2),(LastValue(Bbar)+LastValue(Xbar))/2,(LastValue(B)+LastValue(X))/2,ColorX );
        PlotText(NumToStr(LastValue(BCdAB),1.2),(LastValue(C1bar)+LastValue(Abar))/2,(LastValue(C1)+LastValue(A))/2,ColorX );
        PlotText(NumToStr(LastValue(BCdCD),1.2) ,(LastValue(Dbar)+LastValue(Bbar))/2,(LastValue(D)+LastValue(B))/2,ColorX );
        PlotText(NumToStr(LastValue(ADdXA),1.2) ,(LastValue(Dbar)+LastValue(Xbar))/2,(LastValue(D)+LastValue(X))/2,ColorX );
 
    //---------- Viet cac diem X, A, B, C, D: by binhnd---------------------
        xlech       =   -1;
        ylech       =   1;
        PlotText("X",LastValue(Xbar)    +   xlech,  LastValue(X)    +   ylech,  ColorX );
        PlotText("A",LastValue(Abar)    +   xlech,  LastValue(A)    -   ylech,  ColorX );
        PlotText("B",LastValue(Bbar)    +   xlech,  LastValue(B)    +   ylech,  ColorX );
        PlotText("C",LastValue(C1bar)   +   xlech,  LastValue(C1)   -   ylech,  ColorX );
        PlotText("D",LastValue(Dbar)    +   xlech,  LastValue(D)    +   ylech,  ColorX );
 
    //--------- Viet thuyet minh mo hinh: by binhnd--------------
        if (strPattern!="") 
            {
                strPattern  =   "Pattern: " + strPattern;
                toadoaX     =   (LastValue(Dbar)+LastValue(Xbar))/2;
                toadoY          =   (LastValue(D)+LastValue(X))/2;
 
                PlotText(strPattern,toadoaX,toadoY+1,ColorX );
            }
     
}           // end of VE DUONG CHO MO HINH BEARISH BAT, GARTLEY, BUTTERFLY, CRAB
 
 
 
 
//=================================
// Show diem ho^~ tro. va` khang' cu. ko?
//=================================
 
plotFractals = ParamToggle("Plot Fractals","Off|On",1);             
if(PlotFractals)
{
    PlotShapes(shapeSmallCircle*P1,colorRed,0,H,10);
    PlotShapes(shapeSmallCircle*V1,colorBlue,0,L,-10);
}
 
 
 
//==============================================
// DAT DIEU KIEN cho TIM KIEM BULL
//==============================================
dkBull = False;
ListBull        =   ParamList("Type of Bullish", "None|AB=CD|Gartley|Butterfly|Bat|Crab|All Patterns", 6);
    if  (   ListBull == "None"      )       dkBull =    True;
    if (    ListBull =="AB=CD"      )       dkBull  =   BullABCD ;
    if (    ListBull =="Gartley"        )       dkBull  =   BullGartley ;
    if (    ListBull =="Butterfly"  )       dkBull  =   BullButterfly ;
    if (    ListBull =="Bat"            )       dkBull  =   BullBat ;
    if (    ListBull =="Crab"           )       dkBull  =   BullCrab ;
    if (    ListBull =="All Patterns")      dkBull  =   (BullABCD) OR (BullGartley) OR (BullButterfly ) OR (BullBat ) OR (BullCrab);
 
//==============================================
// DAT DIEU KIEN cho TIM KIEM BEAR
//==============================================
dkBear = False;
ListBear        =   ParamList("Type of Bearish", "None|AB=CD|Gartley|Butterfly|Bat|Crab|All Patterns", 0);
    if  (   ListBear == "None"      )       dkBear =    True;
    if (    ListBear =="AB=CD"      )       dkBear  =   BearABCD ;
    if (    ListBear =="Gartley"        )       dkBear  =   BearGartley ;
    if (    ListBear =="Butterfly"  )       dkBear  =   BearButterfly ;
    if (    ListBear =="Bat"            )       dkBear  =   BearBat ;
    if (    ListBear =="Crab"           )       dkBear =    BearCrab ;
    if (    ListBear =="All Patterns")      dkBear =    (BearABCD ) OR (BearGartley ) OR (BearButterfly ) OR (BearBat ) OR (BearCrab );
//===============================
 
AddColumn(V,"Volume",1.0);
Filter = (dkBull) AND (dkBear);_SECTION_BEGIN("i");
/* ICHIMOKU CHART */ 
n1 = Param("E?è?îê?: ï??èî? 1",9,1,200,1); 
n2 = Param("E?è?îê?: ï??èî? 2",26,1,400,1); 
n3 = Param("E?è?îê?: ï??èî? 3",52,1,600,1); 

TenkanSen   =(HHV(H,n1)+LLV(L,n1))/2;            // Tenkan-sen (???êà?-???) – ??î ??????? ç?à÷??è? ???û çà ï??âûé ï?î?????îê â?????è (?àâ?à (high+low)/2, ??? high è low – ?àê?è??? è ?è?è??? çà ï??èî?). 
KijunSen    =(HHV(H,n2)+LLV(L,n2))/2;            // Kijun-sen (Eè????-???) – ??î ??????? ç?à÷??è? ???û çà â?î?îé ï?î?????îê. 
ChinkouSpan =Ref(C,-n2);                          // Chinkou Span (×èêî? ?ï??) - ???à çàê?û?è? ??ê?ù??î ?à?à, ??âè???à? ?àçà? ?à â?ëè÷è?? â?î?î?î â??????î?î è????âàëà. 
Cks         = Close;                             // ??àôè÷??êèé Chinkou Span, ??âè? ?àçà? çà?÷?? î??è?îâêè. 
SenkouSpanA =Ref((KijunSen+TenkanSen)/2,-n2);    // Senkou Span A (???êî? ?ï?? A) / Up Kumo - ?????è?à ?à???î??è? ????? Tenkan-sen è Kijun-sen, ??âè???î? âï???? ?à â?ëè÷è?? â?î?î?î â??????î?î è????âàëà. 
SpA         =(KijunSen+TenkanSen)/2;             // ??àôè÷??êèé Senkou Span A , ??âè? âï???? çà?÷?? î??è?îâêè. 
SenkouSpanB =Ref((HHV(H,n3)+LLV(L,n3))/2,-n2);   // Senkou Span B (???êî? ?ï?? A) / Down Kumo - ??????? ç?à÷??è? ???û çà ????èé â??????îé è????âàë, ??âè???î? âï???? ?à â?ëè÷è?? â?î?î?î â??????î?î è????âàëà. 
SpB         =(HHV(H,n3)+LLV(L,n3))/2;            // ??àôè÷??êèé Senkou Span B, ??âè? âï???? çà?÷?? î??è?îâêè. 
DL = Ref( C, 25 );


Cond1 =  Ref(Close > Max(SenkouSpanA,SenkouSpanB),-1);  //???à âû?? î?ëàêà  -- ?û÷ü? ?à???î??è? 
Cond2 =  Ref(Close < Min(SenkouSpanA,SenkouSpanB),-1);  //???à ?è?? î?ëàêà  -- ???â??ü? ?à???î??è? 
Cond3 =  Ref(Cross(TenkanSen,KijunSen),-1);  //ï?????÷??è? ???êà? è Eè???? -- ?è??àë ?à ïîê?ïê? 
Cond4 =  Ref(Cross(KijunSen,TenkanSen),-1);  //ï?????÷??è? ???êà? è Eè???? -- ?è??àë ?à ï?î?à?? 
Cond5 =  Ref(Cross(Close,ChinkouSpan ),-1);  //ï?????÷??è? ×èêî? è ???û 
Cond6 =  Ref(Cross(ChinkouSpan ,Close),-1);  //ï?????÷??è? ×èêî? è ???û 
Cond7 =  Ref(Cross (Close , Max(SenkouSpanA,SenkouSpanB)),-1);  //???à âû?î?è? ââ??? èç î?ëàêà  -- ?è??àë ?à ïîê?ïê? 
Cond8 =  Ref(Cross ( Min(SenkouSpanA,SenkouSpanB), Close),-1);  //???à âû?î?è? â?èç  èç î?ëàêà  -- ?è??àë ?à ï?î?à?? 
Cond9 = Close > TenkanSen AND TenkanSen > KijunSen AND KijunSen > Max(SenkouSpanA,SenkouSpanB); // ?è??àë ???? ëè?èé ââ??? 
Cond10= Close < TenkanSen AND TenkanSen < KijunSen AND KijunSen < Min(SenkouSpanA,SenkouSpanB); // ?è??àë ???? ëè?èé â?èç 
RemCond9=ExRem(Cond9,NOT Cond9);                  
RemCond10=ExRem(Cond10,NOT Cond10); 

ColSenk =IIf (Cond1,colorGreen, IIf(Cond2,colorRed,colorLightGrey)); // çà?à?? ?â??, ??ëè ???à âû??/?è??/â????è î?ëàêà. 
Flat  =  TenkanSen == Ref(TenkanSen,-1) OR (NOT(Cond1) AND NOT(Cond2)) ; 

for( i = 0; i < BarCount; i++ ) //?à?ê?à?èâà?? ??????? ëè?è? è??èêà?î?à ïî âçàè?î?à?ïîëî???è? è ?àï?àâë??è? ?âè???è? TenkanSen, ???û è î?ëàêà. 
{ 
   if (Flat[i]) 
      ColTenk[i] = colorLightGrey; 
   else 
   { 
if (Cond1[i] AND TenkanSen[i] > TenkanSen[i-1]) 
     ColTenk[i] = colorGreen; 
if (Cond1[i] AND TenkanSen[i] < TenkanSen[i-1]) 
     ColTenk[i] = colorRed; 
if (Cond2[i] AND TenkanSen[i] < TenkanSen[i-1]) 
     ColTenk[i] = colorRed; 
if (Cond2[i] AND TenkanSen[i] > TenkanSen[i-1]) 
     ColTenk[i] = colorGreen; 
   } 
} 


AlertIf( Cond3 OR Cond4, "SOUND E:/WINDOWS/Media/notify.wav", "ï?????÷??è? ???êà? è Eè????",0,1+2+4+8); 
AlertIf( Cond5 OR Cond6, "SOUND E:/WINDOWS/Media/notify.wav", "ï?????÷??è? ×èêî? è ???û",0,1+2+4+8); 
AlertIf( Cond7 OR Cond8, "SOUND E:/WINDOWS/Media/notify.wav", "???à âû?î?è?  èç î?ëàêà",0,1+2+4+8); 
AlertIf( RemCond9 OR RemCond10, "SOUND E:/WINDOWS/Media/notify.wav", "?è??àë ???? ëè?èé",0,1+2+4+8); 

//PlotShapes(IIf(Cond7, shapeSmallUpTriangle ,shapeNone),colorGreen,0,H,10);              
//PlotShapes(IIf(Cond8, shapeSmallDownTriangle ,shapeNone),colorRed,0,L,10); 
//PlotShapes(IIf(Cond3, shapeHollowSmallUpTriangle,shapeNone),colorGreen,0,H,12);              
//PlotShapes(IIf(Cond4, shapeHollowSmallDownTriangle ,shapeNone),colorRed,0,L,12); 
//PlotShapes(IIf(Cond5, shapeSmallCircle ,shapeNone),colorGreen,0,H,4);              
//PlotShapes(IIf(Cond6, shapeSmallCircle + shapePositionAbove ,shapeNone),colorRed,0,L,4); 
//PlotShapes(IIf(RemCond9 , shapeHollowSquare ,shapeNone),colorGreen,0,H,18);              
//PlotShapes(IIf(RemCond10, shapeHollowSquare + shapePositionAbove ,shapeNone),colorRed,0,L,18); 

//Plot (C,"Close",colorBlack,styleThick); 
Plot (C,"Bars",colorBlack,styleCandle); 
Plot (TenkanSen,"Tenkan-sen",colorRed); 
Plot (KijunSen, "Kijun-sen", colorBlue); 
Plot (Cks,"Chinkou Span",colorLime, style = styleLine,0,0,-n2); 
Plot (SpA,"SenkouSpanA",colorOrange,styleDashed,0,0,n2); 
Plot (SpB,"SenkouSpanB",colorViolet,styleDashed + styleThick,0,0,n2); 
PlotOHLC (SpA,SpA,SpB,SpB,"Cloud",IIf (SpA > SpB,colorPink,colorLavender),styleCloud, 10, 10, n2 ); 
above = IIf(KijunSen>SenkouSpanA AND TenkanSen>SenkouSpanB,1,0);
within = IIf(KijunSen>SenkouSpanA AND TenkanSen<SenkouSpanB,1,0);
below = IIf(TenkanSen<SenkouSpanA AND TenkanSen<SenkouSpanB,1,0);
Buy = Cross(TenkanSen,KijunSen) AND (DL>Close);
Sell = Cross(KijunSen,TenkanSen) AND (DL<KijunSen);
StrongBuy = Buy AND above;
MediumBuy = Buy AND within;
WeakBuy = Buy AND below;
StrongSell = Sell AND below;
MediumSell = Sell AND within;
WeakSell = Sell AND above;

IIf( (StrongBuy),PlotShapes(shapeUpTriangle*StrongBuy,colorGreen),0);
IIf( (MediumBuy),PlotShapes(shapeUpArrow*MediumBuy,colorGreen),0);
IIf( (WeakBuy),PlotShapes(shapeHollowUpArrow*WeakBuy,colorIndigo),0);
IIf( (StrongSell),PlotShapes(shapeDownTriangle*StrongSell,colorRed),0);
IIf( (MediumSell),PlotShapes(shapeDownArrow*MediumSell,colorRed),0);
IIf( (WeakSell),PlotShapes(shapeHollowDownArrow*WeakSell,colorBrown),0);


// ?î?èçî??àëü?à? ?â???à? è??èêà?î??à? ïîëî?à (ï?è???). 


Plot( 1, "Ribbon", ColTenk, styleOwnScale|styleArea|styleNoLabel, -2, 200 );   // è??è?è???? ôë?? ?à TenkanSen. 
Plot( 4, "Ribbon", ColSenk, styleOwnScale|styleArea|styleNoLabel, -1, 200 );   // è??è?è???? ïîëî???è? ???û î??î?è??ëü?î î?ëàêà
Back