//+------------------------------------------------------------------+
//|                                                 Bid Ask Line.mq4 |
//+------------------------------------------------------------------+

#property indicator_chart_window

extern color   LineColor  = Yellow;
extern int     LineStyle  = 0;
extern int     LineLength = 5;
extern bool    ShowAsk    = false;
extern bool    ShowBid    = true;
extern int     TextSize   = 2;

string IndiName = "Bid Ask Line";

//+------------------------------------------------------------------+
int init()  {
//+------------------------------------------------------------------+
  del_obj();
  return(0);
}

//+------------------------------------------------------------------+
int deinit()  {
//+------------------------------------------------------------------+
  del_obj();
  return(0);
}

//+------------------------------------------------------------------+
int start()  {
//+------------------------------------------------------------------+
  double bidp = Bid;
  double askp = Ask;
  del_obj();
  ObjectCreate(IndiName+"-Ask",OBJ_TREND,0,Time[0],askp,Time[0]+LineLength*60*Period(),askp);
  ObjectSet(IndiName+"-Ask",OBJPROP_COLOR,LineColor);
  ObjectSet(IndiName+"-Ask",OBJPROP_STYLE,LineStyle);
  ObjectSet(IndiName+"-Ask",OBJPROP_RAY,0);
  ObjectCreate(IndiName+"-Bid",OBJ_TREND,0,Time[0],bidp,Time[0]+LineLength*60*Period(),bidp);
  ObjectSet(IndiName+"-Bid",OBJPROP_COLOR,LineColor);
  ObjectSet(IndiName+"-Bid",OBJPROP_STYLE,LineStyle);
  ObjectSet(IndiName+"-Bid",OBJPROP_RAY,0);
  if (ShowAsk)   {
    ObjectCreate(IndiName+"-AskL",OBJ_ARROW,0,Time[0]+(LineLength+1)*60*Period(),askp);
    ObjectSet(IndiName+"-AskL",OBJPROP_COLOR,LineColor);
    ObjectSet(IndiName+"-AskL",OBJPROP_WIDTH,TextSize);
    ObjectSet(IndiName+"-AskL",OBJPROP_ARROWCODE,6);
  }  
  if (ShowBid)   {
    ObjectCreate(IndiName+"-BidL",OBJ_ARROW,0,Time[0]+(LineLength+1)*60*Period(),bidp);
    ObjectSet(IndiName+"-BidL",OBJPROP_COLOR,LineColor);
    ObjectSet(IndiName+"-BidL",OBJPROP_WIDTH,TextSize);
    ObjectSet(IndiName+"-BidL",OBJPROP_ARROWCODE,6);
  }  
  return(0);
}

//+------------------------------------------------------------------+
int del_obj()  {
//+------------------------------------------------------------------+
  ObjectDelete(IndiName+"-Ask");
  ObjectDelete(IndiName+"-Bid");
  if (ShowAsk)   ObjectDelete(IndiName+"-AskL");
  if (ShowBid)   ObjectDelete(IndiName+"-BidL");
  return(0);
}


