WilliamsPR_alert






#property indicator_separate_window
#property indicator_buffers 1 
#property indicator_color1 Magenta 
#property indicator_maximum 0
#property indicator_minimum -100
#property indicator_level1 -5
#property indicator_level2 -95
#property indicator_level3 -50
#property indicator_levelwidth 1
#property indicator_levelstyle STYLE_SOLID
#property indicator_levelcolor Aqua

extern int WPRPeriod = 90;
extern bool Alerts = true;
extern bool UseSendMail = false;

double ExtMapBuffer1[]; 
int shortA;
int longA;
datetime lasttime = 0;

int init() 
  { 
   SetIndexStyle(0,DRAW_LINE); 
   SetIndexBuffer(0,ExtMapBuffer1);
   IndicatorShortName("%R(WPRPeriod)");
   
   return(0); 
  } 

int deinit() 
  { 
//----  
    
//---- 
   return(0); 
  } 


int start() 
  { 
    int    counted_bars=IndicatorCounted(); 
   if (counted_bars<0) return(-1); 
   if (counted_bars>0) counted_bars--; 
    
   int pos=Bars-counted_bars; 
 //  Alert(TimeCurrent());
   while(pos>=0) 
     { 
         ExtMapBuffer1[pos] = iWPR(NULL, 0, WPRPeriod, pos);          
         pos--; 
     } 
     
    

      if ( iWPR(NULL, 0, WPRPeriod, 0) > -95) {
         longA = 0;
         IndicatorShortName("%R("+WPRPeriod+")");
      }
      if ( iWPR(NULL, 0, WPRPeriod, 0) < -5) {
         shortA = 0;
          IndicatorShortName("%R("+WPRPeriod+")");
      }
      
          
      if ( iWPR(NULL, 0, WPRPeriod, 0) < -95 && longA != 1) {
         if (lasttime != Time[0]) {
          if (Alerts == true)Alert(Symbol()+" %R("+WPRPeriod+") is below -95. Buy if in blue zone.");
          if (UseSendMail == true)  SendMail(Symbol()+" %R("+WPRPeriod+") is below -95. Buy if in blue zone"," ");
          lasttime = Time[0];
         }
           IndicatorShortName("%R("+WPRPeriod+") Current signal: LONG  ");
          longA=1;        
      }
      if ( iWPR(NULL, 0, WPRPeriod, 0) > -5 && shortA != 1) {
      if (lasttime != Time[0]) {
          if (Alerts == true)Alert(Symbol()+" %R("+WPRPeriod+") is above -5. Sell if in red zone.");    
          if (UseSendMail == true) SendMail(Symbol()+" %R("+WPRPeriod+") is above -5. Sell if in red zone"," ");
          lasttime = Time[0];
        }
          IndicatorShortName("%R("+WPRPeriod+") Current signal: SHORT  ");
          shortA = 1;   
      }      
   return(0); 
  } 





Sample





Analysis



Market Information Used:

Series array that contains open time of each bar


Indicator Curves created:

Implements a curve of type DRAW_LINE


Indicators Used:

Larry William percent range indicator


Custom Indicators Used:

Order Management characteristics:

Other Features:

It issuies visual alerts to the screen
It sends emails