MOVING AVERAGE | AMIBROKER AFL -WMA Band with Explain Afl

WMA Band với Explain AFL cho Amibro

WMA Band với Explain AFL cho amibroker là ngôn ngữ công thức chỉ ra loại phân tích khác nhau với công cụ chứng khoán hoặc Forex của bạn. Với AFL này, bạn có thể dễ dàng hiểu được vị thế của một cặp chứng khoán hoặc Forex.

Đầu tiên hãy nhìn vào hình ảnh. Khi giá đi vào dải hẹp và sau đó mở rộng lên hoặc xuống thì bạn có thể vào vị thế mua hoặc bán. Bằng cách này, bạn cũng có thể thấy sự đền bù cho nến có nghĩa là gì và phải làm gì.

Cũng trong WMA Band với Explain AFL, chúng tôi sử dụng VSA cho phương pháp hành động giá mạnh hơn cho mọi giao dịch. Trong afl này, bạn có thể tận hưởng mọi khoảnh khắc của tín hiệu giao dịch và phải tuân thủ các quy tắc. Cũng trong WMA band, nó giống như việc sử dụng hoặc các quy tắc của  Bollinger Bands . Nếu bạn không biết lý thuyết về Bollinger Bands thì hãy truy cập vào đây.  Sử dụng tốt nhất Bollinger Bands mà bạn không biết

// Coded by pipschart.com

 _SECTION_BEGIN("KrT group");

GfxSetBkMode(1);

X=750;

Y=1;

Font=10;

GfxSelectFont("Impact",Font*2.2, 550);GfxSetTextColor

 

(colorRed);GfxTextOut("KrT group",x,y);

GfxSelectFont("Impact",Font*2.2, 550);GfxSetTextColor

 

(colorGreen);GfxTextOut("RESEARCH",x+120,Y);

 

_SECTION_END();

 

/////////////////////////////////////////VSA////////

 

/////////////////////////////////////////////////////

 

/

//Volume Price Analysis AFL - VPA Version 1.0

//AFL by Karthikmarar.

//==========================================

 

_SECTION_BEGIN("Volume Price Analysis - V.1.0");

SetChartBkColor(16 ) ;

SetChartOptions(0,chartShowArrows|chartShowDates);

//==========================================

DTL=Param("Linear regression period",60,10,100,10);

wbf=Param("WRB factor",1.5,1.3,2.5,.1);

nbf=Param("NRB factor",0.7,0.3,0.9,0.1);

TL=LinRegSlope(MA(C, DTL),2);

 Vlp=Param("Volume lookback period",15,10,300,10);

Vrg=MA(V,Vlp);

St = StDev(Vrg,Vlp);

Vp3 = Vrg + 3*st;

Vp2 = Vrg + 2*st;;

Vp1 = Vrg + 1*st;;

Vn1 = Vrg -1*st;

Vn2 = Vrg -2*st;

rg=(H-L);

arg=Wilders(rg,30);

wrb=rg>(wbf*arg);

nrb=rg<(nbf*arg);

Vl=V<Ref(V,-1) AND V<Ref(V,-2);

upbar=C>Ref(C,-1);

dnbar=C<Ref(C,-1);

Vh=V>Ref(V,-1) AND Ref(V,-1)>Ref(V,-2);

Cloc=C-L;

x=rg/Cloc;

x1=IIf(Cloc==0,arg,x);

Vb=V>Vrg OR V>Ref(V,-1);

ucls=x1<2;

dcls=x1>2;

mcls=x1<2.2 AND x1>1.8 ;

Vlcls=x1>4;

Vhcls=x1<1.35;

j=MA(C,5);

TLL=LinRegSlope(j,40) ;

Tlm=LinRegSlope(j,15) ;

tls=LinRegSlope(j,5);

mp=(H+L)/2;

_SECTION_END();

//==========================================

 

_SECTION_BEGIN("VSA");

utbar=wrb AND dcls AND tls>0 ;

utcond1=Ref(utbar,-1) AND dnbar ;

utcond2=Ref(utbar,-1) AND dnbar AND V>Ref(V,-1);

utcond3=utbar AND V> 2*Vrg;

trbar=Ref(V,-1)>Vrg  AND Ref(upbar,-1) AND Ref(wrb,-

 

1) AND dnbar AND dcls AND wrb AND tll>0 AND

 

H==HHV(H,10);

Hutbar=Ref(upbar,-1) AND Ref(V,-1)>1.5*Vrg AND

 

dnbar AND dcls AND NOT wrb AND NOT utbar;

Hutcond=Ref(Hutbar,-1) AND dnbar AND dcls AND

 

NOT utbar;

tcbar=Ref(upbar,-1) AND H==HHV(H,5)AND dnbar AND

 

(dcls OR mcls) AND V>vrg AND NOT wrb AND NOT

 

Hutbar ;

Scond1=(utcond1 OR utcond2 OR utcond3) ;

Scond2=Ref(scond1,-1)==0;

scond=scond1 AND scond2;

stdn0= tll<0 AND V>Ref(V,-1) AND Ref(dnbar,-1) AND

 

upbar AND (ucls OR mcls) AND tls<0 AND tlm<0;

stdn= V>Ref(V,-1) AND Ref(dnbar,-1) AND upbar AND

 

(ucls OR mcls) AND tls<0 AND tlm<0;

stdn1= tll<0 AND V>(vrg*1.5) AND Ref(dnbar,-1) AND

 

upbar AND (ucls OR mcls)AND tls<0 AND tlm<0;

stdn2=tls<0 AND Ref(V,-1)<Vrg  AND upbar AND vhcls

 

AND V>Vrg;

bycond1= stdn OR stdn1;

bycond= upbar  AND Ref(bycond1,-1);

stvol= L==LLV(L,5)  AND (ucls OR mcls) AND V>1.5*Vrg

 

AND tll<0;

ndbar=upbar AND nrb AND Vl  AND dcls ;

nsbar=dnbar AND nrb AND Vl  AND dcls ;

nbbar= C>Ref(C,-1) AND Vl AND nrb AND x1<2;

nbbar= IIf(C>Ref(C,-1) AND V<Ref(V,-1) AND V<Ref(V,-2)

 

AND x1<1.1,1,0);

lvtbar= vl AND L<Ref(L,-1) AND ucls;

lvtbar1= V<Vrg AND L<Ref(L,-1) AND ucls AND tll>0

 

AND tlm>0 AND wrb;

lvtbar2= Ref(Lvtbar,-1) AND upbar AND ucls;

dbar= V>2*Vrg AND dcls AND upbar AND tls>0 AND

 

tlm>0 AND NOT Scond1 AND NOT utbar;

eftup=H>Ref(H,-1) AND L>Ref(L,-1) AND C>Ref(C,-1)

 

AND C>=((H-L)*0.7+L) AND rg>arg AND V>Ref(V,-1);

eftupfl=Ref(eftup,-1) AND (utbar OR utcond1 OR

 

utcond2 OR utcond3);

eftdn=H<Ref(H,-1) AND L<Ref(L,-1) AND C<Ref(C,-1)

 

AND  C<=((H-L)*0.25+L) AND rg>arg AND V>Ref(V,-1);

_SECTION_END();

//==========================================

_SECTION_BEGIN("Chart");

Vcolor=IIf(tls>0 AND tlm>0 AND tll>0,colorLime,IIf

 

(tls>0 AND tlm>0 AND tll<0,colorGreen,

IIf(tls>0 AND tlm<0 AND tll<0,colorPaleGreen,IIf(tls<0

 

AND tlm<0 AND tll<0,colorRed,IIf(tls<0 AND tlm>0

 

AND tll>0,colorPaleGreen,

IIf(tls<0 AND tlm<0 AND

 

tll>0,colorOrange,colorBlue))))));

GraphXSpace = 5;

Vpc= utbar OR utcond1 OR utcond2 OR utcond3 OR

 

stdn0 OR stdn1 OR stdn2 OR stdn OR lvtbar1 OR

 

Lvtbar OR Lvtbar2 OR Hutbar OR Hutcond OR ndbar

 

OR stvol OR tcbar;

//PlotOHLC( Open,  High,  Low,  Close, "", vcolor,

 

styleCandle | styleThick  );

_SECTION_END();

/////////////////////////////////////////////////////

_SECTION_BEGIN("MACD Fill");

// Parameters

PeriodEMA = 13;

MACDIndicatorRange = 50;

// Volume filter

VolumeFilter = Param( "Volume MA filter", 100000,

 

50000, 500000, 100000 );

Timeframe = Interval(2);

// Adjust for weekly if necessary

if( Timeframe == "5-day" || Timeframe == "Weekly" ) {

  VolumeFilter  = VolumeFilter * 5;

}

else if( Timeframe == "Monthly") {

  VolumeFilter = VolumeFilter * 20;

}

else if( Timeframe != "Daily" ) {

  VolumeFilter = 0;

}

// Minimum number of bars required to form a

 

divergence pattern. For a

// positive divergence, this is the number of falling

 

bars in the context

// of a rising MACD or MACD-H pattern. Vice versa for

 

negative divergence

MACDDivMinWidth = Param("Divergence min width", 4,

 

1, 10, 1 );  

// Minimum width of negative projecting wave

 

between two positive MACD-H waves,

// otherwise two positive waves will be considered as

 

one single wave. This

// minimises invalid divergences, to ensure that "back

 

of bears is broken".

// The same applies for a positive wave between two

 

negative waves.

HistMinWidth = Param("Histogram min width", 4, 1, 10,

 

1 );

PeriodEMA = Optimize( "PeriodEMA ", 13, 5, 23, 1 );

// Other parameters

OpenPositions = 10;

ATRPeriod = 5;

InitialCapital = 100000;

PeriodFast = Param( "Fast EMA", 8, 2, 200, 1 );

PeriodSlow = Param( "Slow EMA", 17, 2, 200, 1 );

PeriodSignal = Param( "Signal EMA", 9, 2, 200, 1 );

MACDInd = MACD(PeriodFast, PeriodSlow );

SigInd = Signal(PeriodFast, PeriodSlow , PeriodSignal );

HistInd = MACDInd - SigInd ;

_N( macdStr = WriteVal( PeriodFast, 1.0 )+","+WriteVal(

 

PeriodSlow , 1.0 ) );

_N( sigStr = macdStr + ","+WriteVal( PeriodSignal , 1.0 )

 

);

 

// Get displayed min and max value of MACD and

 

MACD-H, to rescale it for better visibility

scMACDMax = LastValue(HHV(Max(MACDInd, sigInd),

                  BarsSince( Status("barvisible") AND NOT Ref

 

(Status("barvisible"),-1) )));

scMACDMin = LastValue(LLV(Min(MACDInd, sigInd),

                  BarsSince( Status("barvisible") AND NOT Ref

 

(Status("barvisible"),-1) )));

scaleMACD = Max( abs(scMACDMax), abs(scMACDMin) );

scHistMax = LastValue(HHV(HistInd,

            BarsSince( Status("barvisible") AND NOT Ref

 

(Status("barvisible"),-1) )));

scHistMin = LastValue(LLV(HistInd,

            BarsSince( Status("barvisible") AND NOT Ref

 

(Status("barvisible"),-1) )));

scaleHist = Max( abs(scHistMax), abs(scHistMin) );

_SECTION_END();

 

MACD Fill

///MACD

 

Fill////////End///////////////////////////////////////

 

////////////////////////////////////////////MACD Fill

 

 

MACD Fill

 

