Gann HiLo ActivatorV2_Alert_Email_v1.1 todd

Download script
Author: Poul Trade Forum
Gann HiLo ActivatorV2_Alert_Email_v1.1 todd

The HoLo Activator is a specialized technical analysis tool designed to help traders identify potential trend shifts and momentum changes in the financial markets. It functions by analyzing the relationship between price action, high/low extremes, and moving averages to generate visual signals and real-time notifications.

Core Logic and Functionality

The script operates on three primary layers of logic:

1. Trend Identification (High/Low Analysis) The tool continuously monitors the "High" and "Low" price points over a specific period. It calculates moving averages specifically for these highs and lows to establish boundaries. By comparing the current closing price against these calculated boundaries, the script determines the market's immediate direction:

  • When the price breaks above certain high thresholds, it signals upward momentum.
  • When the price drops below specific low thresholds, it signals downward momentum.

2. The Moving Average Filter To reduce "market noise" and prevent false signals during sideways trading, the script utilizes a secondary Moving Average filter. It doesn't just look at price movement in isolation; it checks if that movement is occurring relative to a broader trend line (the Moving Average). This acts as a confirmation layer, ensuring that signals are only triggered when they align with the established momentum of the market.

3. Visual Representations The script offers two distinct ways to view these signals on your chart:

  • Dots Mode: Displays specific markers at the points where price action confirms a trend change. This is ideal for traders who prefer to see discrete "trigger" points.
  • Line Mode: Draws a continuous line representing the calculated values, providing a smoother visual path of the trend's evolution.

Notification System

Beyond visual cues, the script is equipped with an automated alert system. When a significant trend change is detected that meets all criteria (price action break + moving average confirmation), the tool can perform three actions simultaneously:

  • Audio Alerts: Play a sound file to grab the trader's attention immediately.
  • Pop-up Alerts: Generate an on-screen message detailing the specific symbol and timeframe of the move.
  • Email Notifications: Send a direct alert to a registered email address, allowing traders to monitor the markets even when they are away from their computers.

Summary for the User

Essentially, this script acts as a sophisticated "early warning system." It filters out minor price fluctuations and only alerts you when price action moves significantly enough to break previous highs or lows in a way that aligns with the prevailing market trend.

Indicators Used
Moving average indicator
Miscellaneous
Implements a curve of type %1It plays sound alertsIt issuies visual alerts to the screenIt sends emails
14 Views
0 Downloads
0 Favorites
Gann HiLo ActivatorV2_Alert_Email_v1.1 todd
//+------------------------------------------------------------------+
//|                                               HoLo Activator.mq4 |
//|                               Copyright © 2004, Poul_Trade_Forum |
//|                                                         Aborigen |
//|                                          http://forex.kbpauk.ru/ |
//+------------------------------------------------------------------+
// Modified Aug14,2007 Kenneth Hookham to provide solid line option

#property copyright "Poul Trade Forum"
#property link      "http://forex.kbpauk.ru/"
#property copyright "Gann + MA cross alert and email function added by Sadly at http://www.forex-tsd.com/"
#property copyright "Gann MA Mode input settings added by Sadly at http://www.forex-tsd.com/"
#property indicator_chart_window
#property indicator_buffers 3

#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 Navy


//---- input parameters
extern int R=10; // default value for auslanco system
extern int Gann_MA_mode = MODE_SMA; // MODE_SMA 0 Simple moving average, MODE_EMA 1 Exponential moving average, MODE_SMMA 2 Smoothed moving average, MODE_LWMA 3 Linear weighted moving average. 
extern bool dots=true;
extern bool line=false;
extern bool Alert_On = false;
extern bool Email_on = false;
extern int  MA_Period = 5;
extern int  MA_method = MODE_SMA;



//---- buffers
double HighBuffer[];
double LowBuffer[];
double LineBuffer[];
double VALUE1,VALUE2,VALUE11,VALUE22;
double MA_Period_val;
int old_Swing;
string AlertMSG = "Gann HiLo Activator alert";
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- indicator line
   if(dots)
   {
   SetIndexStyle(0,DRAW_ARROW,EMPTY,1,Blue);
   SetIndexStyle(1,DRAW_ARROW,EMPTY,1,Red);
   
   SetIndexArrow(0, 0x9F);
   SetIndexArrow(1, 0x9F);

   SetIndexBuffer(0,HighBuffer);
   SetIndexBuffer(1,LowBuffer);

   SetIndexEmptyValue(0,0);
   SetIndexEmptyValue(1,0);
   }
   if(line)
   {
   SetIndexStyle(2,DRAW_LINE,EMPTY,2,Navy);
   SetIndexBuffer(2,LineBuffer);
   SetIndexEmptyValue(2,0);
   }   
//---- name for DataWindow and indicator subwindow label
   short_name="HiLoV2";
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);

//----
   SetIndexDrawBegin(0,10);
//----

   return(0);
  }
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//---- TODO: add your code here
 ObjectsDeleteAll(0);   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted(),i,shift,Swing;
   

//---- TODO: add your code here
i=(Bars-counted_bars)-1;

for (shift=i; shift>=0;shift--)
{


VALUE1=iMA(NULL,0,R,0,Gann_MA_mode,PRICE_HIGH,shift+1);
VALUE2=iMA(NULL,0,R,0,Gann_MA_mode,PRICE_LOW,shift+1);
MA_Period_val=iMA(NULL,0,MA_Period,0,MA_method,PRICE_CLOSE,shift+1);

if (Close[shift+1]<VALUE2 ) Swing=-1;
if (Close[shift+1]>VALUE1 ) Swing=1;
if(dots)
{
if (Swing==1) { 
   HighBuffer[shift]=VALUE2;
   LowBuffer[shift]=0;  
   if(VALUE1 > MA_Period_val){ 
      if(Alert_On && Swing != old_Swing){
         PlaySound("Alert.wav");
         Alert("HiLo dot below MA "+Symbol()+" "+Period()+", "+MA_Period+"");
         old_Swing = Swing;
         if (Email_on) SendMail(AlertMSG,"Dot below MA"+MA_Period);
      }
   }  
}
if (Swing==-1) {
   LowBuffer[shift]=VALUE1;
   HighBuffer[shift]=0; 
   if(VALUE2 < MA_Period_val){ 
      if(Alert_On && Swing != old_Swing){ 
         PlaySound("Alert.wav");
         Alert("HiLo dot below MA "+Symbol()+" "+Period()+", "+MA_Period+"");
         old_Swing = Swing;
         if (Email_on) SendMail(AlertMSG,"Dot above MA"+MA_Period);
      }
   }  
}

}

if(line)
{
if (Swing==1) { 
   LineBuffer[shift]=VALUE2;   
   if(VALUE1 > MA_Period_val){ 
      if(Alert_On && Swing != old_Swing){ 
         PlaySound("Alert.wav");
         Alert("HiLo line X below MA", MA_Period);
         old_Swing = Swing;
         if (Email_on) SendMail(AlertMSG,"Line below MA"+MA_Period);
         }
   }  
}


if (Swing==-1) { 
   LineBuffer[shift]=VALUE1;  
   if(VALUE2 < MA_Period_val){ 
      if(Alert_On && Swing != old_Swing){
         PlaySound("Alert.wav");
         Alert("HiLo line X above MA", MA_Period);
         old_Swing = Swing;
         if (Email_on) SendMail(AlertMSG,"Line above MA"+MA_Period);
         }
   }  
}
}


 //----
}
   return(0);
  }
//+------------------------------------------------------------------+

Comments