ORB - open range breakout

#2
May be u need this...:thumb:

_SECTION_BEGIN("Open Range Breakout");
// Open Range Breakout AFL
// Current ORB level time is set as 10.15 a.m. which can be easily changed
SetBarsRequired(1000,0);
ORBtype=ParamList("ORB Single or Two levels?","Two|Single");
Style=ParamList("Plot Bars or Candle","Candle|Bars");
BarColor = IIf(Close > Open, colorGreen, colorRed);
SetBarFillColor(BarColor);
if(style=="Bars")Cstyle=styleBar;
else Cstyle=styleCandle;
Plot(C,"",colorWhite,Cstyle);
timesetting=102000;
tn=TimeNum();
Datey=DateNum();
fastprice=lev=0;
avp=(O+C)/2;
r2=s2=ar1=ar2=ar3=bs1=bs2=bs3=0;
fastbuy=fastsell=0;
gapzz=10;
Lastsig=Buycond=Shortcond=dayopen=dayclose=dayhigh =daylow=0;
for (i=2;i<BarCount;i++)
{

//PlotText(WriteVal(1,1.0),i,H+15,colorWhite);

//day high low logic
if (Datey!=Datey[i-1])
{
Dayopen=O;
Dayclose=C;
Buycond=Shortcond=lastsig=0;
ar1=ar2=ar3=bs1=bs2=bs3=0;
fastprice=lev=0;
}
if (Datey==Datey[i-1])
{
Dayopen=Dayopen[i-1];
Dayclose=Dayclose[i-1];
Dayhigh=Dayhigh[i-1];
Daylow=Daylow[i-1];
}
if (H>Dayhigh)Dayhigh=H;
if (Daylow==0)Daylow=L;
if (L<Daylow)Daylow=L;
// day high low logic end
//PlotText(WriteVal(i,1.0),i,H+10,colorWhite);

if (tn<timesetting )
{
//PlotText(WriteVal(1,1.0),i,H+10,colorWhite);

r2=Dayhigh;
s2=Daylow;
if (ORbtype=="Single")fastprice=r2=s2=(Dayhigh+Daylow)/2;
}
else
{
//PlotText(WriteVal(1,1.0),i,H+10,colorWhite);

r2=r2[i-1];
s2=s2[i-1];
}
Lev=0;
if (ORbtype=="Single")
{
fastprice=r2;
if (avp>r2)Lev=1;
if (avp<s2)Lev=8;

}
else
{
if (avp>r2){fastprice=r2;Lev=1;}
if (avp<s2){fastprice=s2;Lev=8;}
if (avp<r2 AND avp>s2 AND avp>(r2+s2)/2){fastprice=r2;}
if (avp<r2 AND avp>s2 AND avp<(r2+s2)/2){fastprice=s2;}
}

if (Lev==1)
{
ar1=avp-r2;ar2=avp[i-1]-r2;ar3=avp[i-2]-r2;
//passthrough
if (avp>r2 AND avp[i-1]<r2)Buycond=1;
//kiss and go above
if (ar2<gapzz AND ar1>ar2 AND ar3>ar2) Buycond=1;
}
if (Lev==8)
{
bs1=s2-avp;bs2=s2-avp[i-1];bs3=s2-avp[i-2];
//pass through
if (avp[i-1]>s2 AND avp<s2)Shortcond=1;
//kiss and go
if (bs2<gapzz AND bs1>bs2 AND bs3>bs2) Shortcond=1;
}
if (Lev==1 AND Buycond==1 AND Lastsig!=1)
{
fastbuy=1;
Lastsig=1;
Buycond=shortcond=0;
}
if (Lev==8 AND Shortcond==1 AND Lastsig!=-1)
{
fastsell=1;
Lastsig=-1;
Buycond=shortcond=0;
}
}
shape = fastBuy * shapeUpArrow + fastSell * shapeDownArrow;
//PlotShapes( shape, IIf( fastBuy, colorBlue, colorRed ), 0, IIf( fastBuy, Low, High));
if (ORbtype=="Single")
{
Plot(r2,"R2",colorGreen,styleLine);
}
else
{
Plot(r2,"R2",colorYellow,styleLine);
Plot(s2,"S2",colorYellow,styleLine);
}

_SECTION_END();

Buy= fastbuy;
Sell=C<O;
Short = fastsell;
Cover=C>O;

Buy=ExRem(Buy,Sell);
Short=ExRem(Short,Cover);
Sell=ExRem(Sell,Buy);
Cover=ExRem(Cover,Short);

PlotShapes(Buy*shapeUpArrow,colorGreen,0,L,-35);
PlotShapes(Short*shapeDownArrow,colorRed,0,H,-35);

_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();
 

ashokram1

Active Member
#4
Hi,

I have added the buy and sell signal using gann values

Code:
_SECTION_BEGIN("Open Range Breakout");
// Open Range Breakout AFL
// Current ORB level time is set as 10.15 a.m. which can be easily changed
SetBarsRequired(1000,0);
ORBtype=ParamList("ORB Single or Two levels?","Two|Single");
Style=ParamList("Plot Bars or Candle","Candle|Bars");