_SECTION_BEGIN("Matrix

 

Swing");//====================================

 

UpBarColor = ParamColor( "UpBar Color", colorGreen );

DownBarColor = ParamColor( "DownBar Color",

 

colorRed );

MatixSwingSmoother= Param("Smoother", 20, 1, 100,

 

1);

MatrixBuy = ParamColor( "Buy Color", colorGreen );  

MatrixSell = ParamColor( "Sell Color", colorRed );

n=20;  

Var1=HHV(High,9)-LLV(Low,9);

Var2=HHV(High,9)-Close;

Var3=Close-LLV(Low,9);

Var4=Var2/Var1*100-70;

Var5=(Close-LLV(Low,60))/(HHV(High,60)-LLV(Low,60))

 

*100;

Var6=(2*Close+High+Low)/4;

Var7=WMA(Var3/Var1*100,3);

Var8=LLV(Low,34);

Var9=WMA(Var7,3)-WMA(Var4,9);

VarA=IIf(Var9>100,Var9-100,0);

VarB=HHV(High,34);

AA= VarA*2;

BB= EMA((Var6-Var8)/(VarB-Var8)*100,13);

VarC=EMA(0.667*Ref(BB,-1)+0.333*BB,2);

VAR1a=(HHV(High,9)-Close)/(HHV(High,9)-LLV(Low,9))

 

*100-70;

VAR2a=WMA(VAR1a,9)+100;

VAR3a=(Close-LLV(Low,9))/(HHV(High,9)-LLV(Low,9))

 

*100;

VAR4a=WMA(VAR3a,3);

VAR5a=WMA(VAR4a,3)+100;

VAR6a=VAR5a-VAR2a;

S= IIf(VAR6a>n,VAR6a-n,Var6a);

barcolor=IIf(Ref(S,-1)<S, upbarcolor, downbarcolor);

Oo=IIf(Ref(S,-1)<s,Ref(s,-1),s);

Hh=Oo;

Ll=IIf(Ref(S,-1)>s,Ref(s,-1),s);

Cc=Ll;

MatrixBB  = (Close - BBandBot (Close,

 

MatixSwingSmoother, 2))

/ ((BBandTop (Close, MatixSwingSmoother, 2) -

 

BBandBot (Close, MatixSwingSmoother, 2)));

//PlotOHLC( Oo,hh,ll,Cc, "Matrix Swing", barcolor,

 

styleCandle|styleNoLabel );

MBuy=Cross(MatrixBB,0);

MSell=Cross(1, MatrixBB);

//PlotShapes (IIf(MBuy, shapeCircle, shapeNone)

 

,MatrixBuy, layer = 0, yposition =Oo, offset = 1 );

//PlotShapes (IIf(MSell, shapeCircle, shapeNone)

 

,Matrixsell, layer = 0, yposition = Ll, offset = 1 );

_SECTION_END

 

();

//=========================================

 

//////////////////////////////////////Candle

 

DES////////////////////////////////////////

////////////////////////////////////////Starts///////

 

 

_SECTION_BEGIN("hai");

/*ndele

Copiare questo dile nell'area commenti "Formula" del

 

"Guru Commentary" di Amibroker.

Le frecce Verdi piene indicano candele Bullish

 

"rialziste" con elevata affidabilità.

Le frecce Verdi vuote indicano candele Bullish

 

"rialziste" con moderata e bassa affidabilità.

Le frecce Rosse piene indicano candele Bearish

 

"ribassiste" con elevata affidabilità.

Le frecce Rosse vuote indicano candele Bearish

 

"ribassiste" con moderata e bassa affidabilità.

Spostare il cursore e cliccare sulla candela prescelta

 

per avere il commento.

I commenti sono di Steve Nison "Japanese Candlestick

 

Charting Techniques" e dal sito LitWick.

 

/*Colori candele*/

whiteBody=C>=O;

blackBody=O>C;

 

/*Ampiezza candele*/

smallBodyMaximum=0.0025;//meno di 0.25%

LargeBodyMinimum=0.01;//meno di 1.0%

smallBody=(O>=C*(1-smallBodyMaximum) AND

 

whiteBody)

         OR (C>=O*(1-smallBodyMaximum) AND

 

blackBody);

largeBody=(C>=O*(1+largeBodyMinimum) AND

 

whiteBody)

         OR C<=O*(1-largeBodyMinimum) AND blackBody;

mediumBody=NOT LargeBody AND NOT smallBody;

identicalBodies=abs(abs(Ref(O,-1)-Ref(C,-1))-abs(O-C)) <

          abs(O-C)*smallBodyMaximum;

realBodySize=abs(O-C);

 

 

/*Shadows*/

smallUpperShadow=(whiteBody AND H<=C*

 

(1+smallBodyMaximum))

               OR (blackBody AND H<=O*

 

(1+smallBodyMaximum));

smallLowerShadow=(whiteBody AND L>=O*(1-

 

smallBodyMaximum))

               OR (blackBody AND L>=C*(1-

 

smallBodyMaximum));

largeUpperShadow=(whiteBody AND H>=C*

 

(1+largeBodyMinimum))

               OR (blackBody AND H>=O*

 

(1+largeBodyMinimum));

largeLowerShadow=(whiteBody AND L<=O*(1-

 

largeBodyMinimum))

              OR (blackBody AND L<=C*(1-

 

largeBodyMinimum));

 

/*Gaps*/

upGap=  IIf(Ref(blackBody,-1)AND whiteBody AND

 

O>Ref(O,-1),1,

        IIf(Ref(blackbody,-1) AND blackBody AND C>Ref

 

(O,-1),1,

        IIf(Ref(whiteBody,-1) AND whiteBody AND O>Ref

 

(C,-1),1,

        IIf(Ref(whiteBody,-1) AND blackBody AND C>Ref

 

(C,-1),1,0))));

 

downGap=IIf(Ref(blackBody,-1)AND whiteBody AND

 

C<Ref(C,-1),1,

        IIf(Ref(blackbody,-1) AND blackBody AND O<Ref

 

(C,-1),1,

        IIf(Ref(whiteBody,-1) AND whiteBody AND C<Ref

 

(O,-1),1,

        IIf(Ref(whiteBody,-1) AND blackBody AND O<Ref

 

(O,-1),1,0))));

 

 

/*Definizione candele*/

spinningTop=mediumBody;

doji=CdDoji(threshold=0.05);/*abs(C-O) <=

 

(C*smallBodyMaximum) OR

(abs(O-C)<=((H-L)*0.1));*/

dojiStar=doji AND (upgap OR downgap)AND Ref

 

(LargeBody,-1);

marabuzu=LargeBody AND smallUpperShadow AND

 

smallLowerShadow;

 

shootingStar=/*(NOT largeBody AND

 

smallLowerShadow AND LargeUpperShadow) OR*/

    smallLowerShadow AND NOT doji AND

   ((blackBody AND abs(O-H)>2*realBodySize) OR

   (whiteBody AND abs(H-C)>2*realBodySize));

 

Hammer=smallUpperShadow AND NOT doji AND

   ((blackBody AND abs(C-L)>2*realBodySize) OR

   (whiteBody AND abs(L-O)>2*realBodySize));

 

tweezerTop=abs(H-Ref(H,-1))<=H*0.0025;

tweezerBottom=abs(L-Ref(L,-1))<=L*0.0025;

engulfing=

   IIf(blackBody AND Ref(blackbody,-1) AND C<Ref(C,-1)

 

AND O>Ref(O,-1),1,

   IIf(blackBody AND Ref(whiteBody,-1) AND O>Ref(C,-

 

1) AND C<Ref(O,-1),1,

   IIf(whitebody AND Ref(whitebody,-1) AND C>Ref(C,-

 

1) AND O<Ref(O,-1),1,

   IIf(whiteBody AND Ref(blackBody,-1) AND C>Ref(O,-

 

1)AND O<Ref(C,-1),1,0))));

Harami=

   IIf(blackbody AND Ref(blackBody,-1) AND O<Ref(O,-

 

1) AND C>Ref(C,-1),1,

   IIf(blackBody AND Ref(whiteBody,-1) AND C>Ref(O,-

 

1) AND O<Ref(C,-1),1,

   IIf(whiteBody AND Ref(whiteBody,-1) AND C<Ref(C,-

 

1) AND O>Ref(O,-1),1,

   IIf(whiteBody AND Ref(blackBody,-1) AND O>Ref(C,-

 

1) AND C<Ref(O,-1),1,0))));

 

 

/*Maximum High Today - (MHT)

Oggi è il massimo High negli ultimi 5 giorni*/

MHT=  HHV(H,5)==H;

 

/*Maximum High Yesterday - (MHY)

Ieri è il massimo High negli ultimi 5 giorni*/

MHY=   HHV(H,5)==Ref ( H, -1);

 

/*Minimum Low Today - (MLT)

Oggi è il minimo Low negli ultimi 5 giorni*/

MLT=   LLV(L,5)==L;

 

/*Minimum Low Yesterday - (MLY)

Ieri è il minimo Low negli ultimi 5 giorni*/

MLY=   LLV(L,5)==Ref(L,-1);

 

/*Definizioni DOJI */

 

/*Doji Today - (DT)*/

DT = abs(C-O) <= (C*smallBodyMaximum) OR

(abs(O-C)<=((H-L)*0.1));

 

/* Doji Yesterday - (DY)*/

DY = abs(Ref ( C, -1)-Ref(O,-1)) <= Ref ( C, -1)

 

*smallBodyMaximum OR

abs (Ref ( O, -1)-Ref(C,-1)) <= (Ref ( H, -1 ) - Ref ( L, -1 )

 

)*0.1;

 

/**************************************************

             CANDELE BULLISH

***************************************************

 

*/

 

/* Abandoned Baby Bullish*/

abandonedBabybullish =Ref(largeBody,-2) AND Ref

 

(blackBody,-2)//Large black candle

             AND Ref(GapDown(),-1)  

             AND whiteBody AND LargeBody AND GapUp

 

();//Large white candle

 

/* Belt Hold*///Bad formula

beltHoldBullish = largeBody AND smallLowerShadow

 

AND whiteBody AND MLT;

 

 

/*BreakAway Bullish*/

breakAwayBullish=Ref(Largebody,-4) AND Ref

 

(blackBody,-4)

              AND Ref(blackBody,-3) AND Ref(O,-3)<Ref(C,-

 

4)

              AND Ref(smallbody,-2) AND Ref(C,-2)<Ref(C,-3)

              AND Ref(C,-1)<Ref(C,-2)

              AND LargeBody AND whiteBody AND C>Ref(O,

 

-3)

              AND C<Ref(C,-4);

 

/*Concealing Baby Swallow only one trade */

ConcealingBabySwallow=Ref(marabuzu,-3) AND Ref

 

(blackbody,-3) AND

                      Ref(MArabuzu,-2) AND Ref(blackBody,-2)

 

AND

                      Ref(blackBody,-1) AND Ref(downGap,-1)

 

AND

                      Ref(H,-1)>Ref(C,-2)AND Ref(blackbody,-

 

1)AND

                      blackBody AND engulfing;

 

/*Doji Star Bullish*/

dojiStarBullish=(dojiStar AND (MLT OR MLY))OR

   (doji AND (C<Ref(C,-1) OR O<Ref(C,-1))AND Ref

 

(blackBody,-1)

    AND Ref(LargeBody,-1));

 

/*Engulfing Bullish*/  

engulfingBullish =

    engulfing AND largeBody AND whiteBody AND

    (Ref(blackbody,-1) OR Ref(Doji,-1)) AND MLT;

 

/*Hammer Bullish*/

hammerBullish=Hammer AND (MLT OR MLY);

 

/*Dragonfly Doji Bullish*/

dragonflyDoji=smallBody AND LargeLowerShadow

 

AND smallUpperShadow AND MLT;

 

/* Harami Bullish*/

haramiBullish = harami AND Ref (LargeBody,-1) AND

 

