How to enable/disable these candles?

 

I want to add ON/OFF button,I created the button but I do not know how to type the script which will enable/disable my candles. 


What should I cling to?

#property copyright "Æèòíåâ Ìèõàèë aka MikeZTN"
#property link      "ICQ 138092006"

#property indicator_chart_window

#define BUTTON_NAME "Button";

//------- Âíåøíèå ïàðàìåòðû ------------------------------------------

extern bool TURN_OFF    = false ;
extern bool Show_Wick_Zone    = false ;


input ENUM_TIMEFRAMES TFBar       = 60;           // Ïåðèîä ñòàðøèõ ñâå÷åê
extern bool bcgr       = TRUE;           // objbcgr

extern int NumberOfBar = 100;           // Êîëè÷åñòâî ñòàðøèõ ñâå÷åê
extern color ColorUp   = DarkGreen;    //0x003300;      // Öâåò âîñõîäÿùåé ñâå÷è
extern color ColorDown = Maroon;         //0x000033;      // Öâåò íèñõîäÿùåé ñâå÷è
extern color ColorWick = clrDimGray;

input ENUM_LINE_STYLE  myWickStyle = STYLE_DOT ;
extern int  myWickWidth = 1 ;



//------- Ãëîáàëüíûå ïåðåìåííûå --------------------------------------
    int BarsToUse ;
    
    
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void init() {
  
  string button = "Button";
  ObjectCreate(0, button, OBJ_BUTTON, 0, 0, 0);
  ObjectSetInteger(0, button, OBJPROP_XSIZE, 50);
  ObjectSetInteger(0, button, OBJPROP_YSIZE, 50);
  ObjectSetInteger(0, button, OBJPROP_XDISTANCE, 10);
  ObjectSetInteger(0, button, OBJPROP_YDISTANCE, 20);
  ObjectSetInteger(0, button, OBJPROP_COLOR, clrAliceBlue);
  ObjectSetInteger(0, button, OBJPROP_BGCOLOR, clrBlack);
  int i;
  
    if(NumberOfBar == 0) { BarsToUse = WindowBarsPerChart() ; } else { BarsToUse = NumberOfBar ; }
    
    Comment(WindowBarsPerChart()) ;  

  for (i=0; i<BarsToUse; i++) {
    ObjectDelete("BodyTF"+TFBar+"Bar"+i);
    ObjectDelete("ShadowTFh"+TFBar+"Bar" + i);
    ObjectDelete("ShadowTFl"+TFBar+"Bar" + i);

  }
  for (i=0; i<BarsToUse; i++) 
  {
    ObjectCreate("BodyTF"+TFBar+"Bar"+i, OBJ_RECTANGLE, 0, 0,0, 0,0);
   if(Show_Wick_Zone)
   {
      ObjectCreate("ShadowTFh"+TFBar+"Bar"+i, OBJ_RECTANGLE, 0, 0,0, 0,0);
      ObjectCreate("ShadowTFl"+TFBar+"Bar"+i, OBJ_RECTANGLE, 0, 0,0, 0,0);
   }
   else
   {
      ObjectCreate("ShadowTFh"+TFBar+"Bar"+i, OBJ_TREND, 0, 0,0, 0,0);
      ObjectCreate("ShadowTFl"+TFBar+"Bar"+i, OBJ_TREND, 0, 0,0, 0,0);
   }
  } // for
  
  Comment("");
  
  TRO();
}

