MT4 chart trader with button functionality

 //+------------------------------------------------------------------+

//|                                                 Custom price.mq4 |

//|                        Copyright 2019, MetaQuotes Software Corp. |

//|                                             https://www.mql5.com |

//+------------------------------------------------------------------+

#property copyright "Copyright 2019, MetaQuotes Software Corp."

#property link      "https://www.mql5.com"

#property version   "1.00"

#property strict

bool long_entry=false,sl=true;

bool short_entry=false,tgt=true;

double tg,sll,le,se;

double target,longentry,shortentry,stoploss;

enum Simple_Order_Panel_selection{

   Show=1,

   Hide=2,

  

   };input Simple_Order_Panel_selection Simple_Order_Panel = Show;


enum Bracket_Order_Panel_selection{

   Show_BO=1,

   Hide_BO=2,

  

   };input Bracket_Order_Panel_selection Bracket_Order_Panel = Show_BO;

   

   

   

   enum Trendlines_Panel_selection{

   Show_TL =1,

   Hide_TL =2,

  

   };input Trendlines_Panel_selection Trendlines_Panel = Show_TL ;


   


 string name2,Editbracketqty="Editbracketqty",Editbracketsl="Editbracketsl",Editbracketprice="Editbracketprice",Editbrackettgt="Editbrackettgt";

 string EditStoploss="EditStoploss",EditShort_Entry="EditShort_Entry",EditLong_Entry="EditLong_Entry",Edittarget="Edittarget";

 string EditPrice = "EditPrice",EditQuantity="EditQuantity",Edit_TrigerPrice="Edit_TrigerPrice",Edit_SLquantity="Edit_SLquantity";

     string heading2[13]={"Bracket order buy","target","price","Sl price","qty","Bracket order sell"};

     int   yc2= 350;

     string name1;

  string heading1[13]={"Target","Long_Entry","Short_Entry","Stoploss"};

      int xc1=100;

      int yc1=20;

        string name,simple_Order_Panel,bracket_Order_Panel,trendlines_Panel;

      string heading[13]={"Info-","Long Entry","Long Exit","Price","Quantity","Short Entry","Short Exit","","SL Buy","TrigerPrice","SLQuantity","SL Sell"};

      int xc=20;

      int yc=40;

//+------------------------------------------------------------------+

//| Expert initialization function                                   |

//+------------------------------------------------------------------+


#include <AlgoTrading.mqh>

#include <Multiinstance.mqh>