Ref(blackBody,-1) AND

                NOT LargeBody AND whiteBody;

 

/*Harami Cross*/

HaramiCross=harami AND Ref(LargeBody,-1) AND Ref

 

(blackBody,-1) AND doji;

      

/* Homing Pigeon*/

homingPigeon =  Ref(largeBody,-1) AND Ref

 

(blackBody,-1) AND

                H<= Ref ( O, -1 ) AND L>=Ref( C, -1) AND C<O

 

AND MLY;

 

/*Inverted Hammer*/

invertedHammer=shootingStar AND (MLT OR MLY);

 

/* Meeting LinesBullish*/

meetingLinesbullish= Ref(LargeBody,-1) AND Ref

 

(blackBody,-1) AND

                     LargeBody AND whiteBody AND

                     C>Ref(C,-1)*0.9975 AND C< Ref(C,-1)

 

*1.0025;

 

/*Morning Doji Star*/

morningDojiStar= Ref(LargeBody,-2) AND Ref

 

(blackBody,-2) AND

                 Ref(doji,-1) AND Ref(O,-1)<Ref(C,-2) AND

                 whiteBody AND C>Ref(C,-2) AND MLY;

 

/* Morning Star*/

morningStar =Ref(largeBody,-2) AND Ref(blackBody,-

 

2)//Large black candle

             AND Ref(downGap,-1)//Gap down yesterday

             AND whiteBody AND LargeBody AND C>Ref

 

(C,-2)//Large white candle today

             AND MLY; //Yesterday was the low

 

/* Piercing Line*/

piercingLine= Ref(largeBody,-1) AND Ref(blackBody,-

 

1)AND

               O<Ref(L,-1) AND C>=(Ref(O,-1)+Ref(C,-1))/2

 

AND C<Ref(O,-1) AND MLT;

 

/* Stick Sandwich*/

stickSandwich=Ref(largeBody,-2) AND Ref(blackbody,-

 

2) AND

              Ref(largeBody,-1) AND Ref(whiteBody,-1) AND

              Ref(O,-1)>=Ref(C,-2) AND O>=Ref(C,-1) AND

              abs(C-Ref(C,-2))<=C*0.0025;

 

/*Three Inside Up harami confirming*/

threeInsideUp =Ref(Haramibullish,-1) AND whiteBody

 

AND

    largeBody AND C>Ref(C,-1);

 

 

/* Three Outside Up Engulfing confirmation*/

threeOutsideUp =Ref(engulfingBullish,-1) AND

 

whiteBody AND C>Ref(C,-1);

 

/* Three Stars in the South*///Rewrite???

threeStarsInTheSouth=

   Ref(LargeBody,-2) AND Ref(blackBody,-2) AND Ref

 

(largelowerShadow,-2)

   AND Ref(blackBody,-1) AND Ref

 

(largeLowerShadow,-1) AND

   Ref(L,-1)>Ref(L,-2) AND blackBody AND

 

smallUpperShadow AND

   smallLowerShadow AND L>Ref(L,-1) AND H<Ref(H,-

 

1);

 

/* Tri-Star Bullish*/

triStarBullish=Ref(doji,-2) AND Ref(doji,-1) AND doji

 

AND MLY AND

   Ref(downgap,-1) AND upGap;

 

/* Three River Bottom Bad formula*/

threeriverBottom=Ref(largeBody,-2) AND Ref

 

(blackBody,-2) AND

                 Ref(blackbody,-1) AND Ref

 

(Largelowershadow,-1) AND

                 Ref(O,-1)<Ref(O,-2) AND Ref(C,-1)>Ref(C,-2)

 

AND

                 whiteBody AND C<Ref(C,-1) AND MLY;  

                  

/* Mat Hold Bullish*/

MAtHoldBullish=Ref(LargeBody,-4) AND Ref

 

(whiteBody,-4)//1st day

   AND Ref(blackBody,-3) AND Ref(upGap,-3) AND NOT

 

Ref(LargeBody,-3)

   AND NOT Ref(LargeBody,-2) AND Ref(C,-2)<Ref(C,-3)

 

AND Ref (O,-2)<Ref(O,-3) AND

   Ref(C,-2)>Ref(O,-4) AND NOT Ref(LargeBody,-1) AND

 

Ref(C,-1)<Ref(C,-2)

   AND LargeBody AND whiteBody AND C>Ref(C,-4);

 

/*RisingThreeMethods*/

risingThreeMethods=Ref(LargeBody,-4) AND Ref

 

(whiteBody,-4) AND NOT

  Ref(LargeBody,-3) AND NOT Ref(LargeBody,-2)AND

 

NOT Ref(LargeBody,-1) AND

  Ref(C,-3)<Ref(C,-4) AND Ref(C,-2)<Ref(C,-3) AND Ref

 

(C,-1)<Ref(C,-2) AND

  LargeBody AND whitebody AND C>Ref(C,-4);

 

/* Seperating Lines Bullish*/

separatingLinesBullish=Ref(blackBody,-1) AND

 

whiteBody AND LargeBody AND

smallLowerShadow AND MHT AND abs(O-Ref(O,-1))

 

<=O*0.0025;

 

/*Side by Side White Lines*/

sideBySideWhiteLines=NOT Ref(smallBody,-2) AND Ref

 

(whiteBody,-2)

   AND Ref(upGap,-1) AND Ref(whitebody,-1)AND

 

whiteBody AND

   identicalBodies AND abs(O-Ref(O,-1))<O*0.0025;

 

 

/*Three White Soldiers*/

threeWhiteSoldiers=NOT Ref(smallbody,-2) AND Ref

 

(whiteBody,-2) AND NOT

   Ref(smallBody,-1) AND Ref(whiteBody,-1) AND NOT

   smallBody AND whiteBody AND C>Ref(C,-1) AND Ref

 

(C,-1)>Ref(C,-2) AND

   Ref(O,-1)>Ref(O,-2) AND Ref(O,-1)<Ref(C,-2) AND

 

O<Ref(C,-1) AND

   O>Ref(O,-1) AND Ref(smallUpperShadow,-2) AND

   Ref(smallUpperShadow,-1) AND smallUppershadow

 

AND LLV(L,12)==Ref(L,-2);

 

/*Upside Gap Three Methods not very good*/

upsideGapThreeMethods=Ref(Largebody,-2) AND Ref

 

(whiteBody,-2) AND

   Ref(LargeBody,-1) AND Ref(whiteBody,-1) AND Ref

 

(upGap,-1) AND

   blackBody AND O>Ref(O,-1) AND C<Ref(C,-2)AND

 

C>Ref(O,-2) AND

  MHY;

 

/*Three Line Strike not good signals*/

threeLineStrike=NOT Ref(smallBody,-3) AND NOT Ref

 

(smallBody,-2) AND

   NOT Ref(smallBody,-1) AND Ref(whiteBody,-3) AND

 

Ref(whiteBody,-2) AND

   Ref(whiteBody,-1) AND Ref(C,-1)>Ref(C,-2) AND Ref

 

(C,-2)>Ref(C,-3) AND

   blackBody AND O>Ref(C,-1) AND C<Ref(O,-3);

 

/*Tweezer Bottom*/

tweezerBottom= (abs(L-Ref(L,-1))/L<0.0025 OR

               abs(L-Ref(L,-2))/L<0.0025)

               AND (MLT OR MLY);

 

/*Upside Tasuki Gap*/

upsideTasukiGap=Ref(largeBody,-2) AND Ref

 

(largeBody,1) AND

   Ref(whiteBody,-2) AND Ref(whiteBody,-1) AND Ref

 

(upGap,-1) AND

   blackBody AND O>Ref(O,-1) AND C<Ref(O,-1) AND

 

C>Ref(C,-2) AND

   identicalBodies AND O<Ref(C,-1);

   //AND HHV(H,5)==Ref(H,-1); Do not use this line

 

 

/*****************************************

            CANDELE BEARISH

******************************************/

 

/*Abandoned Baby Bearish*/

AbandonedBabyBearish=Ref(LargeBody,-2) AND Ref

 

(whiteBody,-2) AND

   Ref(smallBody,-1) AND Ref(GapUp(),-1) AND

 

GapDown() AND

   NOT smallBody AND blackBody AND MHY;

 

/*Advance Block Bearish*/

AdvanceBlockBearish=Ref(LargeBody,-2) AND Ref

 

(whiteBody,-2)

    AND Ref(whiteBody,-1) AND

   whiteBody AND Ref(O,-1)>Ref(O,-2) AND Ref(O,-1)

 

<Ref(C,-2) AND

   Ref(C,-1)>Ref(C,-2) AND C>Ref(C,-1) AND

   O<Ref(C,-1) AND O>Ref(O,-1) AND Ref

 

(LargeUpperShadow,-1) AND LargeUpperShadow

   AND C-O<Ref(C,-1)-Ref(O,-1) AND Ref(C,-1)-Ref(O,-1) <

 

Ref(C,-2)-Ref(O,-2);

 

/*Belt Hold Bearish*/

beltHoldBearish=LargeBody AND BlackBody AND

 

smalluppershadow AND MHT;

 

/*Breakaway Bearish*/

breakAwayBearish=Ref(LargeBody,-4) AND Ref

 

(whiteBody,-4) AND

   Ref(GapUp(),-3) AND Ref(whiteBody,-3) AND

   Ref(smallbody,-2) AND Ref(smallBody,-1) AND

   blackBody AND O>Ref(O,-3) AND C<Ref(C,-4);

 

/*Dark Cloud Cover*/

darkCloudCover=Ref(LargeBody,-1) AND Ref

 

(whiteBody,-1) AND

   blackBody AND O>Ref(H,-1) AND C>Ref(O,-1) AND

 

C<(Ref(O,-1)+Ref(C,-1))/2

   AND MHT;

 

/*Deliberation Bearish: needs confirmation*/

deliberationBearish=Ref(LargeBody,-2) AND Ref

 

(whiteBody,-2) AND

   Ref(LargeBody,-1) AND Ref(whiteBody,-1) AND Ref

 

(C,-1)>Ref(C,-2) AND

   smallbody AND upGap;

 

/*CounterAttackBearish*/

CounterAttackBearish=MHT AND LargeBody AND

 

blackbody AND

   Ref(largeBody,-1) AND Ref(whiteBody,-1) AND

   C<Ref(C,-1)*1.0025 AND C>Ref(C,-1)*0.9975;;

 

/*Doji Star Bearish*/

dojiStarBearish=(dojiStar AND (MHT OR MHY))OR

   (doji AND (C>Ref(C,-1) OR O>Ref(C,-1))AND Ref

 

(whiteBody,-1)

    AND Ref(LargeBody,-1));

 

/*Engulfing Bearish*/

engulfingBearish=engulfing AND largeBody AND

 

blackBody AND

    (Ref(whitebody,-1) OR Ref(Doji,-1))AND (MHT OR

 

MHY);

 

/*Evening Doji Star check formula???*/

eveningDojiStar=Ref(LargeBody,-2) AND Ref

 

(whiteBody,-2) AND

   Ref(dojiStar,-1) AND Ref(GapUp(),-1) AND (MHY OR

 

MHT);

 

/*Evening Star*/

eveningStar=Ref(LargeBody,-2) AND Ref(whiteBody,-2)

 

AND

   Ref(upGap,-1) AND NOT Ref(largeBody,-1) AND

 

blackBody AND NOT smallBody AND

   (MHT OR MHY);

 

/*Hammer Bearish*/

HammerBearish=Hammer AND HHV(H,8)==H;

 

/*hangingMan*/

HangingMan=NOT largeBody AND smallUpperShadow

 

AND LargeLowerShadow AND MHT;

 

/*dragonfly Doji Bearish*/

