Hourly Breakout AFL - Help Needed

#1
Dear Experts,
Here I have attached Hourly Breakout Afl. Everyday First Hour High or Low Break out Then Show Buy or Sell Signal. I Have Set Target Only One Point . Stoploss : If Buy Trade is Executed then SL is Today's First Hour Low or If Sell Trade is Executed then SL is Today's First Hour High. I like to take Backtest in this AFL. But Before I take Backtest, I like to add some conditions in this AFL. So Can Anyone help to Add below condition in this AFL?

Condition:
========
1. Every Day must show signal only 1 buy & 1 sell signal. [After market opened one hour, If CMP go above high then show buy signal and CMP go below low then show sell signal.]

* Every day may show First Signal is Buy or Sell, but the same day if second signal will come then check today's Previous signal. Today's Previous signal is Buy, then show Sell Signal otherwise don't show or Today's Previous signal is Sell, then show Buy Signal otherwise don't show .

Target : Only One Points.

Stop Loss : 1st Hour Low for Buy Trade & 1st Hour High for Sell Trade.

Example : Today's Copper 11 a.m. High - Low Details:
High : 480
Low : 475

* 1st Trade : After 11 a.m. Current Market Price go above 480 then show buy signal , Target: 481 (Today's High + 1), StopLoss :475 (Today's Low).

* 2nd Trade : If CMP go below 475 then show Sell signal, But Before check Previous Signal is Buy only then show now here Sell Signal.


AFL :
HTML:
SetChartOptions(0,chartShowArrows|chartShowDates);
dec = (Param("Decimals",2,0,7,1)/10)+1;
SetChartBkColor(ParamColor("Outer panel",colorBlack)); 
SetChartBkGradientFill(
ParamColor("Inner panel upper",colorBlack),
ParamColor("Inner panel lower",colorBlack));
//ToolTip=StrFormat("Open: %g\nHigh:  %g\nLow:   %g\nClose:  %g (%.1f%%)\nVolume: "+NumToStr( V, 1 ), O, H, L, C) + "\n" + "\n" + ("***** HAPPY TRADING ***** " );

breakoutime = 110000;
afterbreakout0 = Cross(TimeNum(),110000);
afterbreakout1 = TimeNum()>=110000;
NewDay = Day()!= Ref(Day(), -1);
highestoftheday = HighestSince(newday,H,1);
Lowestoftheday =LowestSince(newday,L,1);
ORBHigh = ValueWhen(afterbreakout0,highestoftheday,1);
ORBLow = ValueWhen(afterbreakout0,lowestoftheday,1);
Buy= Cross(C,orbhigh) AND afterbreakout1;
Sell = Cross(orblow,C) AND afterbreakout1;
Short = Sell;
Cover = Buy;
Tar=Param("Target",1,1,100);
BuyFirst = ORBHigh + Tar ; 
Plot(BuyFirst,"",colorGreen,styleLine);
SellFirst = ORBLow - Tar;
Plot(SellFirst,"",colorRed,styleLine ) ;

Plot(C,"",colorWhite,styleCandle);
PlotShapes( shapeUpArrow * Buy, colorGreen,0,L,-12);
PlotShapes( shapeDownArrow * Sell, colorRed,0,H,-12);
Plot(NewDay,"",colorWhite,styleHistogram|styleOwnScale);
Plot(afterbreakout0,"",colorBlue,styleHistogram|styleOwnScale);
Plot(ORBHigh,"",colorGreen,styleDots);
Plot(ORBLow,"",colorRed,styleDots);

Title = EncodeColor(55)+  Title = Name() + "     " + EncodeColor(55) 
+ Date() + "      " + EncodeColor(55) + "{{INTERVAL}}  " +
	EncodeColor(55)+ "     Open = "+ EncodeColor(55)+ NumToStr
(O,dec) +  
	EncodeColor(55)+ "     High = "+ EncodeColor(55) + NumToStr
(H,dec) +
	EncodeColor(55)+ "      Low = "+ EncodeColor(55)+ NumToStr
(L,dec) + 
	EncodeColor(55)+ "     Close = "+ EncodeColor(55)+ NumToStr
(C,dec) +
//	EncodeColor(55)+ "     BI = "+ EncodeColor(42)+ NumToStr
//(bi,1.0) +
	EncodeColor(55)+ "     Volume = "+ EncodeColor(55)+ NumToStr