int OnInit()

  {

     if(Simple_Order_Panel==Show){simple_Order_Panel="Show";}

   if (Simple_Order_Panel ==Hide){simple_Order_Panel="Hide";}

   

  if(simple_Order_Panel=="Show"){

 string symbolname = Symbol();

    

      

      

      string ins ;

      string sym = Symbol();

      string ordertype  ;

  if(Ordertype==MARKET){ordertype="MARKET";}

  else if(Ordertype==LIMIT){ordertype="LIMIT";}

      

   if(Instrument==EQ){ins = "EQ";}

   else if (Instrument==FUTSTK){ins = "FUTSTK";}

   else if (Instrument==FUTIDX){ins = "FUTIDX";}

   else if (Instrument==OPTSTK){ins = "OPTSTK";}

   else if (Instrument==OPTIDX){ins = "OPTIDX";}

   else if (Instrument==FUTCUR){ins = "FUTCUR";}

   else if (Instrument==FUTCOM){ins = "FUTCOM";}


        ObjectCreate("0", OBJ_LABEL, 0, 0, 0);

        ObjectSetText("0","Instrument-"+ins+" , Order Type -"+ordertype+"",7, "Verdana", clrGoldenrod);

        ObjectSet("0", OBJPROP_CORNER, 0);

        ObjectSet("0",OBJPROP_FONTSIZE, 10);

        ObjectSet("0", OBJPROP_XDISTANCE, 20);

        ObjectSet("0", OBJPROP_YDISTANCE, 20);

     

        

      for(int i=1;i<2;i++)

        {

         name=heading[i];

       

         ObjectCreate(0,name,OBJ_BUTTON,0,0,0);

            ObjectSetInteger(0,name,OBJPROP_COLOR,clrBlack);

         ObjectSetInteger(0,name,OBJPROP_XSIZE,100);

          ObjectSetInteger(0,name,OBJPROP_BGCOLOR,clrPaleGreen);

      ObjectSetInteger(0,name,OBJPROP_YSIZE,20);

         ObjectSetText(name,name,16,"Arial",clrBlue);

         ObjectSetInteger(0,name,OBJPROP_XDISTANCE,xc);

         ObjectSetInteger(0,name,OBJPROP_YDISTANCE,yc);

         yc+=20;

        }

         for(int i=2;i<3;i++)

        {

         name=heading[i];

         ObjectCreate(0,name,OBJ_BUTTON,0,0,0);

          ObjectSetInteger(0,name,OBJPROP_COLOR,clrBlack);

         ObjectSetInteger(0,name,OBJPROP_XSIZE,100);

          ObjectSetInteger(0,name,OBJPROP_BGCOLOR,clrRed);

      ObjectSetInteger(0,name,OBJPROP_YSIZE,20);

         ObjectSetText(name,name,16,"Arial",clrBlue);

         ObjectSetInteger(0,name,OBJPROP_XDISTANCE,xc);

         ObjectSetInteger(0,name,OBJPROP_YDISTANCE,yc);

         yc+=20;

        }

        

      for(int i=3;i<5;i++)

        {

         name=heading[i];

         ObjectCreate(0,name,OBJ_LABEL,0,0,0);

         ObjectSetText(name,name,10,"Arial",clrGoldenrod);

          ObjectSetInteger(0,name,OBJPROP_XSIZE,100);

      ObjectSetInteger(0,name,OBJPROP_YSIZE,20);

       ObjectSetString(0,name,OBJPROP_FONT,"Arial Bold");

         ObjectSetInteger(0,name,OBJPROP_XDISTANCE,xc);

         ObjectSetInteger(0,name,OBJPROP_YDISTANCE,yc);

         ObjectSetInteger(0,name,OBJPROP_SELECTED,false);

     

         yc+=20;

        }

        for(int i=5;i<6;i++)

        {

         name=heading[i];

         ObjectCreate(0,name,OBJ_BUTTON,0,0,0);

          ObjectSetInteger(0,name,OBJPROP_COLOR,clrBlack);

         ObjectSetInteger(0,name,OBJPROP_BGCOLOR,clrPaleGreen);

         // ObjectSetString(0,name,OBJPROP_FONT,"Arial Bold");

          ObjectSetString(0,name,OBJPROP_FONT,"Calibri");

             ObjectSetInteger(0,name,OBJPROP_FONTSIZE,12);

        ObjectSetInteger(0,name,OBJPROP_XSIZE,100);

      ObjectSetInteger(0,name,OBJPROP_YSIZE,20);

         ObjectSetText(name,name,10,"Arial",clrBlue);

         ObjectSetInteger(0,name,OBJPROP_XDISTANCE,xc);

         ObjectSetInteger(0,name,OBJPROP_XDISTANCE,xc);

         ObjectSetInteger(0,name,OBJPROP_YDISTANCE,yc);

         yc+=20;

        }

            for(int i=6;i<7;i++)

        {

         name=heading[i];

         ObjectCreate(0,name,OBJ_BUTTON,0,0,0);

          ObjectSetString(0,name,OBJPROP_FONT,"Calibri");

             ObjectSetInteger(0,name,OBJPROP_FONTSIZE,12);

          ObjectSetInteger(0,name,OBJPROP_COLOR,clrBlack);

         ObjectSetInteger(0,name,OBJPROP_BGCOLOR,clrRed);

       //   ObjectSetString(0,name,OBJPROP_FONT,"Arial Bold");

        ObjectSetInteger(0,name,OBJPROP_XSIZE,100);

      ObjectSetInteger(0,name,OBJPROP_YSIZE,20);

         ObjectSetText(name,name,10,"Arial",clrBlue);

         ObjectSetInteger(0,name,OBJPROP_XDISTANCE,xc);

         ObjectSetInteger(0,name,OBJPROP_XDISTANCE,xc);

         ObjectSetInteger(0,name,OBJPROP_YDISTANCE,yc);

         yc+=20;

        }

     

      

    

     

      name="EditPrice";

      ObjectCreate(0,name,OBJ_EDIT,0,0,0);

      ObjectSetText(name,"0",10,"Arial",clrRed);

      ObjectSetInteger(0,name,OBJPROP_XDISTANCE,xc+110);

      ObjectSetInteger(0,name,OBJPROP_YDISTANCE,80);

      ObjectSetInteger(0,name,OBJPROP_XSIZE,60);

      ObjectSetInteger(0,name,OBJPROP_YSIZE,20);

      

      name="EditQuantity";

      ObjectCreate(0,name,OBJ_EDIT,0,0,0);

      ObjectSetText(name,"0",10,"Arial",clrRed);

      ObjectSetInteger(0,name,OBJPROP_XDISTANCE,xc+110);

      ObjectSetInteger(0,name,OBJPROP_YDISTANCE,100);

      ObjectSetInteger(0,name,OBJPROP_XSIZE,60);

      ObjectSetInteger(0,name,OBJPROP_YSIZE,20);

      

     

       name="Edit_TrigerPrice";

      ObjectCreate(0,name,OBJ_EDIT,0,0,0);

      ObjectSetText(name,"0",10,"Arial",clrRed);

      ObjectSetInteger(0,name,OBJPROP_XDISTANCE,xc+110);

      ObjectSetInteger(0,name,OBJPROP_YDISTANCE,260);

      ObjectSetInteger(0,name,OBJPROP_XSIZE,60);

      ObjectSetInteger(0,name,OBJPROP_YSIZE,20);

    

      

      name="Edit_SLquantity";

      ObjectCreate(0,name,OBJ_EDIT,0,0,0);

      ObjectSetText(name,"0",10,"Arial",clrRed);

      ObjectSetInteger(0,name,OBJPROP_XDISTANCE,xc+110);

      ObjectSetInteger(0,name,OBJPROP_YDISTANCE,240);

      ObjectSetInteger(0,name,OBJPROP_XSIZE,60);

      ObjectSetInteger(0,name,OBJPROP_YSIZE,20);

      

      

     

      for(int i=8;i<9;i++)

      {

         name=heading[i];

         ObjectCreate(0,name,OBJ_BUTTON,0,0,0);

          ObjectSetInteger(0,name,OBJPROP_COLOR,clrBlack);

         ObjectSetInteger(0,name,OBJPROP_XSIZE,100);

          ObjectSetInteger(0,name,OBJPROP_BGCOLOR,clrPaleGreen);

      ObjectSetInteger(0,name,OBJPROP_YSIZE,20);

         ObjectSetText(name,name,16,"Arial",clrBlue);

         ObjectSetInteger(0,name,OBJPROP_XDISTANCE,xc);

  ObjectSetInteger(0,name,OBJPROP_YDISTANCE,yc+60);

         yc+=20;

        }

       

         for(int i=9;i<10;i++)

        {

         name=heading[i];

         ObjectCreate(0,name,OBJ_LABEL,0,0,0);

         ObjectSetText(name,name,10,"Arial",clrGoldenrod);

          ObjectSetInteger(0,name,OBJPROP_XSIZE,100);

      ObjectSetInteger(0,name,OBJPROP_YSIZE,20);

       ObjectSetString(0,name,OBJPROP_FONT,"Arial Bold");

         ObjectSetInteger(0,name,OBJPROP_XDISTANCE,xc);

         ObjectSetInteger(0,name,OBJPROP_YDISTANCE,yc+60);

         ObjectSetInteger(0,name,OBJPROP_SELECTED,false);

         yc+=20;

        }

          for(int i=10;i<11;i++)

        {

         name=heading[i];

         ObjectCreate(0,name,OBJ_LABEL,0,0,0);

         ObjectSetText(name,name,10,"Arial",clrGoldenrod);

          ObjectSetInteger(0,name,OBJPROP_XSIZE,100);

      ObjectSetInteger(0,name,OBJPROP_YSIZE,20);

       ObjectSetString(0,name,OBJPROP_FONT,"Arial Bold");

         ObjectSetInteger(0,name,OBJPROP_XDISTANCE,xc);

         ObjectSetInteger(0,name,OBJPROP_YDISTANCE,yc+60);

         ObjectSetInteger(0,name,OBJPROP_SELECTED,false);

         yc+=20;

        }

           for(int i=11;i<12;i++)

        {

         name=heading[i];

         ObjectCreate(0,name,OBJ_BUTTON,0,0,0);

            ObjectSetString(0,name,OBJPROP_FONT,"Calibri");

             ObjectSetInteger(0,name,OBJPROP_FONTSIZE,12);

          ObjectSetInteger(0,name,OBJPROP_COLOR,clrBlack);

         ObjectSetInteger(0,name,OBJPROP_BGCOLOR,clrRed);

       

       

        ObjectSetInteger(0,name,OBJPROP_XSIZE,100);

      ObjectSetInteger(0,name,OBJPROP_YSIZE,20);

         ObjectSetText(name,name,10,"Arial",clrBlue);

         ObjectSetInteger(0,name,OBJPROP_XDISTANCE,xc);

         ObjectSetInteger(0,name,OBJPROP_XDISTANCE,xc);

         ObjectSetInteger(0,name,OBJPROP_YDISTANCE,yc+60);

         yc+=20;

        }}

        ////////////bracket order panel

           if(Bracket_Order_Panel==Show_BO){bracket_Order_Panel="Show";}

           if(Bracket_Order_Panel==Hide_BO){bracket_Order_Panel="Hide";}

        if(bracket_Order_Panel=="Show"){

    

  

      for(int i=0;i<1;i++)

        {

         name2=heading2[i];

       

         ObjectCreate(0,name2,OBJ_BUTTON,0,0,0);

            ObjectSetInteger(0,name2,OBJPROP_COLOR,clrBlack);

         ObjectSetInteger(0,name2,OBJPROP_XSIZE,160);

          ObjectSetInteger(0,name2,OBJPROP_BGCOLOR,clrPaleGreen);

      ObjectSetInteger(0,name2,OBJPROP_YSIZE,25);

         ObjectSetText(name2,name2,16,"Arial",clrBlue);

         ObjectSetInteger(0,name2,OBJPROP_XDISTANCE,20);

         ObjectSetInteger(0,name2,OBJPROP_YDISTANCE,350);

  

        }

         for(int i=1;i<5;i++)

        {

          name2=heading2[i];

         ObjectCreate(name2,OBJ_LABEL,0,0,0);

         ObjectSetText(name2,name2,10,"Arial",Gold);

        

         ObjectSet(name2,OBJPROP_XDISTANCE,30);

        ObjectSet(name2,OBJPROP_YDISTANCE,50);

       ObjectSetString(0,name2,OBJPROP_FONT,"Arial Bold");

         ObjectSetInteger(0,name2,OBJPROP_XDISTANCE,20);

         ObjectSetInteger(0,name2,OBJPROP_YDISTANCE,yc2+25);

         ObjectSetInteger(0,name2,OBJPROP_SELECTED,false);

     

         yc2+=25;

         }

          name2="Editbrackettgt";

      ObjectCreate(0,name2,OBJ_EDIT,0,0,0);

      ObjectSetText(name2,"0",10,"Arial",clrRed);

      ObjectSetInteger(0,name2,OBJPROP_XDISTANCE,130);

      ObjectSetInteger(0,name2,OBJPROP_YDISTANCE,375);

      ObjectSetInteger(0,name2,OBJPROP_XSIZE,60);

      ObjectSetInteger(0,name2,OBJPROP_YSIZE,20);

          name2="Editbracketprice";

      ObjectCreate(0,name2,OBJ_EDIT,0,0,0);

      ObjectSetText(name2,"0",10,"Arial",clrRed);

      ObjectSetInteger(0,name2,OBJPROP_XDISTANCE,130);

      ObjectSetInteger(0,name2,OBJPROP_YDISTANCE,400);

      ObjectSetInteger(0,name2,OBJPROP_XSIZE,60);

      ObjectSetInteger(0,name2,OBJPROP_YSIZE,20);

          name2="Editbracketsl";

      ObjectCreate(0,name2,OBJ_EDIT,0,0,0);

      ObjectSetText(name2,"0",10,"Arial",clrRed);

      ObjectSetInteger(0,name2,OBJPROP_XDISTANCE,130);

      ObjectSetInteger(0,name2,OBJPROP_YDISTANCE,425);

      ObjectSetInteger(0,name2,OBJPROP_XSIZE,60);

      ObjectSetInteger(0,name2,OBJPROP_YSIZE,20);

          name2="Editbracketqty";

      ObjectCreate(0,name2,OBJ_EDIT,0,0,0);

      ObjectSetText(name2,"0",10,"Arial",clrRed);

      ObjectSetInteger(0,name2,OBJPROP_XDISTANCE,130);

      ObjectSetInteger(0,name2,OBJPROP_YDISTANCE,450);

      ObjectSetInteger(0,name2,OBJPROP_XSIZE,60);

      ObjectSetInteger(0,name2,OBJPROP_YSIZE,20);

      

      for(int i=5;i<6;i++)

        {

         name2=heading2[i];

       

         ObjectCreate(0,name2,OBJ_BUTTON,0,0,0);

            ObjectSetInteger(0,name2,OBJPROP_COLOR,clrBlack);

         ObjectSetInteger(0,name2,OBJPROP_XSIZE,160);

          ObjectSetInteger(0,name2,OBJPROP_BGCOLOR,Red);

      ObjectSetInteger(0,name2,OBJPROP_YSIZE,25);

         ObjectSetText(name2,name2,16,"Arial",clrBlue);

         ObjectSetInteger(0,name2,OBJPROP_XDISTANCE,20);

         ObjectSetInteger(0,name2,OBJPROP_YDISTANCE,475);


        }

      }

         if(Trendlines_Panel==Show_TL){trendlines_Panel="Show";}

   if(Trendlines_Panel==Hide_TL){trendlines_Panel="Hide";}

      if(trendlines_Panel=="Show"){

     

     //////////////trendlines 


      

           

      for(int i=0;i<4;i++)

        {

         name1=heading1[i];

         ObjectCreate(name1,OBJ_LABEL,0,0,0);

         ObjectSetText(name1,name1,10,"Arial",Gold);

         ObjectSet(name1,OBJPROP_CORNER,1);

         ObjectSet(name1,OBJPROP_XDISTANCE,30);

        ObjectSet(name1,OBJPROP_YDISTANCE,50);

       ObjectSetString(0,name1,OBJPROP_FONT,"Arial Bold");

         ObjectSetInteger(0,name1,OBJPROP_XDISTANCE,xc1);

         ObjectSetInteger(0,name1,OBJPROP_YDISTANCE,yc1+20);

         ObjectSetInteger(0,name1,OBJPROP_SELECTED,false);

     

         yc1+=20;

         }

          name1="Edittarget";

      ObjectCreate(0,name1,OBJ_EDIT,0,0,0);

      ObjectSet(name1,OBJPROP_CORNER,1);

      ObjectSetText(name1,"0",10,"Arial",clrRed);

      ObjectSetInteger(0,name1,OBJPROP_XDISTANCE,xc1-10);

      ObjectSetInteger(0,name1,OBJPROP_YDISTANCE,40);

      ObjectSetInteger(0,name1,OBJPROP_XSIZE,80);

      ObjectSetInteger(0,name1,OBJPROP_YSIZE,20);

         name1="EditLong_Entry";

      ObjectCreate(0,name1,OBJ_EDIT,0,0,0);

      ObjectSet(name1,OBJPROP_CORNER,1);

      ObjectSetText(name1,"0",10,"Arial",clrRed);

      ObjectSetInteger(0,name1,OBJPROP_XDISTANCE,xc1-10);

      ObjectSetInteger(0,name1,OBJPROP_YDISTANCE,60);

      ObjectSetInteger(0,name1,OBJPROP_XSIZE,80);

      ObjectSetInteger(0,name1,OBJPROP_YSIZE,20);

         name1="EditShort_Entry";

      ObjectCreate(0,name1,OBJ_EDIT,0,0,0);

      ObjectSet(name1,OBJPROP_CORNER,1);

      ObjectSetText(name1,"0",10,"Arial",clrRed);

      ObjectSetInteger(0,name1,OBJPROP_XDISTANCE,xc1-10);

      ObjectSetInteger(0,name1,OBJPROP_YDISTANCE,80);

      ObjectSetInteger(0,name1,OBJPROP_XSIZE,80);

      ObjectSetInteger(0,name1,OBJPROP_YSIZE,20);

         name1="EditStoploss";

      ObjectCreate(0,name1,OBJ_EDIT,0,0,0);

      ObjectSet(name1,OBJPROP_CORNER,1);

      ObjectSetText(name1,"0",10,"Arial",clrRed);

      ObjectSetInteger(0,name1,OBJPROP_XDISTANCE,xc1-10);

      ObjectSetInteger(0,name1,OBJPROP_YDISTANCE,100);

      ObjectSetInteger(0,name1,OBJPROP_XSIZE,80);

      ObjectSetInteger(0,name1,OBJPROP_YSIZE,20);


 

}

      

//---

 target=StrToDouble(ObjectGetString(0,"Edittarget",OBJPROP_TEXT));

    longentry=StrToDouble(ObjectGetString(0,"EditLong_Entry",OBJPROP_TEXT));

    shortentry=StrToDouble(ObjectGetString(0,"EditShort_Entry",OBJPROP_TEXT));

    stoploss=StrToDouble(ObjectGetString(0,"EditStoploss",OBJPROP_TEXT));

    tg=target;

   le=longentry;

   se=shortentry;

   sll=stoploss;

    if (target==0){target=100000000000000000000000000000000000000000000000000000000;}

    if (longentry==0){le=100000000000000000000000000000000000000000000000000000000;}

     if (shortentry==0){se=100000000000000000000000000000000000000000000000000000000;}

      if (stoploss==0){sll=100000000000000000000000000000000000000000000000000000000;}

   return(INIT_SUCCEEDED);

  }