dragonflyDojiBearish=doji AND smallUpperShadow

 

AND LargeLowerShadow AND MHT;

  

/*Harami Bearish-*/

HaramiBearish=harami AND Ref(Largebody,-1) AND

 

Ref(whiteBody,-1)AND blackBody

AND (MHY OR MHT);

 

/*HaramiCross Bearish*/

HaramiCrossBearish=harami AND doji AND Ref

 

(whiteBody,-1) AND Ref(Largebody,-1);

 

/*Identical three black crows*/

idendicalThreeBlackCrows=Ref(blackBody,-2) AND Ref

 

(blackBody,-1) AND blackBody AND

   abs(Ref(C,-2)-Ref(O,-1))<Ref(C,-1)*0.0025 AND abs

 

(Ref(C,-1)-O)<O*0.0025 AND

   HHV(H,20)==Ref(H,-2) AND NOT Ref(doji,-2) AND

 

NOT Ref(doji,-1) AND NOT doji AND

   Ref(smallLowerShadow,-2) AND Ref

 

(smallLowerShadow,-1) AND smallLowerShadow;

 

/*Kicking Bearish No trades*/

kickingBearish=Ref(whiteBody,-1) AND Ref

 

(MArabuzu,-1) AND blackBody AND MArabuzu    AND

 

GapDown();

 

/*Meeting Lines Bearish*/

MeetingLinesBearish=Ref(LargeBody,-1) AND Ref

 

(whiteBody,-1) AND

  HHV(C,8)==Ref(C,-1) AND LargeBody AND blackBody

 

AND

  abs(C-Ref(C,-1))<C*0.0025;

 

/*ShootingStar*/

shootingStarGap=shootingStar AND GapUp() AND MHT;

 

/*Gravestone Doji*/

gravestoneDoji=doji AND largeUpperShadow AND

 

smallLowerShadow AND GapUp()AND MHT;

 

/*Three Inside Down Bearish*/

threeInsideDownBearish=Ref(HaramiBearish,-1) AND

 

blackBody AND C<Ref(C,-1)AND    smallUpperShadow;

 

/*Three Outside Down Bearish*/

threeoutsideDownBearish=Ref(engulfingBearish,-1)

 

AND blackBody AND C<Ref(C,-1)AND

   NOT LargeUpperShadow;

 

/*Tri Star Bearish*/

triStarBearish=Ref(doji,-2) AND Ref(doji,-1) AND doji

 

AND MHY AND Ref(upGap,-1)AND    downGap;

 

/*Two Crows Bearish*/

twoCrows=Ref(whiteBody,-2) AND Ref(LargeBody,-2)

 

//first day

   AND Ref(blackBody,-1) AND Ref(upGap,-1)//Second

 

Day

   AND blackBody AND O<Ref(O,-1) AND O>Ref(C,-1)

 

AND C<Ref(C,-2) AND

   C>Ref(O,-2) AND MHY;//Third day

 

/*Upside Gap Two Crows*/

upsideGapTwoCrows= Ref(whiteBody,-2) AND Ref

 

(LargeBody,-2)// first day

   AND Ref(upGap,-1) AND Ref(blackBody,-1) // 2nd

 

day

   AND blackbody AND O>Ref(O,-1) AND C<Ref(C,-1)

 

AND C>Ref(C,-2);

 

/*Doji Star Bearish needs confirmation

dojiStarBearish=Ref(LargeBody,-1) AND Ref

 

(whiteBody,-1) // first day

   AND doji AND upGap AND MHT;*/

 

/* Downside Gap Three Methods*/

downsideGapThreeMethods=

     Ref(LargeBody,-2) AND Ref(blackBody,-2) AND Ref

 

(downGap,-2) //first day

     AND Ref(LargeBody,-1) AND Ref(blackBody,-1)//2nd

 

day

     AND whitebody AND O<Ref(O,-1) AND C>Ref(C,-2)

     AND LLV(L,8)==Ref(L,-1);

 

/*Downside Tasuki Gap*/

downsideTasukiGap=

   Ref(blackBody,-2)//first day

   AND Ref(blackbody,-1) AND Ref(downgap,-1) //2nd

 

day

   AND whiteBody AND O<Ref(O,-1) AND O>Ref(C,-1)

 

AND C>Ref(O,-1) AND C<Ref(C,-2)

   AND Ref(identicalBodies,-1)                                          

 

                                                                        

   AND LLV(L,15)==Ref(L,-1);

 

 

/*Falling Three Meothods*/

fallingThreeMethods=Ref(LargeBody,-4) AND Ref

 

(blackBody,-4) AND

  /*Ref(doji,-3) AND Ref(doji,-2) AND Ref(doji,-1) AND*/

 

Ref(C,-1)>Ref(C,-2)

  AND Ref(C,-2)>Ref(C,-3) AND LargeBody AND

 

blackBody AND O>Ref(C,-4) AND

  O<Ref(O,-4) AND C<Ref(O,-4)AND C<Ref(C,-4);

 

/*In Neck Bearish not good*/

inNeckBearish=Ref(LargeBody,-1) AND Ref

 

(blackBody,-1) AND

   whiteBody AND O<Ref(L,-1) AND C<Ref(C,-1)*1.0005

 

AND C>=Ref(C,-1);

 

/*On Neck Bearish not good*/

OnNeckBearish=Ref(LargeBody,-1) AND Ref

 

(blackBody,-1) AND

   whiteBody AND O<Ref(L,-1) AND C<Ref(L,-1)*1.0025

 

AND C>=Ref(L,-1)*0.9975;

 

/*separating Lines Bearish*/

separatingLinesBearish=Ref(LargeBody,-1) AND Ref

 

(whiteBody,-1) AND

   blackBody AND O>Ref(O,-1)*0.9975 AND O<=Ref(O,-

 

1)*1.0025;

 

/*Side By Side White Lines Bearish*/

sideBySideWhiteLinesBearish=NOT Ref(smallBody,-2)

 

AND Ref(blackBody,-2) AND  

   Ref(whiteBody,-1) AND whiteBody AND Ref

 

(downGap,-1) AND identicalBodies

  AND abs(C-Ref(C,-1)<C*0.0025);

 

/*Three Black Crows*/

threeBlackCrows=Ref(blackBody,-2) AND Ref

 

(blackBody,-1) AND blackBody  AND Ref(C,-1)<Ref(C,-2)

 

AND C<Ref(C,-1) AND HHV(H,8)==Ref(H,-2) AND NOT

 

Ref(doji,-2) AND NOT Ref(doji,-1) AND NOT doji;;

  

/*Three Line Strike no trades*/

threeLineStrike=threeBlackCrows AND whiteBody AND

 

O<Ref(C,-1) AND C>Ref(O,-3);

 

/*Thrusting Bearish*/

thrustingBearish=Ref(blackBody,-1) AND Ref

 

(LargeBody,-1) AND LargeBody AND

   whitebody AND O<Ref(L,-1) AND C<(Ref(O,-1)+Ref

 

(C,-1))/2 AND C>Ref(C,-1);

 

/*Tweezer Top*/

tweezerTop= (abs(H-Ref(H,-1))/H<0.0025 OR

               abs(H-Ref(H,-2))/H<0.0025)

               AND (MHT OR MHY);

 

 

 

/* ***********************************************

         Regole di Buy (Alta Affidabilità)

**************************************************

Buy=

abandonedBabybullish OR

ConcealingBabySwallow OR

morningDojiStar OR

morningStar OR

threeInsideUp OR

threeOutsideUp OR

MAtHoldBullish OR

risingThreeMethods OR

sideBySideWhiteLines OR

threeWhiteSoldiers;

 

/* ***********************************************

  Regole di Cover (Moderata e Bassa Affidabilità)

**************************************************

Cover=

beltHoldBullish OR

breakAwayBullish OR

dojiStarBullish OR

engulfingBullish OR

hammerBullish OR

dragonflyDoji OR

haramiBullish OR

HaramiCross OR

homingPigeon OR

invertedHammer OR

meetingLinesbullish OR

piercingLine OR

stickSandwich OR

threeStarsInTheSouth OR  

triStarBullish OR

threeriverBottom OR

separatingLinesBullish OR

upsideGapThreeMethods OR

threeLineStrike OR

tweezerBottom OR

upsideTasukiGap;

 

/************************************

Regole di Short (bassa e media affidabilità)

*************************************

Short=

advanceBlockBearish OR

beltHoldBearish OR

breakAwayBearish OR

HangingMan OR

deliberationBearish OR

CounterAttackBearish OR

engulfingBearish OR

HammerBearish OR

dragonflyDojiBearish OR

HaramiBearish OR

HaramiCrossBearish OR

MeetingLinesBearish OR

shootingStarGap OR

gravestoneDoji OR

triStarBearish OR

twoCrows OR

dojiStarBearish OR

downsideGapThreeMethods OR

downsideTasukiGap OR

inNeckBearish OR

OnNeckBearish OR

separatingLinesBearish OR

sideBySideWhiteLinesBearish OR

threeLineStrike OR

thrustingBearish OR

tweezerTop;

 

/************************************

Regole di Sell (alta affidabilità)

*************************************

Sell=

AbandonedBabyBearish OR

darkCloudCover OR

eveningDojiStar OR

eveningStar OR

idendicalThreeBlackCrows OR

kickingBearish OR

threeInsideDownBearish OR

threeoutsideDownBearish OR

upsideGapTwoCrows OR

fallingThreeMethods OR

threeBlackCrows;

 

*/

 

_SECTION_END();

 

///////////////////////////////////////////Candle

 

Des///////////////////////////////////

///////////////////////////////////////////////End//

 

/////////////////////////////////////////////////////

 

/////////////

 

 

 

// Trend Detection

// Graham Kavanagh 11 Jan 05

// I am using version 4.66.2, but believe this will work

 

with last offical Version.

 

function Rise( Pd, perd, Pl, perl )

{

 MAD = DEMA(Pd,perd);

 MAL = LinearReg(Pl,perl);

 CondR = ROC(MAD,1)>0 AND ROC(MAL,1)>0;

 CondF = ROC(MAD,1)<0 AND ROC(MAL,1)<0;

 R[0] = C[0]>(H[0]+L[0])/2;

 

 for(i=1;i<BarCount;i++)

 {

  if( CondR[i] )

  {

   R[i] = 1;

  }

  else

  {

   if( CondF[i] )

   {

    R[i] = 0;

   }

   else

   {

    R[i] = R[i-1];

   }

  }

 }

 return R;

}

 

PrD = C;

PrL = H/2+L/2;

PrdD = PrdL = PrdM = Param("Prd",12,2,40,1);

 

permax = Max(prdd,prdl);

 

Rs = IIf( BarIndex()<permax, 0, Rise(PrD, PrdD, PrL,

 

PrdL) );

Fs = IIf( BarIndex()<permax, 0, 1-Rs );

 

Confirm = MA(C,prdm);

 

function DirBar( dr, df )

{

B[0] = 0;

 

for(i=1;i<BarCount;i++)

{

 if( dr[i-1] && df[i]  )

 {

  B[i] = 1;

 }

 else

 {

  if( df[i-1] && dr[i] )

  {

   B[i] = 1;

  }

  else

  {

   B[i] = B[i-1] + 1;

  }

 }

}

return B;

}

 

Bs = DirBar( Rs, Fs );

Direction = ROC(Confirm,1) > 0 AND ROC(Confirm,5) >

 

0;

Downward = ROC(Confirm,1) < 0 AND ROC(Confirm,5)

 

< 0;

 

Select = Rs AND Ref(Fs,-1);

Caution = Fs AND Ref(Rs,-1);

 