(V,1.0) +"\n"+"\n"+
EncodeColor(55)+ " BUY  ABOVE   : "+ EncodeColor(55)+ NumToStr
(ORBHigh,dec) +"\n"+
	EncodeColor(55)+ " TAR                   : "+ EncodeColor(55)+ NumToStr
(BuyFirst,dec) +"\n"+  
	
    EncodeColor(55)+ " SELL BELOW : "  + EncodeColor(55)+ NumToStr
(ORBLow,dec) +"\n"+
	EncodeColor(55)+ " TAR                   : "  + EncodeColor(55)+ NumToStr
(SellFirst,dec) +"\n" ;
GraphXSpace=12;

Chart :

 
Last edited:
#5
_SECTION_BEGIN("COMMODITY TRADING");
SetChartOptions(0,chartShowArrows|chartShowDates);
dec = (Param("Decimals",2,0,7,1)/10)+1;
SetChartBkColor(ParamColor("Outer panel",colorBlack));
SetChartBkGradientFill(
ParamColor("Inner panel upper",colorBlack),
ParamColor("Inner panel lower",colorBlack));
//ToolTip=StrFormat("Open: %g\nHigh: %g\nLow: %g\nClose: %g (%.1f%%)\nVolume: "+NumToStr( V, 1 ), O, H, L, C) + "\n" + "\n" + ("***** HAPPY TRADING ***** " );

breakoutime = 110000;
afterbreakout0 = Cross(TimeNum(),110000);
afterbreakout1 = TimeNum()>=110000;
NewDay = Day()!= Ref(Day(), -1);
highestoftheday = HighestSince(newday,H,1);
Lowestoftheday =LowestSince(newday,L,1);
ORBHigh = ValueWhen(afterbreakout0,highestoftheday,1);
ORBLow = ValueWhen(afterbreakout0,lowestoftheday,1);
Buy= Cross(C,orbhigh) AND afterbreakout1;
Sell = Cross(orblow,C) AND afterbreakout1;
Short = Sell;
Cover = Buy;

Buy=ExRem(Buy,Sell);
Sell=ExRem(Sell,Buy);
Tar=Param("Target",1,1,100);
BuyFirst = ORBHigh + Tar ;
Plot(BuyFirst,"",colorGreen,styleLine);
SellFirst = ORBLow - Tar;
Plot(SellFirst,"",colorRed,styleLine ) ;

Plot(C,"",colorWhite,styleCandle);
PlotShapes( shapeUpArrow * Buy, colorGreen,0,L,-12);
PlotShapes( shapeDownArrow * Sell, colorRed,0,H,-12);
Plot(NewDay,"",colorWhite,styleHistogram|styleOwnScale);
Plot(afterbreakout0,"",colorBlue,styleHistogram|styleOwnScale);
Plot(ORBHigh,"",colorGreen,styleDots);
Plot(ORBLow,"",colorRed,styleDots);

Title = EncodeColor(55)+ Title = Name() + " " + EncodeColor(55)
+ Date() + " " + EncodeColor(55) + "{{INTERVAL}} " +
EncodeColor(55)+ " Open = "+ EncodeColor(55)+ NumToStr
(O,dec) +
EncodeColor(55)+ " High = "+ EncodeColor(55) + NumToStr
(H,dec) +
EncodeColor(55)+ " Low = "+ EncodeColor(55)+ NumToStr
(L,dec) +
EncodeColor(55)+ " Close = "+ EncodeColor(55)+ NumToStr
(C,dec) +
// EncodeColor(55)+ " BI = "+ EncodeColor(42)+ NumToStr
//(bi,1.0) +
EncodeColor(55)+ " Volume = "+ EncodeColor(55)+ NumToStr
(V,1.0) +"\n"+"\n"+
EncodeColor(55)+ " BUY ABOVE : "+ EncodeColor(55)+ NumToStr
(ORBHigh,dec) +"\n"+
EncodeColor(55)+ " TAR : "+ EncodeColor(55)+ NumToStr
(BuyFirst,dec) +"\n"+

EncodeColor(55)+ " SELL BELOW : " + EncodeColor(55)+ NumToStr
(ORBLow,dec) +"\n"+
EncodeColor(55)+ " TAR : " + EncodeColor(55)+ NumToStr
(SellFirst,dec) +"\n" ;
GraphXSpace=12;
_SECTION_END();
 

Similar threads