//+------------------------------------------------------------------+

//| Expert deinitialization function                                 |

//+------------------------------------------------------------------+

void OnDeinit(const int reason)

  { 

   if(Bracket_Order_Panel==Show_BO){bracket_Order_Panel="Show";}

   if(Bracket_Order_Panel==Hide_BO){bracket_Order_Panel="Hide";}

        if(bracket_Order_Panel=="Show")

    for (int i = 0;i<13;i++)

  {

    

    name2=heading2[i];

     ObjectDelete(0,name2);

     ObjectDelete(0,Editbrackettgt);

     ObjectDelete(0,Editbracketprice);

     ObjectDelete(0,Editbracketsl);

      ObjectDelete(0,Editbracketqty);

     yc2 = 350;

     

   }

   

       if(Trendlines_Panel==Show_TL){trendlines_Panel="Show";}

       if(Trendlines_Panel==Hide_TL){trendlines_Panel="Hide";}

      if(trendlines_Panel=="Show")

      {

    for (int i = 0;i<13;i++)

  {

    

    name1=heading1[i];

     ObjectDelete(0,name1);

     ObjectDelete(0,Edittarget);

     ObjectDelete(0,EditLong_Entry);

     ObjectDelete(0,EditShort_Entry);

      ObjectDelete(0,EditStoploss);

     yc1 = 20;

     

   }}

   if(Simple_Order_Panel==Show){simple_Order_Panel="Show";}

   if (Simple_Order_Panel ==Hide){simple_Order_Panel="Hide";}

   

   if(simple_Order_Panel=="Show")

   {

    for (int i = 0;i<13;i++)

  {

    

     name=heading[i];

     ObjectDelete(0,name);

     ObjectDelete(0,EditPrice);

     ObjectDelete(0,EditQuantity);

     ObjectDelete(0,Edit_TrigerPrice);

      ObjectDelete(0,Edit_SLquantity);

    xc=20;

      yc=40;

     

   }

   }

   

  }