Change = IIf( Rs, H/ValueWhen(Fs,L)*100, L/ValueWhen

 

(Rs,H)*100 );

 

//Plot( C, "close", IIf( Rs, colorGreen, IIf( Fs, colorRed,

 

colorBlack )), styleBar);

 

 

//GraphXSpace=10;

//_N( Title = "{{NAME}} - {{INTERVAL}} {{DATE}} Trend

 

Plot - "+prdd+" Day" );

 

 

Filter = Select OR Caution;

AddColumn( Select, "UpTurn", 1 );

AddColumn( Caution, "DownTurn", 1 );

 

// ---indicator end---

//"Rise = " + Rs;

//"Fall = " + Fs;

//"Current Trend Bars = " + Bs;

//"Trend Move = " + Change + " %";

/*

            Heikin-Ashi(Koma-Ashi) with Moving Average

 

Type

*/

 

UpCandle = ParamColor("Up Color", colorBrightGreen );

DownCandle = ParamColor("Down Color", colorRed );

Consolidation = ParamColor("Consolidation",

 

colorWhite );

 

MACDColorUp = ParamColor("MACD Up",

 

colorDarkGreen );

MACDColorDown = ParamColor("MACD Down",

 

colorDarkRed );

Prd1=Param("ATR Period",4,1,20,1);

Prd2=Param("Look Back",8,1,20,1);

SetChartOptions(2, chartWrapTitle);

 

// Calculate Moving Average

MAPeriod = Param("MA Period", 4, 1, 100);

MAOpen = EMA(Open, MAPeriod);

MAHigh = EMA(High, MAPeriod);

MALow = EMA(Low, MAPeriod);

MAClose = EMA(Close, MAPeriod);

 

HaClose = (MAOpen + MAHigh + MALow + MAClose) /

 

4;

HaOpen = AMA(Ref(HaClose, -1), 0.5);

 

// for graph collapse

//for(i = 0; i <= MAPeriod; i++) HaClose[i] = Null;

/*

// same

// HaOpen = (Ref(HaOpen, -1) + Ref(HaClose, -1)) / 2;

HaOpen[ 0 ] = HaClose[ 0 ];

for(i = 1; i < BarCount; i++) {

    HaOpen[i] = (HaOpen[i - 1] + HaClose[i - 1]) / 2;

}

*/

 

HaHigh = Max(MAHigh, Max(HaClose, HaOpen));

HaLow = Min(MALow, Min(HaClose, HaOpen));

 

// outs comments

"BarIndex = " + BarIndex();

"Open = " + Open;

"High = " + High;

"Low = " + Low;

"Close = "+ Close;

"HaOpen = " + HaOpen;

"HaHigh = " + HaHigh;

"HaLow = " + HaLow;

"HaClose = "+ HaClose;

PlotShapes( shapeHollowSmallCircle* select,

 

colorBrightGreen, 0, HaLow, -21 );

PlotShapes( shapeHollowSmallCircle* Caution,

 

colorRed, 0, HaHigh,21 );

 

 

pricechange=(C-Ref(C,-1))*100/Ref(C,-1);

changeponit=C-Ref(C,-1);

 

BrightGreen=HHV(LLV(L,Prd1)+ATR(Prd1),Prd2);

BrightRed=LLV(HHV(H,Prd1)-ATR(Prd1),Prd2);

 

xDiff = (HaHigh - Halow) * IIf(StrFind(Name

 

(),"JPY"),100,10000);

 

barcolor = IIf(C>BrightGreen ,UpCandle,IIf(C <

 

BrightRed,DownCandle,Consolidation));

 

//SetBarFillColor(  );

SetBarFillColor(IIf(Mbuy,colorBlue,IIf(MSell,

 

colorYellow,IIf(MACDInd >SigInd,

 

MACDColorUp,MACDColorDown))));

 

PlotOHLC( HaOpen, HaHigh, HaLow, HaClose, "",

 

barcolor, styleCandle|styleNoLabel );

 

/////////////////////////////////////////////////////

 

/////////////////////////

 

_SECTION_BEGIN("Pivot");

nBars = Param("Number of bars", 12, 5, 40);

bShowTCZ = Param("Show TCZ", 1, 0, 1);

nExploreBarIdx = 0;

nExploreDate = 0;

nCurDateNum = 0;

DN = DateNum();

DT = DateTime();

bTCZLong = False;

bTCZShort = False;

nAnchorPivIdx = 0;

ADX8 = ADX(8);

if(Status("action")==1) {

            bDraw = True;

            bUseLastVis = 1;

} else {

            bDraw = False;

            bUseLastVis = False;

            bTrace = 1;

            nExploreDate = Status("rangetodate");

            for (i=LastValue(BarIndex());i>=0;i--) {

                        nCurDateNum = DN[i];

                        if (nCurDateNum == nExploreDate)

 

{

                                    nExploreBarIdx = i;

                        }

            }

}

GraphXSpace=7;

if (bDraw) {

}

aHPivs = H - H;

aLPivs = L - L;

aHPivHighs = H - H;

aLPivLows = L - L;

aHPivIdxs = H - H;

aLPivIdxs = L - L;

aAddedHPivs = H - H;

aAddedLPivs = L - L;

aLegVol = H - H;

aRetrcVol = H - H;

nHPivs = 0;

nLPivs = 0;

lastHPIdx = 0;

lastLPIdx = 0;

lastHPH = 0;

lastLPL = 0;

curPivBarIdx = 0;

aHHVBars = HHVBars(H, nBars);

aLLVBars = LLVBars(L, nBars);

aHHV = HHV(H, nBars);

aLLV = LLV(L, nBars);

nLastVisBar = LastValue(

            Highest(IIf(Status("barvisible"), BarIndex(),

 

0)));

curBar = IIf(nlastVisBar > 0 AND bUseLastVis,

 

nlastVisBar,

            IIf(Status("action")==4 AND nExploreBarIdx >

 

0, nExploreBarIdx,

            LastValue(BarIndex())));

curTrend = "";

if (aLLVBars[curBar] < aHHVBars[curBar])

            curTrend = "D";

else

            curTrend = "U";

if (curBar >= 120) {

            for (i=0; i<120; i++) {

                        curBar = IIf(nlastVisBar > 0 AND

 

bUseLastVis,

                                    nlastVisBar-i,

                                    IIf(Status("action")==4

 

AND nExploreBarIdx > 0,

                                    nExploreBarIdx-i,

                                    LastValue(BarIndex())-i));

                        if (aLLVBars[curBar] < aHHVBars

 

[curBar]) {

                                    if (curTrend == "U") {

                                                curTrend = "D";

                                                curPivBarIdx =

 

curBar - aLLVBars[curBar];

                                                aLPivs

 

[curPivBarIdx] = 1;

                                                aLPivLows

 

[nLPivs] = L[curPivBarIdx];

                                                aLPivIdxs

 

[nLPivs] = curPivBarIdx;

                                                nLPivs++;

                                    }

                        } else {

                                    if (curTrend == "D") {

                                                curTrend = "U";

                                                curPivBarIdx =

 

curBar - aHHVBars[curBar];

                                                aHPivs

 

[curPivBarIdx] = 1;

                                                aHPivHighs

 

[nHPivs] = H[curPivBarIdx];

                                                aHPivIdxs

 

[nHPivs] = curPivBarIdx;

                                                nHPivs++;

                                    }

                        }                      

            }

}

curBar =

            IIf(nlastVisBar > 0 AND bUseLastVis,

            nlastVisBar,

            IIf(Status("action")==4 AND nExploreBarIdx >

 

0,

            nExploreBarIdx,

            LastValue(BarIndex()))

            );

if (nHPivs >= 2 AND nLPivs >= 2) {

            lastLPIdx = aLPivIdxs[0];

            lastLPL = aLPivLows[0];

            lastHPIdx = aHPivIdxs[0];

            lastHPH = aHPivHighs[0];

            nLastHOrLPivIdx = Max(lastLPIdx, lastHPIdx);

            nAddPivsRng = curBar - nLastHOrLPivIdx;

            aLLVAfterLastPiv = LLV(L, nAddPivsRng);  

            nLLVAfterLastPiv = aLLVAfterLastPiv[curBar];

            aLLVIdxAfterLastPiv = LLVBars(L,

 

nAddPivsRng);  

            nLLVIdxAfterLastPiv = curBar -

 

aLLVIdxAfterLastPiv[curBar];

            aHHVAfterLastPiv = HHV(H, nAddPivsRng);

            nHHVAfterLastPiv = aHHVAfterLastPiv

 

[curBar];

            aHHVIdxAfterLastPiv = HHVBars(H,

 

nAddPivsRng);

            nHHVIdxAfterLastPiv = curBar -

 

aHHVIdxAfterLastPiv[curBar];

            if (lastHPIdx > lastLPIdx) {

           

                        /*          There are at least two

 

possibilities here. One is that

                                    the previous high was

 

higher, indicating that this is a

                                    possible short

 

retracement or one in the making.

                                    The other is that the

 

previous high was lower, indicating

                                    that this is a possible

 

long retracement in the working.

                                    However, both depend

 

on opposing pivots. E.g., if I find

                                    higher highs, what if I

 

have lower lows?  

                       

                                    If the highs are

 

descending, then I can consider:

                                                - a lower low,

 

and leave it at that

                                                - a higher high

 

and higher low

                                                - a lower low

 

and another lower high

                        */

                        if (aHPivHighs[0] < aHPivHighs[1]) {

           

                                    if (nLLVAfterLastPiv <

 

aLPivLows[0] AND

                                               

 

(nLLVIdxAfterLastPiv - lastHPIdx - 1) >= 1

                                                AND

 

nLLVIdxAfterLastPiv != curBar  ) {

           

                                                // -- OK, we'll

 

add this as a pivot.

                                                //    Mark it for

 

plotting...

                                                aLPivs

 

[nLLVIdxAfterLastPiv] = 1;

                                                aAddedLPivs

 

[nLLVIdxAfterLastPiv] = 1;

                       

                                                //    ...and then

 

rearrange elements in the

                                                //    pivot

 

information arrays

                                                for (j=0;

 

j<nLPivs; j++) {

                                                           

 

aLPivLows[nLPivs-j] = aLPivLows[nLPivs-(j+1)];

                                                           

 

aLPivIdxs[nLPivs-j] = aLPivIdxs[nLPivs-(j+1)];

                                                }

                                                aLPivLows[0] =

 

nLLVAfterLastPiv;

                                                aLPivIdxs[0] =

 

nLLVIdxAfterLastPiv;

                                                nLPivs++;

           

                                    // -- Test whether to add

 

piv given last piv is high

                                    //    AND we have lower

 

highs

                                    }

           

                        // -- Here, the last piv is a high piv,

 

and we have

                        //    higher-highs. The most likely

 

addition is a

                        //    Low piv that is a retracement.

                        } else {

           

                                    if (nLLVAfterLastPiv >

 

aLPivLows[0] AND

                                               

 

(nLLVIdxAfterLastPiv - lastHPIdx - 1) >= 1

                                                AND

 

nLLVIdxAfterLastPiv != curBar  ) {

           

                                                // -- OK, we'll

 

add this as a pivot.

                                                //    Mark it for

 

plotting...

                                                aLPivs

 

[nLLVIdxAfterLastPiv] = 1;

                                                aAddedLPivs

 

[nLLVIdxAfterLastPiv] = 1;

                       

                                                //    ...and then

 

rearrange elements in the

                                                //    pivot

 

information arrays

                                                for (j=0;

 

j<nLPivs; j++) {

                                                           

 

aLPivLows[nLPivs-j] = aLPivLows[nLPivs-(j+1)];

                                                           

 

aLPivIdxs[nLPivs-j] = aLPivIdxs[nLPivs-(j+1)];

                                                }

                                                aLPivLows[0] =

 

nLLVAfterLastPiv;

                                                aLPivIdxs[0] =

 

nLLVIdxAfterLastPiv;

                                                nLPivs++;

           

                                    // -- Test whether to add

 

piv given last piv is high

                                    //    AND we have lower

 

highs

                                    }          

                        // -- The last piv is a high and we

 

have higher highs

                        //    OR lower highs

                        }

           

            /*

 

*****************************************************

 

***********

                        Still finding missed pivot(s). Here,

 

the last piv is a low piv.

           

 

*****************************************************

 

*********** */

            } else {

           

                        // -- First casevar, lower highs

                        if (aHPivHighs[0] < aHPivHighs[1]) {

           

                                    if (nHHVAfterLastPiv <

 

aHPivHighs[0] AND

                                               

 

(nHHVIdxAfterLastPiv - lastLPIdx - 1) >= 1

                                                AND

 

nHHVIdxAfterLastPiv != curBar ) {

           

                                                // -- OK, we'll

 

add this as a pivot.

                                                //    Mark that

 

for plotting

                                                aHPivs

 

[nHHVIdxAfterLastPiv] = 1;

                                                aAddedHPivs

 

[nHHVIdxAfterLastPiv] = 1;

           

                                                //    ...and then

 

rearrange elements in the

                                                //    pivot

 

information arrays

                                                for (j=0;

 

j<nHPivs; j++) {

                                                           

 

aHPivHighs[nHPivs-j] = aHPivHighs[nHPivs-(j+1)];

                                                           

 

aHPivIdxs[nHPivs-j] = aHPivIdxs[nhPivs-(j+1)];

                                                }

                                                aHPivHighs[0] =

 

nHHVAfterLastPiv;

                                                aHPivIdxs[0] =

 

nHHVIdxAfterLastPiv;

                                                nHPivs++;

           

                                    // -- Test whether to add

 

piv given last piv is high

                                    //    AND we have lower

 

highs

                                    }

           

                        // -- Second casevar when last piv

 

is a low piv, higher highs

                        //    Most likely addition is high piv

 

that is a retracement.

                        //    Considering adding a high piv

 

as long as it is higher

                        } else {

           

                                    // -- Where I have higher

 

highs,

                                    if (nHHVAfterLastPiv >

 

aHPivHighs[0] AND

                                               

 

(nHHVIdxAfterLastPiv - lastLPIdx - 1) >= 1

                                                AND

 

nHHVIdxAfterLastPiv != curBar ) {

           

                                                // -- OK, we'll

 

add this as a pivot.

                                                //    Mark it for

 

plotting...

                                                aHPivs

 

[nHHVIdxAfterLastPiv] = 1;

                                                aAddedHPivs

 

[nHHVIdxAfterLastPiv] = 1;

           

                                                //    ...and then

 

rearrange elements in the

                                                //    pivot

 

information arrays

                                                for (j=0;

 

j<nHPivs; j++) {

                                                           

 

aHPivHighs[nHPivs-j] = aHPivHighs[nHPivs-(j+1)];

                                                           

 

aHPivIdxs[nHPivs-j] = aHPivIdxs[nhPivs-(j+1)];

                                                }

                                                aHPivHighs[0] =

 

nHHVAfterLastPiv;

                                                aHPivIdxs[0] =

 

nHHVIdxAfterLastPiv;

                                                nHPivs++;

           

                                    // -- Test whether to add

 

piv given last piv is high

                                    //    AND we have lower

 

highs

                                    }

           

                        }

                                   

            }

 

// -- If there are at least two of each

}

 

