//+------------------------------------------------------------------+
//|                             HorizontalLineBreakthroughAlert .mq4 |
//|                                                      slacktrader |
//|                                                      slacktrader |
//+------------------------------------------------------------------+
#property copyright "slacktrader"
#property link      "slacktrader"

extern int      distance = 10;

#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
{
   int      counted_bars=IndicatorCounted();
   //----
   double   obj;
   int      i;

   for(i = 0; i < ObjectsTotal(); i++)
   {
      if(ObjectType(ObjectName(i)) == OBJ_HLINE)
         CompareThisLine2CurrentPrice(ObjectName(i));
   }
   //----
   return(0);
}
//+------------------------------------------------------------------+
void CompareThisLine2CurrentPrice(string obj)
{
   CheckLineDistanceFromObject(obj);
}
//+------------------------------------------------------------------+
void CheckLineDistanceFromObject(string obj)
{
   double PriceDistance = MathAbs(ObjectGet(obj, OBJPROP_PRICE1) - (Ask - MarketInfo(NULL, MODE_SPREAD)*Point / 2));
   if(PriceDistance < distance)
   {
      Alert(StringConcatenate(Symbol(), " distance from HL is: ", DoubleToStr((distance - PriceDistance)*Point, 4)));
      PlaySound("alert.wav");
   }
}