Pullbacks for Amibroker (AFL)
trader888 over 12 years ago Amibroker (AFL)
Buy and Short just on pullbacks.
Indicator / Formula
Copy & Paste Friendly
("jayeshbhai 1.1 + Roc");
//OptimizerSetEngine("cmae");
SetChartOptions(0,chartShowArrows|chartShowDates);
SetChartBkColor(ColorRGB(49,79,79));
_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() );
SetBarsRequired(sbrAll,sbrAll);
xx =Cum(1);
//nbar =Optimize("NBar",Param("nbar",5,2,400,1),2,400,1);
//nbar =Optimize("nbar",Param("nbar",6,1,21,1),5,21,1);
nbar = 6;
//FB[0] = 0.28;FB[1] = 0.28; FB[2] = 0.38; FB[3] = 0.50; FB[4] = 0.61; FB[5] = 1; FB[6] =1.61; FB[7] = 2.61; FB[8] = 4.23;
//FibNum = Optimize("FBindex",Param("FBindex",0.16,0.10,0.50,0.01),0.10,0.50,0.01);
FibNum = 0.16;
//FibNum =FB[FBindex];
//F=Optimize("F",Param("F",10,5,50,1),5,50,1);
f = 10;
// define fractals
PHigh = C > Ref(HHV(C,nbar),-1) AND Ref(HHV(C,nbar),0) <= C;
PHighPrice =ValueWhen(PHigh,C);
PLow = C < Ref(LLV(C,nbar),-1) AND Ref(LLV(C,nbar),0) >= C;
PLowPrice = ValueWhen(PLow,C);
//PlotShapes(shapeSmallCircle*PLow,colorGreen,0,L,-10);
//PlotShapes(shapeSmallCircle*PHigh,colorRed,0,H,10);
R = PHighPrice - PLowPrice;
// range
//R4 = PHighPrice-(R *0.11 );
//S4 = PLowPrice +(R *0.11);
R4 = PHighPrice -(R * FibNum );
S4 = PLowPrice + (R * FibNum );
BSL= PLowPrice;
SSL= PHighPrice;
//Plot(R4, "",colorOrange,styleStaircase);
//Plot(S4, "",colorGreen,styleStaircase);
//Plot(SSL, "",colorAqua,styleStaircase);
//Plot(BSL, "",colorAqua,styleStaircase);
//Buy = Cover = Cross(C, S4);
//Sell = Short = Cross(R4, C);
BuyFlag_ = False;
SellFlag =False;
BuyFlag = False;
temp1 =True;
temp2= True;
FinalSell =False;
FinalBuy = False;
for
(i=1 ; i < BarCount ; i++){
if(PHigh[i]){
SellFlag =True;
BuyFlag = False;
}
if(SellFlag){
if( (C[i-1] > R4[i-1] AND C[i] < R4[i]) AND temp1 ) {
SellFlag=False;
FinalSell[i]=True;
temp2=True;
temp1=False;
}
}
if(temp2){
if( C[i] > PHighPrice[i-1] ){
FinalBuy[i]=True;
temp2=False;
temp1=True;
}
}
if(PLow[i]){
BuyFlag = True;
SellFlag =False;
}
if(BuyFlag){
if( (C[i-1] < S4[i-1] AND C[i] > S4[i]) AND temp2 ){
BuyFlag=False;
BuyFlag_=True;
FinalBuy[i]=True;
temp2=False;
temp1=True;
}
}
if(temp1){
if( C[i] < PLowPrice[i-1] ){
FinalSell[i]=True;
temp2=True;
temp1=False;
}
}
}
test1Flag = False;
test2Flag = False;
test1Flag_ = False;
test2Flag_ = False;
JackPotSell = False;
JackPotBuy = False;
JackPotCover = False;
JackPotShort = False;
t1 = False;
t2 = False;
t3 = False;
t4 = False;
t5 = False;
R = ROC(Close,F);
for
(i=1 ; i < BarCount ; i++){
if((FinalBuy[i])){
if(t5){
JackPotCover[i]= True;
t5 =False;
}
t1 = True;
}
if(R[i] > 0 ){
if(t1){
JackpotBuy[i] = True;
t3 = True;
t1= False;
}
}
if((FinalSell[i])){
if(t3){
JackPotSell[i]= True;
t3 =False;
}
t4 = True;
}
if(R[i] < 0 ){
if(t4){
JackPotShort[i] = True;
t5 = True;
t4= False;
}
}
}
//Plot(StoMom, _DEFAULT_NAME(), ParamColor("Color", ColorCycle ) );
_SECTION_END();
pivot = ParamToggle("pivot","Show|Hide",0);
Buyselllable = ParamToggle("Buysell-lable","Show|Hide",0);
NormalCandle=ParamToggle("Plot Normal Candle", "No,Yes", 1 );
messageboard = ParamToggle("Message Board","Show|Hide",0);
font = ParamToggle("font","Show|Hide",1);
GraphXSpace = Param( "GraphXSpace", 8, 2, 200, 1 );
p = 4;
//p = Param("p",5,2,100,1);
_SECTION_BEGIN("Trend Lines");
//p1 = Param("TL 1 Periods", 20, 5, 50, 1);
p1 = 29;
p2 = 7;
//p2 = Param("TL 2 Periods", 5, 3, 25, 1);
TL1 = LinearReg(C, p1);
TL2 = MA(TL1, p2);
Col1 = IIf(TL1 > TL2, ParamColor("TL Up Colour", colorGreen), ParamColor("TL Dn Colour", colorRed));
Plot(TL1, "TriggerLine 1", Col1, styleLine|styleThick|styleNoLabel);
Plot(TL2, "TriggerLine 2", Col1, styleLine|styleThick|styleNoLabel);
_SECTION_END();
SetChartOptions(0,chartShowArrows|chartShowDates);
//_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) Vol " +WriteVal( V, 1.0 ) +" {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 )) ));
//SetChartBkGradientFill(ParamColor("Top", colorTeal), ParamColor("Bottom", colorLightGrey), ParamColor("Title", colorTeal));
//SetChartBkColor(colorTeal);
//SetForeign(Vr);
Om=DEMA(O,p);
hm=DEMA(H,p);
lm=DEMA(L,p);
Cm=DEMA(C,p);
HAC=(Om+Hm+Lm+Cm)/4;
//HaC =(O+H+L+C)/4;
HaO = AMA( Ref( HaC, -16 ), 0.5 );
HaH = Max( H, Max( HaC, HaO) );
HaL = Min( L, Min( HaC, HaO) );
HAClose=(Om+Hm+Lm+Cm)/4;
//HaC =(O+H+L+C)/4;
HaOpen = AMA( Ref( HaC, -1 ), 0.5 );
HaHigh = Max( H, Max( HaC, HaO) );
HaLow = Min( L, Min( HaC, HaO) );
BG3=HHV(LLV(HaL,18)+ATR(8),10);
BR3=LLV(HHV(HaH ,4)-ATR(4),2);
co = IIf(Hac>BG3 ,colorDarkGreen,IIf(Hac < BR3,colorDarkRed,colorGrey50));
Plot(4, "", Co,styleArea+styleOwnScale | styleNoLabel, -1, 100);
RestorePriceArrays();
if(NormalCandle==1 )
{
PlotOHLC( Hac, Hao, Hah, Hal, " " , co, styleCandle | styleThick );
}
else
{
//PlotOHLC( Open, High, Low, Close, " " ,co, styleCandle | styleThick );
}
//Plot( C, "Close", colorWhite, styleCandle, Zorder = 1);
SetChartOptions(0,chartShowArrows | chartShowDates);
tempo = TimeNum() > 091000 AND TimeNum() < 165000;
saida = TimeNum() > 170000;
ww=Optimize("ww",1,1,21,1);
//yy=Optimize("yy",1,1,21,1);
Buy = TL1>TL2
AND jackpotsell
AND tempo
AND ADX(8) > 19
AND TL1 - Haclose < 140
AND TL2 - Haclose < 155
//AND abs(H-L) > 68
//AND abs(Ref(L,-1)-Ref(C,-1)) < 118
AND ADX(34) < 40
AND ADX(21) < 59
AND ADX(9) < 56
AND ADX(4) < 79
AND ADX(2) < 98
AND PDI(89) < 32
AND PDI(34) < 51
//AND ADX(9) > 18
AND PDI(6) > 12
AND Ultimate(4,4,28) < 70
AND Ultimate(9,1,28) < 60
AND Ultimate(7,6,85) > 35
AND Ultimate(6,1,85) > 30
AND Ultimate(21,5,5) > 40
AND Wilders(C,7) < MA(C,3)
AND ADX(5) > MDI(5)
AND MFI(8) > (15)
//AND abs(O-C) < 200
AND abs(C-MA(C,89)) > 3
//AND abs(C-MA(C,21)) < 166
//AND abs(C-MA(C,9)) < 131
//AND abs(C-MA(C,50)) > ww
AND ADX(15) > 11
//AND ADX(10) > ww
AND RWI(2,14) > -0.5
AND RWI(3,3) < 1.5
AND RMI(3,6) > 30
AND RSI(89) < 61
AND RSI(21) < 65
AND RSI(9) < 65
AND RSI(4) < 67
AND RSI(2) < 61
AND MA(C,3) > MA(C,1)
//AND Ultimate(17,6,28) > 40
//AND abs(tl2-Hac) < 185
//AND abs(Hac-C) < 105
//AND abs(Hah-H) < 170
//AND abs(Hac-Ref(C,-21)) > ww
AND abs(Hac-Ref(Hac,-4)) > 1
//AND Trix(30) > -0.4
;
Short =
TL1<TL2
AND tempo
AND JackPotCover
AND Ultimate(12,6,5) < 70
AND Ultimate(21,5,5) < 60
AND Ultimate(7,14,85) < 50
AND Ultimate(3,3,85) > 30
AND Ultimate(12,6,85) > 35
AND Ultimate(1,5,5) > 40
AND ADX(21) > 12
//AND Ultimate(4,19,28) < 59
AND ADX(5) > MDI(5)
AND MA(C,15) > MA(C,5)
AND MA(C,4) < Wilders(C,5)
AND MDI(14) > 12
AND RWI(11,12) < 0
AND ADX(34) < 40
AND ADX(21) < 45
AND ADX(9) < 57
AND ADX(4) < 90
AND ADX(2) < 100
AND ADX(34) > 9
AND ADX(21) > 13
AND ADX(9) > 16
AND RSI(34) > 33
AND RSI(21) > 31
AND RSI(9) > 28
AND RSI(4) > 27
AND RSI(2) > 26
AND RSI(34) < 59
AND RSI(21) < 60
AND RSI(9) < 65
AND RSI(4) < 83
AND RMI(5,6) < 50
//AND RMI(1,12) < 60
//AND RMI(10,1) > 30
//AND RSI(89) < 57
//AND RSI(21) < 68
//AND RSI(9) < 59
AND Trix(1) > -0.2
AND abs(H-L) > 21
//AND abs(O-C) < 110
AND abs(C-MA(C,89)) > 5
//AND abs(C-MA(C,21)) > 46
//AND abs(C-MA(C,200)) > 74
//AND abs(C-MA(C,300)) > 17
AND abs(C-MA(C,50)) > 3
AND MFI(12) > 14
//AND MDI(ww) > yy
//AND MA(C,5) < MA(C,16)
AND RSI(10) < 50
//AND Hac<Bg3
AND Ultimate(17,4,28) > 39
//AND abs(Hac-C) < 190
AND abs(Hac-Ref(C,-12)) > 2
AND abs(Hac-Ref(Hac,-12)) > 2
;
Buy = ExRem(Buy,Short);
Short = ExRem(Short,Buy);
Sell = Short OR saida;
Cover = Buy OR saida;
PlotShapes( IIf( Buy == 1, shapeUpArrow, shapeNone ), colorLime, 0, Low );
PlotShapes( IIf( Short == 1, shapeDownArrow, shapeNone ), colorRed, 0, High );
GraphXSpace = 8;dist = 1.2*ATR(21);
for( i = 0; i < BarCount; i++)
{
if( Buy[i] ) PlotText( "" + C[ i ], i, L[ i ]-dist[i], colorLime );
if( Short[i] ) PlotText( "" + C[ i ], i, H[ i ]+dist[i], colorRed);
}7 comments
Leave Comment
Please login here to leave a comment.
good
Doesn’t show trading Arrows. Would like to change chart Background color – how?
Dick
@hoierman you can change background on line 7. Most likely there are no trading arrows because the buy and sell rules are too restrictive and no signals are being generated (My guess without testing).
very good but downtrend can be indicated with better colours
You guys can change the restrictive signals and change it for each market or stock etc…
good one
Great.