if(style=="Bars")Cstyle=styleBar;
else Cstyle=styleCandle;
Plot(C,"",colorWhite,Cstyle);
timesetting=093000;
tn=TimeNum();
Datey=DateNum();
fastprice=lev=0;
avp=(O+C)/2;
r2=s2=ar1=ar2=ar3=bs1=bs2=bs3=0;
fastbuy=fastsell=0;
gapzz=10;
Lastsig=Buycond=Shortcond=dayopen=dayclose=dayhigh =daylow=0;
for (i=2;i<BarCount;i++)
{

//PlotText(WriteVal(1,1.0),i,H[i]+15,colorWhite);

//day high low logic
if (Datey[i]!=Datey[i-1])
{
Dayopen[i]=O[i];
Dayclose[i]=C[i];
Buycond=Shortcond=lastsig=0;
ar1=ar2=ar3=bs1=bs2=bs3=0;
fastprice=lev=0;
}
if (Datey[i]==Datey[i-1])
{
Dayopen[i]=Dayopen[i-1];
Dayclose[i]=Dayclose[i-1];
Dayhigh[i]=Dayhigh[i-1];
Daylow[i]=Daylow[i-1];
}
if (H[i]>Dayhigh[i])Dayhigh[i]=H[i];
if (Daylow[i]==0)Daylow[i]=L[i];
if (L[i]<Daylow[i])Daylow[i]=L[i];
// day high low logic end
//PlotText(WriteVal(i,1.0),i,H[i]+10,colorWhite);

if (tn[i]<timesetting )
{
//PlotText(WriteVal(1,1.0),i,H[i]+10,colorWhite);

r2[i]=Dayhigh[i];
s2[i]=Daylow[i];
if (ORbtype=="Single")fastprice[i]=r2[i]=s2[i]=(Dayhigh[i]+Daylow[i])/2;
}
else 
{
//PlotText(WriteVal(1,1.0),i,H[i]+10,colorWhite);

r2[i]=r2[i-1];
s2[i]=s2[i-1];
}
Lev=0;
if (ORbtype=="Single")
{
fastprice[i]=r2[i];
if (avp[i]>r2[i])Lev=1;
if (avp[i]<s2[i])Lev=8;

}
else
{	
if (avp[i]>r2[i]){fastprice[i]=r2[i];Lev=1;}
if (avp[i]<s2[i]){fastprice[i]=s2[i];Lev=8;}
if (avp[i]<r2[i] AND avp[i]>s2[i] AND avp[i]>(r2[i]+s2[i])/2){fastprice[i]=r2[i];}
if (avp[i]<r2[i] AND avp[i]>s2[i] AND avp[i]<(r2[i]+s2[i])/2){fastprice[i]=s2[i];}
}

if (Lev==1)
{
ar1=avp[i]-r2[i];ar2=avp[i-1]-r2[i];ar3=avp[i-2]-r2[i];
//passthrough 
if (avp[i]>r2[i] AND avp[i-1]<r2[i])Buycond=1;
//kiss and go above
if (ar2<gapzz AND ar1>ar2 AND ar3>ar2) Buycond=1;
}
if (Lev==8)
{
bs1=s2[i]-avp[i];bs2=s2[i]-avp[i-1];bs3=s2[i]-avp[i-2];
//pass through
if (avp[i-1]>s2[i] AND avp[i]<s2[i])Shortcond=1;
//kiss and go
if (bs2<gapzz AND bs1>bs2 AND bs3>bs2) Shortcond=1;
}
if (Lev==1 AND Buycond==1 AND Lastsig!=1)	
{
fastbuy[i]=1;
Lastsig=1;
Buycond=shortcond=0;
}	
if (Lev==8 AND Shortcond==1 AND Lastsig!=-1)
{
fastsell[i]=1;
Lastsig=-1;
Buycond=shortcond=0;
}
}
shape = fastBuy * shapeUpArrow + fastSell * shapeDownArrow;
//PlotShapes( shape, IIf( fastBuy, colorBlue, colorRed ), 0, IIf( fastBuy, Low, High));
if (ORbtype=="Single")
{
Plot(r2,"R2",colorGreen,styleLine);
}
else
{
//Plot(r2,"R2",colorBlue,styleLine);
//Plot(s2,"S2",colorRed,styleLine);
}

newday = Day()!= Ref(Day(),-1);
dhigh = HHV(H,newday);
dlow = LLV(L,newday);
Buyvalue2 = (sqrt(dlow)+0.1666)*(sqrt(dlow)+0.1666);
sellvalue2 = (sqrt(dhigh)-0.1666)*(sqrt(dhigh)-0.1666);

m2 = (s2+r2)/2;
Buyvalue = ((sqrt(s2)+0.0833)*(sqrt(s2)+0.0833));
Sellvalue = ((sqrt(r2)-0.0833)*(sqrt(r2)-0.0833));

Buyvalue1 = IIf((Buyvalue-Sellvalue) > 0,((sqrt(s2)+0.0833)*(sqrt(s2)+0.0833)),((sqrt(m2)+0.0833)*(sqrt(m2)+0.0833)));

Sellvalue1 = IIf((Buyvalue-Sellvalue) > 0,((sqrt(r2)-0.0833)*(sqrt(r2)-0.0833)),((sqrt(m2)-0.0833)*(sqrt(m2)-0.0833)));
 
Plot(Buyvalue1,"BUY",colorBlue,styleLine+styleDots);
Plot(Sellvalue1,"SELL",colorRed,styleLine+styleDots);
//Plot(Buyvalue2,"BUY",colorGreen,styleDots);
//Plot(Sellvalue2,"SELL",colorOrange,styleDots);
Plot(EMA(Close,65),"EMA",colorBlack,styleLine);

Buy = Cross(Close,Buyvalue1) AND BarsSince(Cross(Close,EMA(Close,65))) > 5 AND TimeNum() > timesetting;
Sell = Cross(Sellvalue1,Close) AND BarsSince(Cross(EMA(Close,65),Close)) > 5 AND TimeNum() > timesetting;
Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);


PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorGreen, 0, L, Offset=-40);
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorLime, 0,L, Offset=-50);                      
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-45); 
PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorRed, 0, H, Offset=40);
PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorOrange, 0,H, Offset=50);                      
PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-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();
 

Similar threads