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