//+------------------------------------------------------------------+

//| Expert tick function                                             |

//+------------------------------------------------------------------+

void OnTick()

  {

  tg=target;

   le=longentry;

   se=shortentry;

   sll=stoploss;

   

   

    target=StrToDouble(ObjectGetString(0,"Edittarget",OBJPROP_TEXT));

    longentry=StrToDouble(ObjectGetString(0,"EditLong_Entry",OBJPROP_TEXT));

    shortentry=StrToDouble(ObjectGetString(0,"EditShort_Entry",OBJPROP_TEXT));

    stoploss=StrToDouble(ObjectGetString(0,"EditStoploss",OBJPROP_TEXT));

 

   double close = Close[0];

   if (target==0||target== NULL){target=100000000000000000000000000000000000000000000000000000000;}

    if (target==0||target== NULL){le=100000000000000000000000000000000000000000000000000000000;}

     if (target==0||target== NULL){se=-100000000000000000000000000000000000000000000000000000000;}

      if (target==0||target== NULL){sll=-100000000000000000000000000000000000000000000000000000000;}

   tg=target;

   le=longentry;

   se=shortentry;

   sll=stoploss;

    if (target==0||target== NULL){target=100000000000000000000000000000000000000000000000000000000;}

    if (target==0||target== NULL){le=100000000000000000000000000000000000000000000000000000000;}

     if (target==0||target== NULL){se=-100000000000000000000000000000000000000000000000000000000;}

      if (target==0||target== NULL){sll=-100000000000000000000000000000000000000000000000000000000;}

   ////////drawing line 

   

   if(target>0)

   {

                ObjectCreate("Target2",OBJ_HLINE,0,0,target);

                ObjectSet("Target2",OBJPROP_COLOR,Blue);

                ObjectGetInteger("Target2",OBJPROP_WIDTH,4);

                

               ObjectCreate(0, "Target11", OBJ_TEXT, 0,Time[0],target);

               ObjectSetText( "Target11","Target "+target,12 , "Times New Roman", Blue);

               ObjectSetInteger( "Target11", 0, Time[0], target);

   }

   if(longentry>0)

   {

                ObjectCreate("longentry",OBJ_HLINE,0,0,longentry);

                ObjectSet("longentry",OBJPROP_COLOR,Green);

               ObjectGetInteger("longentry",OBJPROP_WIDTH,4);

               

               ObjectCreate(0, "longentry1", OBJ_TEXT, 0,Time[0],longentry);

               ObjectSetText("longentry1","LongEntry "+longentry,12 , "Times New Roman", Green);

               ObjectSetInteger( "longentry1", 0, Time[0], longentry);

   }

   if(shortentry>0)

   {

                ObjectCreate("shortentry",OBJ_HLINE,0,0,shortentry);

                ObjectSet("shortentry",OBJPROP_COLOR,Red);

               ObjectGetInteger("shortentry",OBJPROP_WIDTH,4);

               

                ObjectCreate(0, "shortentry1", OBJ_TEXT, 0,Time[0],shortentry);

               ObjectSetText( "shortentry1","ShortEntry "+shortentry,12 , "Times New Roman", Red);

               ObjectSetInteger( "shortentry1", 0, Time[0], shortentry);

   }

   if(stoploss>0)

   {

                ObjectCreate("stoploss",OBJ_HLINE,0,0,stoploss);

                ObjectSet("stoploss",OBJPROP_COLOR,Gold);

               ObjectGetInteger("stoploss",OBJPROP_WIDTH,4);

               

                ObjectCreate(0, "stoploss1", OBJ_TEXT, 0,Time[0],stoploss);

               ObjectSetText( "stoploss1","StopLoss "+stoploss,12 , "Times New Roman", Gold);

               ObjectSetInteger( "stoploss1", 0, Time[0], stoploss);

   }

   

 ////////////  movelines

 if(target==tg)

 {

 ObjectMove(Symbol(),"Target2",0,0,target);

 ObjectMove(Symbol(),"Target11",0,0,target);

 }

 if(longentry==le)

 {

 ObjectMove(Symbol(),"longentry",0,0,longentry);

 ObjectMove(Symbol(),"longentry1",0,0,longentry);

 }

 if(shortentry==se)

 {

 ObjectMove(Symbol(),"shortentry",0,0,shortentry);

ObjectMove(Symbol(),"shortentry1",0,0,shortentry);

 }

 if(stoploss==sll)

 {


 ObjectMove(Symbol(),"stoploss",0,0,stoploss);

 ObjectMove(Symbol(),"stoploss1",0,0,stoploss);

 }

 

   

   

//long entry condition 

if(Close[0]>le)

      {

     if(Low[0] <= le&&High[0]>=le&& long_entry==false )

     {

     

     Alert(Time[0]+"Longentry @-"+close+" "+Symbol());

     long_entry=true;

     LongEntry(Quantity,Ask);

      tgt =false;

      sl=false;

     }}

     

     

     if(Close[0]<le)

      {

     if(High[0] >= le&&Low[0]<=le&&long_entry==false )

     {

     

     Alert(Time[0]+"Longentry @-"+close+" "+Symbol());

     long_entry=true;

     LongEntry(Quantity,Ask);

     tgt =false;

      sl=false;

     }}

     

////// short entry

if(Close[0]>se){

   if(Low[0] <= se&&High[0] >= se&&short_entry==false)

   {

  Alert(Time[0]+"ShortEntry@-"+close+" "+Symbol());

     short_entry=true;

     ShortEntry(Quantity,Ask);

     tgt =false;

     sl=false;

   }}

   if(Close[0]<se){

   if(Low[0] <= se&&High[0] >= se&&short_entry==false)

   {

  Alert(Time[0]+"ShortEntry@-"+close+" "+Symbol());

     short_entry=true;

     ShortEntry(Quantity,Ask);

     tgt =false;

     sl=false;

   }}

   

   ///////// target calculation 

   

   if(short_entry==true)

   {

    if(High[0] >= tg&&Low[0]<=tg&&tgt==false)

   {

  Alert(Time[0]+"Target executed @-"+close+" "+Symbol());

   tgt =true;

   short_entry=false;

   long_entry=false;

   ShortExit(Quantity,Ask);

   }

   }    

   

   if(long_entry==true)

   {

    if(High[0] >= tg&&Low[0]<=tg&&tgt==false)

   {

  Alert(Time[0]+"Target executed @-"+close+" "+Symbol());

   tgt =true;

   short_entry=false;

   long_entry=false;

   LongExit(Quantity,Ask);

   }

   }   


 

   ////////sl calculation 

   if(short_entry==true)

   {

    if(High[0] >= sll&&Low[0]<=sll&&sl==false)

   {

  Alert(Time[0]+"Stoploss executed @-"+Ask+" "+Symbol());

   sl =true;

   short_entry=false;

   long_entry=false;

   ShortExit(Quantity,Ask);

   }

   }    

   

   if(long_entry==true)

   {

    if(High[0] >= sll&&Low[0]<=sll&&sl==false)

   {

  Alert(Time[0]+"Stoploss executed @-"+Ask+" "+Symbol());

   sl =true;

   short_entry=false;

   long_entry=false;

   LongExit(Quantity,Ask);

   }

   }   

     string ins ;

      string sym = Symbol();

      string ordertype  ;

  if(Ordertype==MARKET){ordertype="MARKET";}

  else if(Ordertype==LIMIT){ordertype="LIMIT";}

      

   if(Instrument==EQ){ins = "EQ";}

   else if (Instrument==FUTSTK){ins = "FUTSTK";}

   else if (Instrument==FUTIDX){ins = "FUTIDX";}

   else if (Instrument==OPTSTK){ins = "OPTSTK";}

   else if (Instrument==OPTIDX){ins = "OPTIDX";}

   else if (Instrument==FUTCUR){ins = "FUTCUR";}

   else if (Instrument==FUTCOM){ins = "FUTCOM";}


        ObjectCreate("0", OBJ_LABEL, 0, 0, 0);

        ObjectSetText("0","Instrument- "+ins+" , Order Type-"+ordertype+"",7, "Verdana", clrGoldenrod);

        ObjectSet("0", OBJPROP_CORNER, 0);

        ObjectSet("0",OBJPROP_FONTSIZE, 10);

        ObjectSet("0", OBJPROP_XDISTANCE, 20);

        ObjectSet("0", OBJPROP_YDISTANCE, 20); 

   }

   

   

