/* ********************************************************************* Bollinger Squeeze v8 (StochHistogram_with_Alert) Original code by Nick Bilak Modifications by Akuma99 and Sadly Copyright © 2006-07 Akuma99 http://www.beginnertrader.com For help on this indicator, tutorials and information visit http://www.beginnertrader.com ********************************************************************* */ #property copyright "Copyright © 2006-07, Akuma99" #property copyright "Alert function added by Sadly" #property link "http://www.beginnertrader.com " #property indicator_separate_window #property indicator_buffers 3 #property indicator_color1 Green //uptrend #property indicator_width1 2 #property indicator_color2 IndianRed //downtrend #property indicator_width2 2 #property indicator_color3 DarkGreen // First Stochastic line #property indicator_width3 2 extern string note1 = "First Stochastic"; extern int StochPeriod1=14; extern int DPeriod1=3; extern int SlowingPeriod1=3; extern bool Alert_On = 1; double upB[]; double loB[]; double Stoch1[]; int Alerted = 1; //+------------------------------------------------------------------+ int init() { IndicatorBuffers(3); SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,indicator_width1,indicator_color1); SetIndexBuffer(0,upB); SetIndexEmptyValue(0,EMPTY_VALUE); SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,indicator_width2,indicator_color2); //downtrend SetIndexBuffer(1,loB); SetIndexEmptyValue(1,EMPTY_VALUE); SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(2,Stoch1); return(0); } //+------------------------------------------------------------------+ int deinit() { } //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); int shift,limit; IndicatorShortName("Stoch Histogram ("+StochPeriod1+","+DPeriod1+","+SlowingPeriod1+")"); if (counted_bars<0) return(-1); if (counted_bars>0) counted_bars--; limit=Bars-31; if(counted_bars>=31) limit=Bars-counted_bars-1; for (shift=limit;shift>=0;shift--) { Stoch1[shift]=iStochastic(NULL,0,StochPeriod1,DPeriod1,SlowingPeriod1,MODE_SMA,0,MODE_MAIN,shift)-50; if(Stoch1[shift]>0) { upB[shift]=Stoch1[shift]; if(Alert_On && Alerted == -1){ Alert("StochHist crossed above zero at ", Close[shift]); Alerted = 1; } } else if (Stoch1[shift]<0){ loB[shift]=Stoch1[shift]; if(Alert_On && Alerted == 1){ Alert("StochHist crossed below zero at ", Close[shift]); Alerted = -1; } } } return(0); } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Series array that contains close prices for each bar
Indicator Curves created:
Implements a curve of type DRAW_HISTOGRAM
Implements a curve of type DRAW_LINE
Indicators Used:
Stochastic oscillator
Custom Indicators Used:
Order Management characteristics:
Other Features:
It issuies visual alerts to the screen