//  RASHEED'S BREAKOUTS
//  help requested for adding an exploration 
for End of Day breakouts
/*  coded by NW Trader 
1-29-10 
with exploration, chart signals and chart options
          
toggle parameter to select between C or H & L for the breakout 
crossings
          
toggle parameter added to remove extra trade 
signals
          
Volume at price added
*/ 
 _SECTION_BEGIN("BREAK 
OUTS");
 //  ============== Standard Chart Code 
============================
 
CodeName 
= "Rasheed's 
Breakouts" 
; 
SetFormulaName("Rasheed's 
Breakouts" 
);
 //   ---------------  Controls for Chart Display  
----------------------------------
               
SetChartOptions(0,chartShowDates|chartWrapTitle);
              
if( 
ParamToggle("Tooltip 
shows", 
"All 
Values|Only Prices" 
) )
                   
{
                   
ToolTip=StrFormat("Open: 
%g\nHigh:  %g\nLow:   %g\nClose:  %g (%.1f%%) \nVolume: "+NumToStr( 
V, 
1 
), O, 
H, 
L, 
C, 
SelectedValue( 
ROC( 
C, 
1 
)));
                   
}
              
space = Param("Space 
on Chart", 
20, 
-15, 
50, 
1);
              
GraphXSpace 
= space;             
    
              
SetChartBkColor(  ParamColor("Background 
Color" 
, colorLightGrey) 
);
 // 
================= Rasheed's original code (with Lookback and Shift default set 
to his specs) =================
 H0=H;
 L0=L;
 C0=C;
 O0=O;
 Lookback=Param("LookBack",10,10,50,1); 
// 
Default for interday commodity currency trading
 shift=Param("Shift", 
5,1,50,1);                     
// 
?
 x0=LastValue(Cum(1));
 x1=x0-shift;
 H=Ref(H,-shift+1);
 L=Ref(L,-shift+1);
 H1=LastValue(Ref(HHV(H,Lookback),-1));
 L1=LastValue(Ref(LLV(L,Lookback),-1));
 Plot(H1,"H1",colorYellow);
 Plot(L1,"L1",colorYellow);
 H=H0;L=L0;C=C0;O=O0;
 up=Cross(H,H1) 
AND 
Cum(1)>x1;
 dn=Cross(L1,L) 
AND 
Cum(1)>x1;
 Plot(C,"Close",IIf(Cum(1)>x1-Lookback 
AND 
Cum(1)<=x1,colorBlue,IIf
(Up,colorBrightGreen,IIf( 
Dn,colorRed,colorBlack))),64);
PlotShapes(shapeDownArrow*(Cum(1)==x1+1),colorBlue);
 
// 
======================= Exploration and Signal Code 
=================
 
TRIGGER 
= ParamToggle("Trigger 
" 
,"CLOSE|HIGH 
OR LOW") 
;
 XH1 
= Cross(C,H1) 
;
XL1 
= Cross(L1,C);
XH2 
= Cross(H,H1);
XL2 
= Cross(L1,L);
 if( 
TRIGGER ==0)
{  
Buy 
=  XH1 ; 
Sell 
=  XL1 ; 
}
else
{  
Buy 
=  XH2 ; 
Sell 
=  XL2 ; 
}
TradeDisplay 
= ParamToggle("Remove 
Extra Trades?", 
"No|Yes");
 
if(TradeDisplay 
== 0)
{ 
}
else
{
 Buy 
= ExRem(Buy,Sell); 
Sell  = ExRem(Sell,Buy);  // 
THIS WILL REMOVE EXESS SIGNALS ON A CHART OR IN AN EXPLORATION 
}
Filter 
= Buy 
OR 
Sell;
 Action 
= "">WriteIf(Buy, 
"BUY", 
WriteIf( 
Sell, 
"SELL",  "   " 
) );
 AddTextColumn(IndustryID(1) 
,"Industry 
Sector  ", 
30.0, 
colorBlue, 
colorYellow);
AddColumn(C, 
"Last 
",2.2, 
colorWhite,colorBlue);
AddTextColumn(Action, 
"Action", 
8.0, 
IIf(XH1, 
colorDarkGreen, 
colorDarkRed),  colorWhite);  
AddColumn( 
IIf( 
XH1, H1 , L1  )  , "BREAKOUT 
LEVEL", 
3.2 
,colorYellow,   IIf(XH1, 
colorDarkGreen, 
colorDarkRed) 
);
 
// 
-----------------------------------------------------------------------------------  Arrow signals --- FOR TRADES  
----------------------------------------------------------
 PlotShapes(Buy*shapeUpArrow,colorBrightGreen 
,0, 
L 
/* 
ENTRY_TRAILARRAY */ 
, -30); 
PlotShapes(Sell*shapeDownArrow,colorLightYellow,0, 
H 
, -30);
_SECTION_END();
_SECTION_BEGIN("Volume 
At Price");
PlotVAPOverlay( 
Param("Lines", 
1000, 
100, 
1000, 
10 
), 
Param("Width", 
15, 
1, 
100, 
1 
), 
ParamColor("Color", 
colorBlueGrey 
), 
ParamToggle("Side", 
"Left|Right", 
1 
) | 4*ParamToggle("Z-order", 
"On 
top|Behind", 
1 
) );
_SECTION_END();