void OnChartEvent(const int id,

                  const long &lparam,

                  const double &dparam,

                  const string &sparam)

  {

   if(id==CHARTEVENT_OBJECT_CLICK)

     {

      string name="Long Entry";

      if(ObjectGetInteger(0,name,OBJPROP_STATE)==true)

        {

         ObjectSetInteger(0,name,OBJPROP_STATE,false);

         double price=StrToDouble(ObjectGetString(0,"EditPrice",OBJPROP_TEXT));

         double Quantity=StrToDouble(ObjectGetString(0,"EditQuantity",OBJPROP_TEXT));

  

  string ordertype  ;

  if(Ordertype==MARKET){ordertype="MARKET";}

  else if(Ordertype==LIMIT){ordertype="LIMIT";}

   

    LongEntry(Quantity,price);

       Alert("Long order For ="+Symbol()+" Price-"+price+" Quantity-"+Quantity);  

        }

        

        

        

         name="Short Exit";

      if(ObjectGetInteger(0,name,OBJPROP_STATE)==true)

        {

         ObjectSetInteger(0,name,OBJPROP_STATE,false);

         double price=StrToDouble(ObjectGetString(0,"EditPrice",OBJPROP_TEXT));

         double Quantity=StrToDouble(ObjectGetString(0,"EditQuantity",OBJPROP_TEXT));

       ShortExit(Quantity,price);

         Alert("Cover order For ="+Symbol()+" Price-"+price+" Quantity-"+Quantity);  

         

         }

       name="Short Entry";

      if(ObjectGetInteger(0,name,OBJPROP_STATE)==true)

        {

         ObjectSetInteger(0,name,OBJPROP_STATE,false);

         double price=StrToDouble(ObjectGetString(0,"EditPrice",OBJPROP_TEXT));

         double Quantity=StrToDouble(ObjectGetString(0,"EditQuantity",OBJPROP_TEXT));

     ShortEntry(Quantity,price);

        Alert("Short order For ="+Symbol()+" Price-"+price+" Quantity-"+Quantity);

   

         

         }

         

      name="Long Exit";

      if(ObjectGetInteger(0,name,OBJPROP_STATE)==true)

        {

         ObjectSetInteger(0,name,OBJPROP_STATE,false);

       double price=StrToDouble(ObjectGetString(0,"EditPrice",OBJPROP_TEXT));

         double Quantity=StrToDouble(ObjectGetString(0,"EditQuantity",OBJPROP_TEXT));

        // int ticket=OrderSend(Symbol(),OP_SELL,0,Ask,50,sl,tp,NULL,MagicNumber,0,clrNONE);

       LongExit(Quantity,price);

        Alert("Sell order For ="+Symbol()+" Price-"+price+" Quantity-"+Quantity);

   

         

        }

          name="SL Buy";

      if(ObjectGetInteger(0,name,OBJPROP_STATE)==true)

        {

         ObjectSetInteger(0,name,OBJPROP_STATE,false);

      //   double price=StrToDouble(ObjectGetString(0,"EditSLPrice",OBJPROP_TEXT));

      double price = Close[0];

       double Quantity=StrToDouble(ObjectGetString(0,"Edit_TrigerPrice",OBJPROP_TEXT));

         

        double TrigerPrice=StrToDouble(ObjectGetString(0,"Edit_SLquantity",OBJPROP_TEXT));

       


        slbuy(Quantity,TrigerPrice);

        Alert("SLM Buy order For ="+Symbol()+"Trigger Price-"+TrigerPrice+" Quantity- "+Quantity);

   

         

         }

       name="SL Sell";

      if(ObjectGetInteger(0,name,OBJPROP_STATE)==true)

        {

         ObjectSetInteger(0,name,OBJPROP_STATE,false);

      //   double price=StrToDouble(ObjectGetString(0,"EditSLPrice",OBJPROP_TEXT));

      double price = Close[0];

       double Quantity=StrToDouble(ObjectGetString(0,"Edit_TrigerPrice",OBJPROP_TEXT));

         

        double TrigerPrice=StrToDouble(ObjectGetString(0,"Edit_SLquantity",OBJPROP_TEXT));

        string ordertype ;

   

            slsell(Quantity,TrigerPrice);

        Alert("SLM Sell order For ="+Symbol()+"Trigger Price-"+TrigerPrice+" Quantity- "+Quantity);

   

         

         }

     }

   //////////Bracket order buy","target","price","Sl price","qty","Bracket order sell"

         name2="Bracket order buy";

      if(ObjectGetInteger(0,name2,OBJPROP_STATE)==true)

        {

         ObjectSetInteger(0,name2,OBJPROP_STATE,false);

      //   double price=StrToDouble(ObjectGetString(0,"EditSLPrice",OBJPROP_TEXT));

      double price = StrToDouble(ObjectGetString(0,"Editbracketprice",OBJPROP_TEXT));

       double Quantity=StrToDouble(ObjectGetString(0,"Editbracketqty",OBJPROP_TEXT));

       

         double tgt = StrToDouble(ObjectGetString(0,"Editbrackettgt",OBJPROP_TEXT));

       double slprice=StrToDouble(ObjectGetString(0,"Editbracketsl",OBJPROP_TEXT));

        string difference = MathAbs(price-slprice);

        bracketorderbuy(Quantity,price,slprice,difference,tgt);

   


        Alert("Bracket order buy For ="+Symbol()+"Trigger Price-"+slprice+" Quantity- "+Quantity);

   

         

         }

         

                  name2="Bracket order sell";

      if(ObjectGetInteger(0,name2,OBJPROP_STATE)==true)

        {

         ObjectSetInteger(0,name2,OBJPROP_STATE,false);

      //   double price=StrToDouble(ObjectGetString(0,"EditSLPrice",OBJPROP_TEXT));

      double price = StrToDouble(ObjectGetString(0,"Editbracketprice",OBJPROP_TEXT));

       double Quantity=StrToDouble(ObjectGetString(0,"Editbracketqty",OBJPROP_TEXT));

       

         double tgt = StrToDouble(ObjectGetString(0,"Editbrackettgt",OBJPROP_TEXT));

       double slprice=StrToDouble(ObjectGetString(0,"Editbracketsl",OBJPROP_TEXT));

         string difference = MathAbs(price-slprice);

       bracketordersell(Quantity,price,slprice,difference,tgt);

        Alert("Bracket order sell For ="+Symbol()+"Trigger Price-"+slprice+" Quantity- "+Quantity);

   

         

         }

     }

   

   

     

     

     

//---


 

 

  

//+------------------------------------------------------------------+


Comments

Popular posts from this blog

MQL5 : Add time to current time in mins

MQL5: Closed order detail