/* ****************************************

// -- Done with finding pivots

***************************************** */

 

if (bDraw) {

PivotEntry = ParamColor( "Entry Color",

 

colorBrightGreen );

PivotEntry2 = ParamColor( "Entry Color2", colorYellow

 

);

PivotExit = ParamColor( "Exit Color", colorRed );

PivotExit2 = ParamColor( "Exit Color2", colorYellow );

            // -- OK, let's plot the pivots using arrows

            PlotShapes(

                        IIf(aHPivs==1, shapeSquare,

 

shapeNone),

                                    PivotExit, 0, High,

 

Offset=30);

            PlotShapes(

                        IIf(aAddedHPivs==1, shapeSquare,

 

shapeNone),

                                    PivotExit2, 0, High,

 

Offset=30);

            PlotShapes(

                        IIf(aLPivs==1, shapeSquare ,

 

shapeNone),                       

                                    PivotEntry, 0, Low,

 

Offset=-30);

            PlotShapes(

                        IIf(aAddedLPivs==1, shapeSquare ,

 

shapeNone),

                                    PivotEntry2, 0, Low,

 

Offset=-30);

 

            PlotShapes(

                        IIf(aHPivs==1, shapeSquare,

 

shapeNone),

                                    colorBlack, 0,          High,

 

Offset=35);

            PlotShapes(

                        IIf(aAddedHPivs==1, shapeSquare,

 

shapeNone),

                                    colorBlack, 0, High,

 

Offset=35);

            PlotShapes(

                        IIf(aLPivs==1, shapeSquare ,

 

shapeNone),                       

                                    colorBlack, 0, Low,

 

Offset=-35);

            PlotShapes(

                        IIf(aAddedLPivs==1, shapeSquare ,

 

shapeNone),

                                    colorBlack, 0, Low,

 

Offset=-35);

 

            PlotShapes(

                        IIf(aAddedHPivs==1,

 

shapeSmallCircle, shapeNone),

                                    PivotExit2, 0, High,

 

Offset=30);

 

            PlotShapes(

                        IIf(aAddedLPivs==1,

 

shapeSmallCircle , shapeNone),

                                    colorYellow, 0, Low,

 

Offset=-30);

 

}

 

/* ****************************************

// -- Done with discovering and plotting pivots

***************************************** */

 

_SECTION_END();

 

 

_SECTION_BEGIN("Bollinger Bands");

P = ParamField("Price field",-1);

Periods = Param("Periods", 15, 2, 100, 1 );

Width = Param("Width", 2, 0, 10, 0.05 );

Color = ParamColor("Color", colorCycle );

Style = ParamStyle("Style");

Plot( BBandTop( P, Periods, Width ), "BBTop" +

 

_PARAM_VALUES(), colorWhite, styleThick );

Plot( BBandBot( P, Periods, Width ), "BBBot" +

 

_PARAM_VALUES(), colorWhite, styleThick );

_SECTION_END();

 

/////////////////////

_SECTION_BEGIN("Peak");

 

PK = HaHigh > Ref(HaHigh,-1) AND Ref(HaHigh,1) <

 

HaHigh;//Peak

PKV0 = ValueWhen(PK,HaHigh,0);//PeakValue0

PKV1 = ValueWhen(PK,HaHigh,1);//PeakValue1

PKV2 = ValueWhen(PK,HaHigh,2);//PeakValue2

MPK = PKV2 < PKV1 AND PKV1 > PKV0 ;//MajorPeak

MPKV = ValueWhen(Ref(MPK,-1) == 0 AND MPK == 1,

 

PKV1,1); //MajorPeakValue

MPKD = ValueWhen(Ref(MPK,-1) == 0 AND MPK == 1,

 

DateNum(),1); //MajorPeakDate

SD = IIf(DateNum() < LastValue(MPKD,lastmode = True

 

), Null, LastValue(MPKV,Lastmode =

 

True));//SelectedDate

Plot(SD,

 

"LastMinorResistance",colorDarkGrey,styleLine);

 

//PLOT THE SECOND LAST MAJOR PEAK RESISTANCE

 

LINE

MPKV2 = ValueWhen(Ref(MPK,-1) == 0 AND MPK == 1,

 

PKV1,2); //MajorPeakValue

MPKD2 = ValueWhen(Ref(MPK,-1) == 0 AND MPK == 1,

 

DateNum(),2); //MajorPeakDate

SD2 = IIf(DateNum() < LastValue(MPKD2,lastmode =

 

True ), Null, LastValue(MPKV2,Lastmode =

 

True));//SelectedDate

Plot(SD2,

 

"LastMajorResistance",colorDarkGrey,styleLine);

_SECTION_END();

 

_SECTION_BEGIN("Support");

SP = Ref(HaLow,1) > HaLow AND HaLow < Ref

 

(HaLow,-1);//Peak

SPV0 = ValueWhen(SP,HaLow,0);//PeakValue0

SPV1 = ValueWhen(SP,HaLow,1);//PeakValue1

SPV2 = ValueWhen(SP,HaLow,2);//PeakValue2

MSP = SPV2 > SPV1 AND SPV1 < SPV0 ;//MajorPeak

MSPV = ValueWhen(Ref(MSP,-1) == 0 AND MSP == 1,

 

SPV1,1);

MSPD = ValueWhen(Ref(MSP,-1) == 0 AND MSP == 1,

 

DateNum(),1);

SD = IIf(DateNum() < LastValue(MSPD,lastmode = True

 

), Null, LastValue(MSPV,Lastmode = True));

Plot(SD,"LastMinorSupport",colorDarkGrey,styleLine);

 

 

MSPV2 = ValueWhen(Ref(MSP,-1) == 0 AND MSP == 1,

 

SPV1,2);

MSPD2 = ValueWhen(Ref(MSP,-1) == 0 AND MSP == 1,

 

DateNum(),2);

SD2 = IIf(DateNum() < LastValue(MSPD2,lastmode =

 

True ), Null, LastValue(MSPV2,Lastmode = True));

Plot(SD2,"LastMajorSupport",colorDarkGrey,styleLine);

 

_SECTION_END();

 

 

 

 

