#property copyright "Keith Watford"
#property link      "none"
#property version   "1.00"
#property strict
//--- input parameters
input int         MagicNumber=99;
input double      LotSize=0.01;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   //if(IsTesting())
     {
      string name;
      string heading[4]={"Buy","Sell","Stop","TP"};
      int xc=5;
      int yc=30;
      for(int i=0;i<2;i++)
        {
         name=heading[i];
         ObjectCreate(0,name,OBJ_BUTTON,0,0,0);
         ObjectSetText(name,name,20,"Arial",clrBlue);
         ObjectSetInteger(0,name,OBJPROP_XDISTANCE,xc);
         ObjectSetInteger(0,name,OBJPROP_YDISTANCE,yc);
         yc+=20;
        }
      for(int i=2;i<4;i++)
        {
         name=heading[i];
         ObjectCreate(0,name,OBJ_LABEL,0,0,0);
         ObjectSetText(name,name,10,"Arial",clrBlue);
         ObjectSetInteger(0,name,OBJPROP_XDISTANCE,xc);
         ObjectSetInteger(0,name,OBJPROP_YDISTANCE,yc);
         ObjectSetInteger(0,name,OBJPROP_SELECTED,false);
         yc+=20;
        }
      name="EditSL";
      ObjectCreate(0,name,OBJ_EDIT,0,0,0);
      ObjectSetText(name,DoubleToStr(0,Digits),10,"Arial",clrRed);
      ObjectSetInteger(0,name,OBJPROP_XDISTANCE,xc+50);
      ObjectSetInteger(0,name,OBJPROP_YDISTANCE,70);
      ObjectSetInteger(0,name,OBJPROP_XSIZE,60);
      ObjectSetInteger(0,name,OBJPROP_YSIZE,20);
      name="EditTP";
      ObjectCreate(0,name,OBJ_EDIT,0,0,0);
      ObjectSetText(name,DoubleToStr(0,Digits),10,"Arial",clrRed);
      ObjectSetInteger(0,name,OBJPROP_XDISTANCE,xc+50);
      ObjectSetInteger(0,name,OBJPROP_YDISTANCE,90);
      ObjectSetInteger(0,name,OBJPROP_XSIZE,60);
      ObjectSetInteger(0,name,OBJPROP_YSIZE,20);
     }
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   if(id==CHARTEVENT_OBJECT_CLICK)
     {
      string name="Buy";
      if(ObjectGetInteger(0,name,OBJPROP_STATE)==true)
        {
         ObjectSetInteger(0,name,OBJPROP_STATE,false);
         double sl=StrToDouble(ObjectGetString(0,"EditSL",OBJPROP_TEXT));
         double tp=StrToDouble(ObjectGetString(0,"EditTP",OBJPROP_TEXT));
         int ticket=OrderSend(Symbol(),OP_BUY,LotSize,Ask,50,sl,tp,NULL,MagicNumber,0,clrNONE);
        }
      name="Sell";
      if(ObjectGetInteger(0,name,OBJPROP_STATE)==true)
        {
         ObjectSetInteger(0,name,OBJPROP_STATE,false);
         double sl=StrToDouble(ObjectGetString(0,"EditSL",OBJPROP_TEXT));
         double tp=StrToDouble(ObjectGetString(0,"EditTP",OBJPROP_TEXT));
         int ticket=OrderSend(Symbol(),OP_SELL,LotSize,Ask,50,sl,tp,NULL,MagicNumber,0,clrNONE);
        }
     }
//---
 
  }