candlestick patterns with bollinger band :thumb::thumb:
// Author Abnash Singh @ [email protected]
// pattern logic obtained from Candlesticker.com
// Other references Candle Master
_SECTION_BEGIN("MetaCandle");
BgColor=ParamColor("BgColor", colorBlack);
SetChartBkGradientFill( BgColor,BgColor,BgColor);
upcolor=ParamColor("Up color ",colorGreen);
downcolor=ParamColor("Down color ",colorRed);
barcolor=IIf(C>Ref(C,-1),upcolor,downcolor);
Insidecolor=IIf(C<O,barcolor,BgColor);
SetBarFillColor(Insidecolor);
PlotOHLC( Open, High, Low, Close, " " , barcolor, styleCandle | styleThick );
_SECTION_END();
_SECTION_BEGIN("trend with pivot levels");
uptrend= Signal(29)<MACD(13);
downtrend= Signal(29)>MACD(13);
Plot( 2, /* defines the height of the ribbon in percent of pane width */"ribbon",
IIf( uptrend, colorGreen, IIf( downtrend, colorRed, 0 )), /* choose color */
styleOwnScale|styleArea|styleNoLabel, -0.5, 100 );
_SECTION_END();
_SECTION_BEGIN("Magnified Market Price");
FS=Param("Font Size",28,11,100,1);
GfxSelectFont("Arial", FS, 700, italic = False, underline = False, True );
GfxSetBkMode( colorWhite );
GfxSetTextColor( ParamColor("Color",colorRed) );
Hor=Param("Horizontal Position",766,1,1200,1);
Ver=Param("Vertical Position",1,1,1,1);
GfxTextOut(""+C,Hor , Ver );
GfxTextOut( Name(), Hor,Ver-50 );
YC=TimeFrameGetPrice("C",inDaily,-1);
DD=Prec(C-YC,2);
xx=Prec((DD/YC)*100,2);
GfxSelectFont("Arial", 12, 700, italic = False, underline = False, True );
GfxSetBkMode( colorWhite );
GfxSetTextColor(ParamColor("Color",colorRed) );
GfxTextOut(""+DD+" ("+xx+"%)", Hor+5, Ver+45 );
_SECTION_END();
_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", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
_SECTION_END();
// 2 bar Gann Trend Swing Chart
// Developed by Abnash Singh
// Contact me at abnash1978@ * .co.uk
// Parameters allow you to choose bar/candle type and color intensity.
// And display of Bollinger band
//trend line beg
SetBarsRequired(1000);
BarLum1 = Param("Bar Color Intensity", 8, 0, 10,01);
UpBarColor = ColorBlend(ColorRGB(5,36,5), ColorRGB(10,75,10), BarLum1);
DnBarColor = ColorBlend(ColorRGB(36,5,5), ColorRGB(75,10,10), BarLum1);
BarColor = IIf(Close > Open, UpBarColor, DnBarColor);
SetBarFillColor(BarColor);
stylecndl=ParamList("Bar or Candle chart?","Bar|Candle");
Showboll=ParamList("Show Bollinger Bands","Yes|No");
if (stylecndl=="Bar")stylec=styleBar;
else stylec=styleCandle;
Plot(C,"close",colorWhite,stylec);
tline=tlinebs=barhi=barlo=beglo=beghi=endi=begi=0;
for (i=1;i<BarCount;i++)
{
if (i>=4)
{
//if (i>begi+1)PlotText(WriteVal(I>begi+1,1.0),i,H+15,colorOrange);
if (H>H[i-1]AND H[i-1]>H[i-2] AND i>beglo)
{
tline=H;
barhi=1;
barlo=0;
prevhi=beghi;
beghi=i;
}
if (L<L[i-1]AND L[i-1]<L[i-2] AND i>beghi)
{
tline=L;
barlo=1;
barhi=0;
prevlo=beglo;
beglo=i;
}
}
if (i==beglo)
{
if (prevlo>beghi)
{
begi=prevlo; begval=L[prevlo];
endi=beglo;endval=L[beglo];
}
else if (beghi>prevlo)
{
begi=beghi; begval=H[beghi];
endi=beglo;endval=L[beglo];
}
}
if (i==beghi)
{
if (prevhi>beglo)
{
begi=prevhi; begval=H[prevhi];
endi=beghi;endval=H[beghi];
}
else if (beglo>prevhi)
{
begi=beglo; begval=L[beglo];
endi=beghi;endval=H[beghi];
}
}
if (endi-begi>1)
{
incr=(endval-begval)/(endi-begi);
for (j=begi;j<=endi;j++)
{
tline[j]=begval+(j-begi)*incr;
}
}
if (tline==0)tline=Null;
//trend line end
}
tline=IIf(tline>0,tline,Null);
Plot(tline,"Trendline",colorWhite,styleLine);
if (showboll=="Yes")
{
_SECTION_BEGIN("Bollinger Bands");
P = ParamField("Price field",-1);
Periods = Param("Periods", 15, 2, 300, 1 );
Width = Param("Width", 2, 0, 10, 0.05 );
Color = ParamColor("Color", colorCycle );
Style = ParamStyle("Style");
Plot( BBandTop( P, Periods, Width ), "BBTop" + _PARAM_VALUES(), Color, Style );
Plot( BBandBot( P, Periods, Width ), "BBBot" + _PARAM_VALUES(), Color, Style );
_SECTION_END();
_SECTION_BEGIN("MA");
P = ParamField("Price field",-1);
Periods = Param("Periods", 15, 2, 300, 1, 10 );
Plot( MA( P, Periods ), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ), ParamStyle("Style") );
_SECTION_END();
}
_SECTION_BEGIN("Magnified Market Price");
FS=Param("Font Size",28,11,100,1);
GfxSelectFont("Arial", FS, 700, italic = False, underline = False, True );
GfxSetBkMode( colorWhite );
GfxSetTextColor( ParamColor("Color",colorRed) );
Hor=Param("Horizontal Position",766,1,1200,1);
Ver=Param("Vertical Position",1,1,1,1);
GfxTextOut(""+C,Hor , Ver );
GfxTextOut( Name(), Hor,Ver-50 );
YC=TimeFrameGetPrice("C",inDaily,-1);
DD=Prec(C-YC,2);
xx=Prec((DD/YC)*100,2);
GfxSelectFont("Arial", 12, 700, italic = False, underline = False, True );
GfxSetBkMode( colorWhite );
GfxSetTextColor(ParamColor("Color",colorRed) );
GfxTextOut(""+DD+" ("+xx+"%)", Hor+5, Ver+45 );
_SECTION_END();
_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", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
_SECTION_END();
_SECTION_BEGIN("Pattern Recognition");
SetChartOptions(0,chartShowArrows|chartShowDates);
Plot( C, "Close", ParamColor("Color", colorWhite ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
showpatterns=ParamList("Show Patterns","No|Yes");
ind=0;
O1 = Ref(O,-1);O2 = Ref(O,-2);O3 = Ref(O,-3);O4 = Ref(O,-4);
H1 = Ref(H,-1);H2 = Ref(H,-2);H3 = Ref(H,-3);H4 = Ref(H,-4);
L1 = Ref(L,-1);L2 = Ref(L,-2);L3 = Ref(L,-3);L4 = Ref(L,-4);
C1 = Ref(C,-1);C2 = Ref(C,-2);C3 = Ref(C,-3);C4 = Ref(C,-4);
MA13=MA(C,15);MA134=Ref(MA(C,15),-4);
Plot(MA13,"MA13",colorBlue,styleNoTitle);
m=0;n=0;Dayx=0;z=0;
if (showpatterns=="Yes")
{
for (i=1;i<BarCount-1;i++)
{
if (i>2)
{
//bearish doji evening star
if (C2>O2
AND((C2-O2)/(.001+H2-L2)>.6)
AND (C2<O1)
// AND (C1>=O1)
AND ((H1-L1)>(3*(abs(C1-O1))))
AND (O>C) AND (O<O1)
AND MA13-MA134>0)
{
m=i;ind=1;
PlotText("BEARDJEV*",i,H+10,colorRed);
}
//abandoned baby
if (((C1 == O1)
AND (C2>O2) AND ((C2-O2)/(.001+H2-L2)>.6)
AND (O>C)
AND (L1>H2)
AND (L1>H))
AND MA13-MA134>0)
{
m=i;ind=1;
PlotText("ABBABY",i,H+10,colorRed);
}
//Bearish Kicking
if(C<O AND ((O-C)/(.001+H-L)>.6)
AND (C-L<0.2*(H-L)) AND (H-O<0.2*(H-L))
AND C1>O1 AND ((C1-O1)/(.001+H1-L1)>.6)
AND (H1-C1<0.2*(H-L)) AND (O1-L1<0.2*(H-L))
AND O<O1 )
{
m=i;ind=1;
PlotText("BearKik",i,H+10,colorRed);
}
//Dark Cloud Cover
if(C1>O1 AND (C1-O1)/(.001+H1-L1)>.6
AND (O>C)
AND (O>=H1) AND (C>O1)
AND (((C1+O1)/2)>C)
AND (C>O1)
AND MA13-MA134>0)
{
m=i;ind=1;
PlotText("DRKCLD",i,H+10,colorRed);
}
//Three black crows
if (C<O AND ((O-C)/(.001+H-L)>.6)
AND C1<O1 AND ((O1-C1)/(.001+H1-L1)>.6)
AND C2<O2 AND ((O2-C2)/(.001+H2-L2)>.6)
AND (C<C1) AND (C1<C2) AND (O>C1)
AND (O<O1) AND (O1>C2) AND (O1<O2)
AND (((C-L)/(H-L))<.2)
AND (((C1-L1)/(H1-L1))<.2)
AND (((C2-L2)/(H2-L2))<.2)
AND MA13-MA134>0 )
{
m=i;ind=1;
PlotText("3BLKCROWS",i,H+10,colorRed);
}
//3 Inside down
if ((C2>O2) AND ((C2-O2)/(.001+H2-L2)>.6)
AND (O1>C1)
AND (O1<= C2) AND (O2<= C1)
AND ((O1-C1)<(C2-O2))
AND (O>C)
AND (C<C1) AND (O<O1)
AND MA13-MA134>0 )
{
m=i;ind=1;
PlotText("3INSIDEDN",i,H+10,colorRed);
}
//3 Outside down
if (((C2>O2)
AND (O1>C1) AND ((O1-C1)/(.001+H1-L1)>.6)
AND (O1>= C2) AND (O2>= C1)
AND ((O1-C1)>(C2-O2))
AND (O>C) AND (C<C1))
AND MA13-MA134>0 )
{
m=i;ind=1;
PlotText("3OUTSIDEDN",i,H+10,colorRed);
}
//Bearish upside gap two crows
if (O>C AND O1>C1
AND C1>C AND O1<O AND (O1-C1<O-C)
AND (C>C2)
AND O1>C2 AND C2>O2
AND ((c2-o2)/(.001+H2-L2)>.6)
AND MA13-MA134>0 )
{
m=i;ind=1;
PlotText("UPSDGAP2CRW",i,H+10,colorRed);
}
//bullish Patterns
//Piercing line
if (((C1<O1) AND ((C2-o2)/(.001+H2-L2)>.6)
AND (((O1+C1)/2)<C) AND (O<C) AND (O<C1) AND (C<O1
// Author Abnash Singh @ [email protected]
// pattern logic obtained from Candlesticker.com
// Other references Candle Master
_SECTION_BEGIN("MetaCandle");
BgColor=ParamColor("BgColor", colorBlack);
SetChartBkGradientFill( BgColor,BgColor,BgColor);
upcolor=ParamColor("Up color ",colorGreen);
downcolor=ParamColor("Down color ",colorRed);
barcolor=IIf(C>Ref(C,-1),upcolor,downcolor);
Insidecolor=IIf(C<O,barcolor,BgColor);
SetBarFillColor(Insidecolor);
PlotOHLC( Open, High, Low, Close, " " , barcolor, styleCandle | styleThick );
_SECTION_END();
_SECTION_BEGIN("trend with pivot levels");
uptrend= Signal(29)<MACD(13);
downtrend= Signal(29)>MACD(13);
Plot( 2, /* defines the height of the ribbon in percent of pane width */"ribbon",
IIf( uptrend, colorGreen, IIf( downtrend, colorRed, 0 )), /* choose color */
styleOwnScale|styleArea|styleNoLabel, -0.5, 100 );
_SECTION_END();
_SECTION_BEGIN("Magnified Market Price");
FS=Param("Font Size",28,11,100,1);
GfxSelectFont("Arial", FS, 700, italic = False, underline = False, True );
GfxSetBkMode( colorWhite );
GfxSetTextColor( ParamColor("Color",colorRed) );
Hor=Param("Horizontal Position",766,1,1200,1);
Ver=Param("Vertical Position",1,1,1,1);
GfxTextOut(""+C,Hor , Ver );
GfxTextOut( Name(), Hor,Ver-50 );
YC=TimeFrameGetPrice("C",inDaily,-1);
DD=Prec(C-YC,2);
xx=Prec((DD/YC)*100,2);
GfxSelectFont("Arial", 12, 700, italic = False, underline = False, True );
GfxSetBkMode( colorWhite );
GfxSetTextColor(ParamColor("Color",colorRed) );
GfxTextOut(""+DD+" ("+xx+"%)", Hor+5, Ver+45 );
_SECTION_END();
_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", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
_SECTION_END();
// 2 bar Gann Trend Swing Chart
// Developed by Abnash Singh
// Contact me at abnash1978@ * .co.uk
// Parameters allow you to choose bar/candle type and color intensity.
// And display of Bollinger band
//trend line beg
SetBarsRequired(1000);
BarLum1 = Param("Bar Color Intensity", 8, 0, 10,01);
UpBarColor = ColorBlend(ColorRGB(5,36,5), ColorRGB(10,75,10), BarLum1);
DnBarColor = ColorBlend(ColorRGB(36,5,5), ColorRGB(75,10,10), BarLum1);
BarColor = IIf(Close > Open, UpBarColor, DnBarColor);
SetBarFillColor(BarColor);
stylecndl=ParamList("Bar or Candle chart?","Bar|Candle");
Showboll=ParamList("Show Bollinger Bands","Yes|No");
if (stylecndl=="Bar")stylec=styleBar;
else stylec=styleCandle;
Plot(C,"close",colorWhite,stylec);
tline=tlinebs=barhi=barlo=beglo=beghi=endi=begi=0;
for (i=1;i<BarCount;i++)
{
if (i>=4)
{
//if (i>begi+1)PlotText(WriteVal(I>begi+1,1.0),i,H+15,colorOrange);
if (H>H[i-1]AND H[i-1]>H[i-2] AND i>beglo)
{
tline=H;
barhi=1;
barlo=0;
prevhi=beghi;
beghi=i;
}
if (L<L[i-1]AND L[i-1]<L[i-2] AND i>beghi)
{
tline=L;
barlo=1;
barhi=0;
prevlo=beglo;
beglo=i;
}
}
if (i==beglo)
{
if (prevlo>beghi)
{
begi=prevlo; begval=L[prevlo];
endi=beglo;endval=L[beglo];
}
else if (beghi>prevlo)
{
begi=beghi; begval=H[beghi];
endi=beglo;endval=L[beglo];
}
}
if (i==beghi)
{
if (prevhi>beglo)
{
begi=prevhi; begval=H[prevhi];
endi=beghi;endval=H[beghi];
}
else if (beglo>prevhi)
{
begi=beglo; begval=L[beglo];
endi=beghi;endval=H[beghi];
}
}
if (endi-begi>1)
{
incr=(endval-begval)/(endi-begi);
for (j=begi;j<=endi;j++)
{
tline[j]=begval+(j-begi)*incr;
}
}
if (tline==0)tline=Null;
//trend line end
}
tline=IIf(tline>0,tline,Null);
Plot(tline,"Trendline",colorWhite,styleLine);
if (showboll=="Yes")
{
_SECTION_BEGIN("Bollinger Bands");
P = ParamField("Price field",-1);
Periods = Param("Periods", 15, 2, 300, 1 );
Width = Param("Width", 2, 0, 10, 0.05 );
Color = ParamColor("Color", colorCycle );
Style = ParamStyle("Style");
Plot( BBandTop( P, Periods, Width ), "BBTop" + _PARAM_VALUES(), Color, Style );
Plot( BBandBot( P, Periods, Width ), "BBBot" + _PARAM_VALUES(), Color, Style );
_SECTION_END();
_SECTION_BEGIN("MA");
P = ParamField("Price field",-1);
Periods = Param("Periods", 15, 2, 300, 1, 10 );
Plot( MA( P, Periods ), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ), ParamStyle("Style") );
_SECTION_END();
}
_SECTION_BEGIN("Magnified Market Price");
FS=Param("Font Size",28,11,100,1);
GfxSelectFont("Arial", FS, 700, italic = False, underline = False, True );
GfxSetBkMode( colorWhite );
GfxSetTextColor( ParamColor("Color",colorRed) );
Hor=Param("Horizontal Position",766,1,1200,1);
Ver=Param("Vertical Position",1,1,1,1);
GfxTextOut(""+C,Hor , Ver );
GfxTextOut( Name(), Hor,Ver-50 );
YC=TimeFrameGetPrice("C",inDaily,-1);
DD=Prec(C-YC,2);
xx=Prec((DD/YC)*100,2);
GfxSelectFont("Arial", 12, 700, italic = False, underline = False, True );
GfxSetBkMode( colorWhite );
GfxSetTextColor(ParamColor("Color",colorRed) );
GfxTextOut(""+DD+" ("+xx+"%)", Hor+5, Ver+45 );
_SECTION_END();
_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", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
_SECTION_END();
_SECTION_BEGIN("Pattern Recognition");
SetChartOptions(0,chartShowArrows|chartShowDates);
Plot( C, "Close", ParamColor("Color", colorWhite ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
showpatterns=ParamList("Show Patterns","No|Yes");
ind=0;
O1 = Ref(O,-1);O2 = Ref(O,-2);O3 = Ref(O,-3);O4 = Ref(O,-4);
H1 = Ref(H,-1);H2 = Ref(H,-2);H3 = Ref(H,-3);H4 = Ref(H,-4);
L1 = Ref(L,-1);L2 = Ref(L,-2);L3 = Ref(L,-3);L4 = Ref(L,-4);
C1 = Ref(C,-1);C2 = Ref(C,-2);C3 = Ref(C,-3);C4 = Ref(C,-4);
MA13=MA(C,15);MA134=Ref(MA(C,15),-4);
Plot(MA13,"MA13",colorBlue,styleNoTitle);
m=0;n=0;Dayx=0;z=0;
if (showpatterns=="Yes")
{
for (i=1;i<BarCount-1;i++)
{
if (i>2)
{
//bearish doji evening star
if (C2>O2
AND((C2-O2)/(.001+H2-L2)>.6)
AND (C2<O1)
// AND (C1>=O1)
AND ((H1-L1)>(3*(abs(C1-O1))))
AND (O>C) AND (O<O1)
AND MA13-MA134>0)
{
m=i;ind=1;
PlotText("BEARDJEV*",i,H+10,colorRed);
}
//abandoned baby
if (((C1 == O1)
AND (C2>O2) AND ((C2-O2)/(.001+H2-L2)>.6)
AND (O>C)
AND (L1>H2)
AND (L1>H))
AND MA13-MA134>0)
{
m=i;ind=1;
PlotText("ABBABY",i,H+10,colorRed);
}
//Bearish Kicking
if(C<O AND ((O-C)/(.001+H-L)>.6)
AND (C-L<0.2*(H-L)) AND (H-O<0.2*(H-L))
AND C1>O1 AND ((C1-O1)/(.001+H1-L1)>.6)
AND (H1-C1<0.2*(H-L)) AND (O1-L1<0.2*(H-L))
AND O<O1 )
{
m=i;ind=1;
PlotText("BearKik",i,H+10,colorRed);
}
//Dark Cloud Cover
if(C1>O1 AND (C1-O1)/(.001+H1-L1)>.6
AND (O>C)
AND (O>=H1) AND (C>O1)
AND (((C1+O1)/2)>C)
AND (C>O1)
AND MA13-MA134>0)
{
m=i;ind=1;
PlotText("DRKCLD",i,H+10,colorRed);
}
//Three black crows
if (C<O AND ((O-C)/(.001+H-L)>.6)
AND C1<O1 AND ((O1-C1)/(.001+H1-L1)>.6)
AND C2<O2 AND ((O2-C2)/(.001+H2-L2)>.6)
AND (C<C1) AND (C1<C2) AND (O>C1)
AND (O<O1) AND (O1>C2) AND (O1<O2)
AND (((C-L)/(H-L))<.2)
AND (((C1-L1)/(H1-L1))<.2)
AND (((C2-L2)/(H2-L2))<.2)
AND MA13-MA134>0 )
{
m=i;ind=1;
PlotText("3BLKCROWS",i,H+10,colorRed);
}
//3 Inside down
if ((C2>O2) AND ((C2-O2)/(.001+H2-L2)>.6)
AND (O1>C1)
AND (O1<= C2) AND (O2<= C1)
AND ((O1-C1)<(C2-O2))
AND (O>C)
AND (C<C1) AND (O<O1)
AND MA13-MA134>0 )
{
m=i;ind=1;
PlotText("3INSIDEDN",i,H+10,colorRed);
}
//3 Outside down
if (((C2>O2)
AND (O1>C1) AND ((O1-C1)/(.001+H1-L1)>.6)
AND (O1>= C2) AND (O2>= C1)
AND ((O1-C1)>(C2-O2))
AND (O>C) AND (C<C1))
AND MA13-MA134>0 )
{
m=i;ind=1;
PlotText("3OUTSIDEDN",i,H+10,colorRed);
}
//Bearish upside gap two crows
if (O>C AND O1>C1
AND C1>C AND O1<O AND (O1-C1<O-C)
AND (C>C2)
AND O1>C2 AND C2>O2
AND ((c2-o2)/(.001+H2-L2)>.6)
AND MA13-MA134>0 )
{
m=i;ind=1;
PlotText("UPSDGAP2CRW",i,H+10,colorRed);
}
//bullish Patterns
//Piercing line
if (((C1<O1) AND ((C2-o2)/(.001+H2-L2)>.6)
AND (((O1+C1)/2)<C) AND (O<C) AND (O<C1) AND (C<O1