_N(Title = StrFormat("\\c02**pipschart.com**...

 

{{NAME}} | {{DATE}} | {{VALUES}}",O, H, L, C,

 

SelectedValue( ROC( C, 1 )) )

 

+"\n"+EncodeColor(colorOrange) +"Open      = " +

 

EncodeColor(colorWhite) + O +

"\n"+EncodeColor(colorOrange) +"High       = " +

 

EncodeColor(5) + H +

"\n"+EncodeColor(colorOrange) +"Low        = " +

 

EncodeColor(colorRed) + L  

+"\n"+WriteIf( Ref(C,-1)<C ,

EncodeColor(colorGreen)+"Close     ="

+" "+C

+"  "+"(Change%)"

+"  "+ pricechange+"%"

+"  "+"(Taka)"

+"  "+changeponit,

 

EncodeColor(colorRed)+"Close     ="

+" "+C

+"  "+"(Change%)"

+"  "+pricechange+"%"

+"  "+"(Taka)"

+"  "+changeponit)

 

+"\n"+EncodeColor(colorYellow)+ "Volume  ="

+EncodeColor(colorBlack)+"."

+EncodeColor(colorBrightGreen) +WriteVal( V, 1.0 )

+(" : ")+WriteIf(V>Vp2,EncodeColor(colorLime)+"Very

 

High",WriteIf(V>Vp1,EncodeColor(colorLime)+"

 

High",WriteIf(V>Vrg,EncodeColor(colorLime)+"Above

 

Average",

WriteIf(V<Vrg AND V>Vn1,EncodeColor(colorRed)+"Less

 

than Average",WriteIf(V<Vn1,"Low","")))))

+"\n"

+"\n"

+WriteIf(Vpc,"COMMENTARY:\n","")

+EncodeColor(colorRed)+WriteIf(utbar , "Up-thrusts are

 

designed to catch stops and to mislead as many

 

traders as possible.\nThey are normally seen after

 

there has been weakness \nin the background. The

 

market makers know that the \nmarket is weak, so the

 

price is marked up to catch stops\n, encourage traders

 

to go long in a weak market, \nAND panic traders that

 

are already Short into covering \ntheir very good

 

position.","")

+EncodeColor(colorRed)+WriteIf(utcond3,"This

 

upthrust bar is at high volume.\nThis is a sure sign of

 

weakness. \nOne may even seriously consider ending

 

the Longs \nAND be ready to reverse","")

+EncodeColor(colorRed)+WriteIf(utbar OR utcond3,"

 

Also note that A wide spread \ndown-bar that appears

 

immediately after any up-thrust, \ntends to confirm

 

the weakness (the market makers \nare locking in

 

traders into \npoor positions).With the appearance of

 

an upthrust \nyou should certainly be paying attention

 

to your trade \nAND your stops. On many upthrusts

 

you will \nfind that the market will 'test' almost

 

immediately.","")

+EncodeColor(colorRed)+WriteIf(utcond1 , "A wide

 

spread down bar following a Upthrust Bar.\n This

 

confirms weakness. The Smart Money is locking in

 

Traders into poor positions","")

+EncodeColor(colorRed)+WriteIf(utcond2 , "Also here

 

the volume is high( Above Average).\nThis is a sure

 

sign of weakness. \nThe Smart Money is locking in

 

Traders into \npoor positions","")

+EncodeColor(colorBrightGreen)+WriteIf(stdn,

 

"Strength Bar. The stock has been in a down Trend.

 

\nAn upbar with higher Volume closing near the High

 

\nis a sign of strength returning. \nThe downtrend is

 

likely to reverse soon. ","")

+EncodeColor(colorBrightGreen)+WriteIf(stdn1,"Here

 

the volume is very much above average. \nThis makes

 

this indication more stronger. ","")

+EncodeColor(colorBrightGreen)+WriteIf(bycond,"The

 

previous bar saw strength coming back. \nThis upbar

 

confirms strength. ","")

+EncodeColor(colorRed)+WriteIf(Hutbar," A pseudo

 

Upthrust. This normally appears after an Up Bar

 

\nwith above average volume. This looks like \nan

 

upthrust bar closing down near the Low. \nBut the

 

Volume is normally Lower than average. \nthis is a

 

sign of weakness.If the Volume is High then weakness

 

increases. \nSmart Money is trying to trap the retailers

 

\ninto bad position. ","")

+EncodeColor(colorRed)+WriteIf(Hutcond, "A downbar

 

after a pseudo Upthrust Confirms weakness. \nIf the

 

volume is above average the weakness is increased.

 

","")

+EncodeColor(colorBrightGreen)+WriteIf(Lvtbar2,"The

 

previous bar was a successful Test of supply.\n The

 

current bar is a upbar with higher volume. \nThis

 

confirms strength","")

+EncodeColor(colorPink)+WriteIf(dbar,"A wide range,

 

high volume bar in a up trend closing \ndown is an

 

indication the Distribution is in progress. \nThe smart

 

money is Selling the stock to the late Comers rushing

 

\nto Buy the stock NOT to be Left Out Of a \nBullish

 

move. ","")

+EncodeColor(colorBrightGreen)+WriteIf(Lvtbar1, "Test

 

for supply in a uptrend. Sign of Strength. ","")

+EncodeColor(colorRed)+WriteIf(tcbar,"The stock has

 

been moving up on high volume. \nThe current bar is a

 

Downbar with high volume. \nIndicates weakness and

 

probably end of the up move","")

+EncodeColor(colorBrightGreen)+WriteIf(eftup,"Effort

 

to Rise bar. This normally found in the \nbeginning of

 

a Markup Phase and is bullish sign.\nThese may be

 

found at the top of an Upmove as the \nSmart money

 

makes a last effort to move the price \nto the

 

maximum","")

+EncodeColor(colorRed)+WriteIf(eftdn,"Effort to Fall

 

bar. This normally found in \nthe beginning of a

 

Markdown phase.","")

+EncodeColor(colorGreen)+WriteIf(nsbar,"No Supply. A

 

no supply bar indicates supply \nhas been removed

 

and the Smart money can markup the price. \nIt is

 

better to wait for confirmation","")

+EncodeColor(colorPink)+WriteIf(stvol,"Stopping

 

Volume. This will be an downbar \nduring a bearish

 

period closing towards the Top accompanied \nby

 

High volume. A stopping Volume normally \nindicates

 

that smart money is absorbing the supply which is a

 

Indication that they are Bullishon the MArket. Hence

 

we Can expect a reversal in the down trend. ","")

+EncodeColor(colorRed)+WriteIf(ndbar, "No Demand

 

Brief \nDescription: Any up bar which closes in the

 

middle OR Low, \nespecially if the Volume has fallen

 

off, \nis a potential sign of weakness.\nThings to Look

 

Out for:if the market is still strong, \nyou will

 

normally see signs of strength in the next\n few bars,

 

which will most probably show itself as a:\n * Down

 

bar with a narrow spread, closing in the middle OR

 

High. \n* Down bar on Low Volume.","")

+EncodeColor(colorRed)+WriteIf (eftupfl, "Effort to

 

Move up has failed. Bearish sign ","")

//+WriteIf (stvol, "Stopping volume. Normally indicates

 

end of bearishness is nearing. ","")+

+EncodeColor(colorRed)+WriteIf (utcond2 AND NOT

 

utcond1, " A High Volume downbar after an Upthrust.

 

Confirm weakness.","")

+EncodeColor(colorBrightGreen)+WriteIf (stdn0 AND

 

NOT stdn, "Strength seen returning after a down trend.

 

","")

+EncodeColor(colorBrightGreen)+WriteIf (stdn AND

 

NOT stdn1, "Strength seen returning after a long down

 

trend. ","")

+EncodeColor(colorBrightGreen)+WriteIf (Lvtbar, "Test

 

for supply. ","")

+EncodeColor(colorBrightGreen)+WriteIf (stdn2, "High

 

volume upbar closing on the high indicates strength.

 

","")

 

+"\n"

+"\n"

+"\n"

+"\n"+/**********************************************

 

****

Standards of Cover (Moderate and low Reliability)

/***************************************************/

EncodeColor(colorBrightGreen)+

WriteIf(beltHoldBullish,"(+) Belt Hold Bullish. Pattern

 

reversal.\nThe wider the candle, the more significant.

 

\nReliability second LitWick: Low. \n","") +

WriteIf(breakAwayBullish,"(+) breakvar Away Bullish.

 

Pattern reversal.\nReliability second LitWick: Moderate

 

\n","") +

WriteIf(dojiStarBullish,"(+) Bullish doji Star. Pattern

 

reversal.\nNison: Requires confirmation. Best sign on

 

top.\nReliability second LitWick: Moderate \n","") +

WriteIf(hammerBullish,"(+) Bullish Hammer. Pattern

 

reversal.\nNison: The longer the tail lower (shadow), is

 

shorter than the upper tail AND smaller the body of

 

the candle, the more significant the pattern. The

 

candles are white rialziste more than the black body

 

with candles. \\ NReliability Second LitWick: Low.

 

\n","") +

WriteIf(dragonflyDoji,"(+) Dragonfly Doji. Reliability

 

second LitWick: Moderate \n","") +

WriteIf(haramiBullish, "(+) Harami Bullish. Pattern

 

reversal.\nNison: Insignificant. The pattern requires

 

confirmation. \\ NReliability second LitWick: Low.

 

\n","") +

WriteIf(HaramiCross,"(+) Harami Cross. Pattern

 

reversal.\nNison: Best indicator Harami. Best on the

 

maximum signal that the minimum. \\ NReliability

 

second LitWick: Low. \n","") +

WriteIf(homingPigeon,"(+) Homing Pigeon. Pattern

 

reversal.\nReliability second LitWick: Moderate \n","")

 

+

WriteIf(invertedHammer,"(+) Inverted Hammer. Pattern

 

reversal.\nNison: Requires confirmation bullish.

 

\nReliability second LitWick: Low. \n","") +

WriteIf(meetingLinesbullish,"(+) Meeting Lines bullish.

 

Pattern reversal.\nReliability second LitWick: Moderate

 

\n","") +

WriteIf(piercingLine,"(+) Piercing Line. Pattern

 

reversal.\nNison: a pattern of strong inversion.

 

\nReliability second LitWick: Moderate \n","") +

WriteIf(stickSandwich,"(+) Stick Sandwich. Pattern

 

reversal.\nReliability second LitWick: Moderate \n","")

 

+

WriteIf(threeStarsInTheSouth,"(+) 3 Stars in the South.

 

Pattern reversal.\nReliability second LitWick: Moderate

 

\n","") +

WriteIf(triStarBullish,"(+) Tri-Star Bullish. Pattern

 

reversal.\nNison: Patterns of significant reversal.

 

\nReliability second LitWick: Moderate \n","") +

WriteIf(threeriverBottom,"(+) 3 River Bottom. Pattern

 

reversal.\nNison: The selling pressure is decreasing.

 

\nReliability Second LitWick: Moderate \n","") +

WriteIf(separatingLinesBullish,"(+) Separating Lines

 

Bullish. Pattern continued.\nReliability second LitWick:

 

Low. \n","") +

WriteIf(upsideGapThreeMethods,"(+) Upside Gap 3

 

Methods. Pattern continued.\nReliability second

 

LitWick: Moderate \n","") +

WriteIf(threeLineStrike,"(+) 3 Line Strike. Pattern

 

continued.\nReliability second LitWick: Low. \n","") +

WriteIf(tweezerBottom,"(+) Tweezer Bottom. Pattern

 

reversal. Together with other candles reversal may

 

indicate a level of support.\nNison: Requires

 

confirmation. \n","") +

WriteIf(upsideTasukiGap,"(+) Upside Tasuki Gap.

 

Pattern continued.\nNison: the bodies of two candles

 

in the gap should be of similar magnitude.\nReliability

 

second LitWick: Moderate \n","") +

 

 

 

/**************************************

              Commenti

***************************************

            Candles bullish - Bullish

****************************************/

EncodeColor(colorGreen)+

WriteIf(abandonedBabybullish,"(+) Abandoned Baby

 

Bullish. Pattern reversal.\nReliability second LitWick:

 

high. \n","") +

WriteIf(ConcealingBabySwallow,"(+) Concealing Baby

 

Swallow. Pattern reversal.\nReliability second LitWick:

 

high. \n","") +

WriteIf(engulfingBullish,"(+) Bullish Engulfing. Pattern

 

reversal.\nNison: The factors that increase the effect

 

of the pattern are\n 1) The first day (before) the

 

candle has a small body on the second day and has a

 

wide body.\n 2) The pattern appears after a move very

 

fast or very protracted. \n 3) High Volume on the

 

second day (current).\n 4)The days seconfo covers

 

(Engulfs) more of a candle.\n Reliability second

 

LitWick: Moderate \n","") +

WriteIf(morningDojiStar,"(+) Morning Doji Star. Pattern

 

reversal.\nImportant sign of reversal.\nReliability

 

second LitWick: high. \n","") +

WriteIf(morningStar,"(+) Morning Star. Pattern

 

reversal.\nNison:    Better according to increase the

 

size of the white candle (third).\nReliability Second

 

LitWick: high. \n","") +

WriteIf(threeInsideUp,"(+) 3 Inside Up. Pattern

 

reversal.\nReliability second LitWick: high. \n","") +

WriteIf(threeOutsideUp,"(+) 3 Outside Up. Pattern

 

reversal.\nReliability second LitWick: High. \n","") +

WriteIf(MAtHoldBullish,"(+) Mat Hold Bullish. Pattern

 

continued.\nNison: 2-4 may have black candles.

 

\nReliability Second LitWick: High. \n","") +

WriteIf(risingThreeMethods,"(+) Rising Three Methods.

 

Pattern continued.>\nNison: Ha maggior significato se

 

il volume delle candele bianche è maggiore rispetto a

 

quello delle candele nere.\nReliability second LitWick:

 

High. \n","") +

WriteIf(sideBySideWhiteLines,"(+) Side by Side White

 

Lines. Pattern continued.\nNison: if in a downtrend

 

may be caused by ricoperture be Short.\nReliability

 

Second LitWick: High. \n","") +

WriteIf(threeWhiteSoldiers,"(+) 3 White Soldiers.

 

Pattern continued.\nNison: Positive, but pay attention

 

to such negative pattern of stalemate and subsequent

 

pattern of the block.\nReliability second LitWick: High.

 

\n","") +

/***************************************

                 Candle Down - Bearish

********************************************/

EncodeColor(colorRed)+

 

WriteIf(AbandonedBabyBearish,"(-) Abandoned Baby

 

Bearish. Pattern reversal.\nNison: Extremely rare.

 

\nReliability second LitWick: High. \n","") +

WriteIf(advanceBlockBearish,"(-) Advancing Block

 

Bearish. Pattern reversal.\nNison: Rally has problems.

 

A sign of weakness could be a gradual decrease in the

 

bodies of white candles OR the presence of relatively

 

higher long queues on the last two white candles. NOT

 

necessarily a reversal pattern.\nReliability Second

 

LitWick: Moderate \n","") +

WriteIf(darkCloudCover,"(-) Dark Cloud Cover. Pattern

 

reversal.\nNison: Factors that indicate the importance

 

of this signal is: \\ n 1) Magggior penetration of the

 

first candle in the second. \\ n 2) If both candles are

 

marabozu. \\ n 3) The body of the second candle on a

 

significant level of resistance. \n 4) High-volume days

 

in socondo.\nReliability second LitWick: High. \n","") +

WriteIf(eveningDojiStar,"(-) Evening Doji Star. Pattern

 

reversal.\nNison: must be confirmed by a long black

 

candle.\nReliability second LitWick: High. \n","") +

WriteIf(eveningStar,"(-) Evening Star. Pattern reversal.

 

\nNison: the gap between the second and third candle

 

body is not always present.\nReliability second

 

LitWick: High. \n","") +

WriteIf(HammerBearish,"(-) Bearish Hammer. Pattern

 

reversal.\nNison: more bearish if the hammer is black.

 

E 'bearish confirmation needed. A significant gap down

 

the next day will be confirmed. \n","") +

WriteIf(dragonflyDojiBearish,"(-) Dragonfly Bearish.

 

Pattern reversal.\nNison: as in 'Hanging Man'.

 

\nReliability Second LitWick: Moderate \n","") +

WriteIf(HaramiBearish,"(-) Harami Bearish. Pattern

 

reversal.\nNison: not as significant as' hanging man

 

'and' engulfing '.\nReliability second LitWick: Low.

 

\n","") +

WriteIf(idendicalThreeBlackCrows,"(-) Identical 3 Black

 

Crows. Pattern di inversione in uptrend.\nNison: very

 

bearish.\nReliability Second LitWick: High. \n","") +

WriteIf(kickingBearish,"(-) Kicking Bearish. Pattern

 

reversal.\nReliability second LitWick: High. \n","") +

WriteIf(threeInsideDownBearish,"(-) 3 Inside Down.

 

Pattern reversal.\nReliability second LitWick: High.

 

\n","") +

WriteIf(threeoutsideDownBearish,"(-) 3 Outside Down.

 

Pattern reversal.\nReliability second LitWick: High.

 

\n","") +

WriteIf(upsideGapTwoCrows,"(-) Upside Gap 2 Crows.

 

Pattern reversal.\nNison: requires confirmation with

 

inversion continued on the third day.\nReliability

 

second LitWick: High. \n","") +

WriteIf(fallingThreeMethods,"(-) Falling 3 Methods.

 

Pattern continued.\nReliability second LitWick: High.

 

\n","") +

WriteIf(threeBlackCrows,"(-) 3 Black Crows. Pattern

 

reversal.\nNison: should look after a rise 'mature'.

 

\nReliability Second LitWick: High. \n","") +

/***********************************************

               Short sell

 

**************************************************/

EncodeColor(colorPink)+

WriteIf(beltHoldBearish,"(-) Belt Hold Bearish. Pattern

 

reversal.\nNison: The longer the height of the candle is

 

the most significant pattern.\nReliability second

 

LitWick: Low. \n","") +

WriteIf(breakAwayBearish,"(-) breakvar Away Bearish.

 

Pattern reversal.\nReliability second LitWick: Moderate

 

\n","") +

WriteIf(HangingMan,"(-) Hanging Man. Pattern reversal.

 

\nNison: Such a 'bearish hammer' with a significant

 

gap down the next day. \nReliability second LitWick:

 

Low. \n","") +

WriteIf(deliberationBearish,"(-) Deliberation Bearish.

 

Pattern reversal.\nNison: It is not a real pattern of

 

reversal, but a sign that the rally is weakening. \n

 

Reliability second LitWick: Moderate \n","") +

WriteIf(CounterAttackBearish,"(-) Counter Attack

 

Bearish.\nNison: un potenziale stallo del rally. \n","") +

WriteIf(engulfingBearish,"(-) Engulfing Bearish. Pattern

 

reversal.\nNison: Important sign of reversal. The

 

factors that increase the importance of the patterns

 

are: \n 1) above the candle has a very small body AND

 

the Second candle is a very large body. \n 2) the

 

pattern appears after a protracted OR moving very

 

fast. \n 3 ) High volumes in the Second Day. \n 4) on

 

the Second Day covers the body more than a body of

 

candles before.\nReliability Second LitWick: Moderate

 

\n","") +

WriteIf(HaramiCrossBearish,"(-) Harami Cross Bearish.

 

Pattern reversal.\nNison: more significant downtrend

 

pattern of 'Harami'. The second day, the candle can be

 

white or black.\nReliability second LitWick: Moderate

 

\n","") +

WriteIf(MeetingLinesBearish,"(-) Meeting Lines Bearish.

 

Pattern reversal.\nReliability second LitWick:

 

moderate, but not so strong as' Dark Cloud Cover '.

 

\n","") +

WriteIf(shootingStarGap,"(-) Shooting Star. Pattern

 

reversal.\nNison: not so important as an 'evening star'.

 

Ideally, the body of the candle should be in a gap from

 

the body of the candle before. It should appear after a

 

positive trend.\nReliability second LitWick: Low. \n","")

 

+

WriteIf(gravestoneDoji,"(-) Gravestone Doji. Pattern

 

reversal.\nNison: more significant when touching a

 

new all-time high.\nReliability second LitWick:

 

Moderate \n","") +

WriteIf(triStarBearish,"(-) Tri-Star Bearish. Pattern

 

reversal.\nNison: pattern of very significant reversal.

 

\nReliability second LitWick: Moderate \n","") +

WriteIf(twoCrows,"(-) 2 Crows. Pattern reversal.

 

\nReliability second LitWick: Moderate \n","") +

WriteIf(dojiStarBearish,"(-) Doji Star Bearish. Pattern

 

reversal.\nNison: Requires confirmation.\nReliability

 

second LitWick: Moderate \n","") +

WriteIf(downsideGapThreeMethods,"(-) Downside Gap

 

3 Methods. Pattern continued.\nReliability second

 

LitWick: Moderate \n","") +

WriteIf(downsideTasukiGap,"(-) Downside Tasuki Gap.

 

Method of continuation.\nNison: if the last Day we

 

closed the gap, the pattern to continuevar is denied.

 

\nReliability Second LitWick: Moderate \n","") +

WriteIf(inNeckBearish,"(-) In Neck Bearish. Pattern

 

continued.\nNison: as in 'piercing pattern' but more

 

bearish on the second day because there is no

 

penetration.\nReliability second LitWick: Moderate

 

\n","") +

WriteIf(OnNeckBearish,"(-) On Neck Bearish. Pattern

 

continued. Similar to 'piercing'ma more bearish

 

because there is no penetration on the second day.

 

\nReliability second LitWick: Moderate \n","") +

WriteIf(separatingLinesBearish,"(-) Separating Lines

 

Bearish. \n","") +

WriteIf(sideBySideWhiteLinesBearish,"(-) Side by Side

 

White Lines Bearish. Pattern continued.\nNison: very

 

rare.\nReliability Second LitWick: Moderate \n","") +

WriteIf(threeLineStrike,"(-) 3 Line Strike. Pattern

 

continued.\nReliability second LitWick: Low. \n","") +

WriteIf(thrustingBearish,"(-) Thrusting. Pattern

 

continued.\nNison: is not a day of reversal because the

 

second day does not engage the midpoint of the first

 

day.\nReliability second LitWick: Low. \n","") +

WriteIf(tweezerTop,"(-) Tweezer Top. Pattern

 

reversal.\nNison: Requires confirmation. \n","")

 

+"\n"

+"\n"

+"\n"

+"\n"

 

)

;

 

 

//////////////////////////////////

_SECTION_BEGIN("WMA1");

P = ParamField("Price field",-1);

//Periods = Param("Periods",8, 2, 300, 1, 10 );

Plot( WMA( P, 8 ), "WMA(8)", colorOrange, ParamStyle

 

("Style") );

_SECTION_END();

 

_SECTION_BEGIN("WMA3");

P = ParamField("Price field",-1);

//Periods = Param("Periods", 12, 2, 300, 1, 10 );

Plot( WMA( P, 12 ), "WMA(12)", colorGreen, ParamStyle

 

("Style") );

_SECTION_END();

 

_SECTION_BEGIN("WMA4");

P = ParamField("Price field",-1);

//Periods = Param("Periods", 15, 2, 300, 1, 10 );

Plot( WMA( P, 15 ), "WMA(15)", colorRed, ParamStyle

 

("Style") );

_SECTION_END();

 

_SECTION_BEGIN("WMA");

P = ParamField("Price field",-1);

//Periods = Param("Periods", 200, 2, 300, 1, 10 );

Plot( WMA( P, 200), "WMA(200)", colorYellow, 8 );

_SECTION_END();

 

_SECTION_BEGIN("WMA6");

P = ParamField("Price field",-1);

//Periods = Param("Periods", 50, 2, 300, 1, 10 );

Plot( WMA( P, 50 ), "WMA(50)", colorPink, ParamStyle

 

("Style") );

adsdsdsad();

 

_SECTION_BEGIN("WMA7");

P = ParamField("Price field",-1);

//Periods = Param("Periods", 100, 2, 300, 1, 10 );

Plot( WMA( P, 100 ), "WMA(100)", ParamColor( "Color",

 

colorCycle ), ParamStyle("Style") );

_SECTION_END();

 

Cách sử dụng AFL  cho Amibroker 

  • Tải xuống tệp Amibroker AFL.
  • Bây giờ hãy sao chép tệp afl và dán vào \Program Files\AmiBroker\Formulas\Custom. [Dành cho 32 bit] hoặc \Program Files(x86)\AmiBroker\Formulas\Custom. [Dành cho 64 bit]
  • Vào phần công thức của Amibroker và bạn sẽ thấy afl trong thư mục Custom.

Nguồn thông tin Dòng tiền chứng khoán sưu tầm 

https://pipschart.com/wma-band-with-explain-afl-for-amibroker/

Comments

Popular posts from this blog

TẠI SAO NÊN ĐẦU TƯ CHỨNG KHOÁN ?

LỰA CHỌN CÔNG TY CHỨNG KHOÁN MỞ TÀI KHOẢN GIAO DỊCH

ĂN NHỊP HỒI VNINDEX THÁNG 10/2024

Labels

Show more