//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
void deinit() {
  // Óäàëåíèå îáúåêòîâ
  for (int i=0; i<NumberOfBar; i++) {
    ObjectDelete("BodyTF"+TFBar+"Bar"+i);
    ObjectDelete("ShadowTFh"+TFBar+"Bar" + i);
    ObjectDelete("ShadowTFl"+TFBar+"Bar" + i);

  }
  Comment("");
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start() 
{
   if( TURN_OFF ) { deinit(); return(0) ; }

   if(TFBar <= Period() ) {return(0);} ;

  int shb=0, sh1=1;
  double   po, pc;       // Öåíû îòêðûòèÿ è çàêðûòèÿ ñòàðøèõ ñâå÷åê
  double   ph=0, pl=500; // Öåíû õàé è ëîó ñòàðøèõ ñâå÷åê
  datetime to, tc, ts;   // Âðåìÿ îòêðûòèÿ, çàêðûòèÿ è òåíåé ñòàðøèõ ñâå÷åê

  
  bool OK_Period=false;   
  switch (TFBar)
  {    
    case 1:OK_Period=true;break;
    case 5:OK_Period=true;break;
    case 15:OK_Period=true;break;
    case 30:OK_Period=true;break;
    case 60:OK_Period=true;break;
    case 240:OK_Period=true;break;
    case 1440:OK_Period=true;break;
    case 10080:OK_Period=true;break;
    case 43200:OK_Period=true;break;
  }
  if (OK_Period==false)
     {
        Comment("TFBar != 1,5,15,30,60,240(H4), 1440(D1),10080(W1), 43200(MN) !");   
//      Comment("Âû ââåëè íåñòàíäàðòíóþ öèôðó òàéìôðåéìà TFBar! Íåîáõîäèìî ââåñòè îäíó èç ñëåäóþùèõ: 1,5,15,30,60,240,1440 è ò.ä.");   
       return(0);
     }
  if (Period()>TFBar) 
  {
    Comment("mCandles: TFBar<"+Period());//Çàäàâàåìûé ñòàíäàðòíûé ïåðèîä äîëæåí áûòü áîëüøå òåêóùåãî! (Òåêóùèé ðàâåí " + Period() + ")");
//  Comment("Çàäàâàåìûé ñòàíäàðòíûé ïåðèîä äîëæåí áûòü áîëüøå òåêóùåãî! (Òåêóùèé ðàâåí " + Period() + ")");
    return(0);
  }
    
    shb=0;
    // Áåæèì ïî ñòàðøèì ñâå÷êàì  
    

    

    
    while (shb<BarsToUse) 
    {
      to = iTime(Symbol(), TFBar, shb);
      tc = iTime(Symbol(), TFBar, shb) + TFBar*60; // was + TFBar*60;
      po = iOpen(Symbol(), TFBar, shb);
      pc = iClose(Symbol(), TFBar, shb);
      ph = iHigh(Symbol(), TFBar, shb); 
      pl = iLow(Symbol(), TFBar, shb); 
      
      ts = to + MathRound((TFBar*60)/2);
      
      if(shb == 0 ) { tc = Time[0] ; ts =  MathRound(to + Time[0]) / 2 ;}
        
      //óñòàíàâëèâàåì  ðåêòàíãåëû
      ObjectSet("BodyTF"+TFBar+"Bar"+shb, OBJPROP_TIME1, to);  //âðåìÿ îòêðûòèÿ
      ObjectSet("BodyTF"+TFBar+"Bar"+shb, OBJPROP_PRICE1, po); //öåíà îòêðûòèÿ
      ObjectSet("BodyTF"+TFBar+"Bar"+shb, OBJPROP_TIME2, tc);  //âðåìÿ çàêðûòèÿ
      ObjectSet("BodyTF"+TFBar+"Bar"+shb, OBJPROP_PRICE2, pc); //öåíà çàêðûòèÿ
      ObjectSet("BodyTF"+TFBar+"Bar"+shb, OBJPROP_STYLE, myWickStyle);  //  STYLE_DOT
      ObjectSet("BodyTF"+TFBar+"Bar"+shb, OBJPROP_WIDTH, myWickWidth); // 1
      ObjectSet("BodyTF"+TFBar+"Bar"+shb, OBJPROP_BACK, bcgr);
      //óñòàíàâëèâàåì òåíè hl
       
      
 //     ts = to + MathRound((TFBar*60)/2);      ObjectSet("ShadowTFh"+TFBar+"Bar"+shb, OBJPROP_TIME1, ts);
      ObjectSet("ShadowTFh"+TFBar+"Bar"+shb, OBJPROP_PRICE1, ph);
      ObjectSet("ShadowTFh"+TFBar+"Bar"+shb, OBJPROP_TIME2, ts);
      ObjectSet("ShadowTFh"+TFBar+"Bar"+shb, OBJPROP_PRICE2, MathMax(po,pc));
 

   if(Show_Wick_Zone)
   {      
      ObjectSet("ShadowTFh"+TFBar+"Bar"+shb, OBJPROP_TIME1, to);
      ObjectSet("ShadowTFh"+TFBar+"Bar"+shb, OBJPROP_PRICE1, ph);
      ObjectSet("ShadowTFh"+TFBar+"Bar"+shb, OBJPROP_TIME2, tc);
      ObjectSet("ShadowTFh"+TFBar+"Bar"+shb, OBJPROP_PRICE2, MathMax(po,pc));
   }
   else
   {
      ObjectSet("ShadowTFh"+TFBar+"Bar"+shb, OBJPROP_TIME1, ts);
      ObjectSet("ShadowTFh"+TFBar+"Bar"+shb, OBJPROP_PRICE1, ph);
      ObjectSet("ShadowTFh"+TFBar+"Bar"+shb, OBJPROP_TIME2, ts);
      ObjectSet("ShadowTFh"+TFBar+"Bar"+shb, OBJPROP_PRICE2, MathMax(po,pc));
   }  
      
      ObjectSet("ShadowTFh"+TFBar+"Bar"+shb, OBJPROP_STYLE, myWickStyle);
      ObjectSet("ShadowTFh"+TFBar+"Bar"+shb, OBJPROP_WIDTH, myWickWidth);
      ObjectSet("ShadowTFh"+TFBar+"Bar"+shb, OBJPROP_BACK, bcgr);
      ObjectSet("ShadowTFh"+TFBar+"Bar"+shb, OBJPROP_RAY, False);            
 
   if(Show_Wick_Zone)
   {         
      ObjectSet("ShadowTFl"+TFBar+"Bar"+shb, OBJPROP_TIME1, to);
      ObjectSet("ShadowTFl"+TFBar+"Bar"+shb, OBJPROP_PRICE1, MathMin(po,pc));
      ObjectSet("ShadowTFl"+TFBar+"Bar"+shb, OBJPROP_TIME2, tc);
      ObjectSet("ShadowTFl"+TFBar+"Bar"+shb, OBJPROP_PRICE2, pl);
   }
   else
   {      
      ObjectSet("ShadowTFl"+TFBar+"Bar"+shb, OBJPROP_TIME1, ts);
      ObjectSet("ShadowTFl"+TFBar+"Bar"+shb, OBJPROP_PRICE1, MathMin(po,pc));
      ObjectSet("ShadowTFl"+TFBar+"Bar"+shb, OBJPROP_TIME2, ts);
      ObjectSet("ShadowTFl"+TFBar+"Bar"+shb, OBJPROP_PRICE2, pl);      
   }  
  
      ObjectSet("ShadowTFl"+TFBar+"Bar"+shb, OBJPROP_STYLE, myWickStyle);
      ObjectSet("ShadowTFl"+TFBar+"Bar"+shb, OBJPROP_WIDTH, myWickWidth);
      ObjectSet("ShadowTFl"+TFBar+"Bar"+shb, OBJPROP_BACK, bcgr);
      ObjectSet("ShadowTFl"+TFBar+"Bar"+shb, OBJPROP_RAY, False);            
 
 
 
      //óñòàíàâëèâàåì öâåòà äëÿ âñåõ îáúåêòîâ
      if (po<pc) {
          ObjectSet("BodyTF"+TFBar+"Bar"+shb, OBJPROP_COLOR, ColorUp);
          ObjectSet("ShadowTFh"+TFBar+"Bar"+shb, OBJPROP_COLOR, ColorWick);
          ObjectSet("ShadowTFl"+TFBar+"Bar"+shb, OBJPROP_COLOR, ColorWick);
 
        } else {
          ObjectSet("BodyTF"+TFBar+"Bar"+shb, OBJPROP_COLOR, ColorDown);
          ObjectSet("ShadowTFh"+TFBar+"Bar"+shb, OBJPROP_COLOR, ColorWick);
          ObjectSet("ShadowTFl"+TFBar+"Bar"+shb, OBJPROP_COLOR, ColorWick);

        }
        

      shb++;
     }       
      
  
  return(0);
}
//+------------------------------------------------------------------+  
void TRO()
{   
   
   string TRO_OBJ    = "TROTAG"  ;  
   ObjectCreate(TRO_OBJ, OBJ_LABEL, 0, 0, 0);//HiLow LABEL
   ObjectSetText(TRO_OBJ, CharToStr(78) , 12 ,  "Wingdings",  DimGray );
   ObjectSet(TRO_OBJ, OBJPROP_CORNER, 3);
   ObjectSet(TRO_OBJ, OBJPROP_XDISTANCE, 5 );
   ObjectSet(TRO_OBJ, OBJPROP_YDISTANCE, 5 );  
}


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

void OnChartEvent(const int id,          
                 const long& lparam,   
                  const double& dparam, 
                  const string& sparam) 
{
 
 for (int i = OrdersTotal()-1; i >= 0; i--) {
 if (OrderSelect(i, SELECT_BY_POS) && OrderSymbol() == _Symbol) {
   if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
      if (OrderClose(OrderTicket(), OrderLots(), Bid, 10000)) { 
 }
  
     
 }       } } 


}



//+------------------------------------------------------------------+
  
//+------------------------------------------------------------------+
/*

      
    if(shb == 0)
    {  
       Comment(
          "to=", DoubleToStr(to, Digits), "\n", 
          "tc=", DoubleToStr(tc, Digits), "\n",              
          "") ; 
    }
     
     
*/     
Documentation on MQL5: Integration / MetaTrader for Python / order_calc_margin
Documentation on MQL5: Integration / MetaTrader for Python / order_calc_margin
  • www.mql5.com
order_calc_margin - MetaTrader for Python - Integration - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
Reason: