//+------------------------------------------------------------------+
//|                                                       Info_Close_all.mq4 |
//|                                            Copyright 2014, Mell. |
//|                                              |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, Mell."
#property version   "1.00"
#property strict
color MainInfoBack=LightGray;
color MainInfo=Black;
color BuyInfoBack=LightGray;
color BuyInfo=Black;
color SellInfoBack=LightGray;
color SellInfo=Black;
input int magicbuy=0;//магик баев
input int magicsell=0;//магик селлов
extern color BuyColor=clrBlue;
extern color SellColor=clrRed;
extern int slippage=5;
extern int Pn =30;// кол пунктов до БУ
extern double procent =100;//Разрешенный Процент от свободных средств

//----knopki--------------------
int xsize=120, ysize=30;
//-----------------------------
int cnt,cu,dig,totb=0,tots=0;
string txt1,txt2,txt3,txt4,txtVTP,txtLOT,symbol;
double smbuy, smsell, ztpb, ztps,minLot,maxLot,LOTStep,TV,ekuti,zalog,lotsbuy2=0,lotssell2=0,lotsbuy3,lotssell3,lotsbuyMax=0,
lotssellMax=0,lotsbuy,lotssell,profitbuy,profitsell,openpricebuy,openpricesell;
bool OtkrytBuy=0,OtkrytSell=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   ButtonCreate("Закрыть все Селл",5,182,xsize,ysize,"Закрыть все Селл",clrBlack,clrGold);
   ButtonCreate("Закрыть все Бай",5,222,xsize,ysize,"Закрыть все Бай",clrAntiqueWhite,clrMediumBlue);
   ButtonCreate("Разрешить Откр.",440,62,xsize,ysize,"Разрешить Откр.",clrBlack,clrGold);
   ButtonCreate("Откр. Бай",440,142,xsize,ysize,"Открыть Бай",clrAntiqueWhite,clrMediumBlue);
   ButtonCreate("Откр. Селл",440,222,xsize,ysize,"Открыть Селл",clrBlack,clrGold);
   //-----------------------
   zalog=MarketInfo(_Symbol,MODE_MARGINREQUIRED);
    minLot = MarketInfo(Symbol(),MODE_MINLOT);
    maxLot = MarketInfo(Symbol(),MODE_MAXLOT);
    symbol = Symbol();
    LOTStep = MarketInfo(Symbol(),MODE_LOTSTEP);
    TV=MarketInfo(Symbol(),MODE_TICKVALUE);
   if (Digits==4 || Digits==2) cu=1; else cu=10;   // множитель для разных типов счетов 4/2 и 5/3
   if (LOTStep==0.01)dig=2;
   if (LOTStep==0.1) dig=1;
   Pn*=cu; slippage*=cu;

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
if (!IsTesting())
      {
      Comment("");
      ObjectDelete("SellZeroLevel"); ObjectDelete("BuyZeroLevel");
      ObjectDelete("y_MainInfoBack1"); ObjectDelete("y_MainInfoBack2"); ObjectDelete("y_MainInfoBack3");
      ObjectDelete("z_MainInfo_1"); ObjectDelete("z_MainInfo_2"); ObjectDelete("z_MainInfo_3"); ObjectDelete("z_MainInfo_4"); ObjectDelete("z_MainInfo_5"); ObjectDelete("z_MainInfo_6"); ObjectDelete("z_MainInfo_7"); 
      ObjectDelete("z_BuyInfo_1");  ObjectDelete("z_BuyInfo_2");  ObjectDelete("z_BuyInfo_3");  ObjectDelete("z_BuyInfo_4");  ObjectDelete("z_BuyInfo_5");  ObjectDelete("z_BuyInfo_6");  ObjectDelete("z_BuyInfo_8");ObjectDelete("z_BuyInfo_7");
      ObjectDelete("z_SellInfo_1"); ObjectDelete("z_SellInfo_2"); ObjectDelete("z_SellInfo_3"); ObjectDelete("z_SellInfo_4"); ObjectDelete("z_SellInfo_5"); ObjectDelete("z_SellInfo_6"); ObjectDelete("z_SellInfo_8");ObjectDelete("z_SellInfo_7");
      ObjectDelete("Закрыть все Селл"); ObjectDelete("Закрыть все Бай");ObjectDelete("Разрешить Откр."); ObjectDelete("Откр. Бай");ObjectDelete("Откр. Селл");
      }
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
int start()
  {
//================================================================================
   
   double spread = MarketInfo(_Symbol,MODE_SPREAD);
   profitbuy=0; profitsell=0; smbuy=0;smsell=0;openpricebuy=0;openpricesell=0;
   
   totb=Total_B();
   tots=Total_S();
   if(totb==0){ztpb=0;}
   if(tots==0){ztps=0;}
//--------------------------------------
 if(OtkrytBuy)
    {
            lotsbuy2 = NormalizeDouble(((((0-profitbuy/Pn)-smbuy*TV)/TV)),dig);
            ekuti=AccountFreeMargin();
            if(ekuti>0){
            lotsbuyMax=MathFloor((ekuti*procent)/100.0/zalog/LOTStep)*LOTStep;}
            else{lotsbuy2=lotsbuy;}
            if(lotsbuy2>maxLot)lotsbuy2=maxLot;
            if(lotsbuy2>=lotsbuyMax){lotsbuy2=lotsbuy;}
            if(lotsbuy2>=lotsbuyMax){lotsbuy2=minLot;}
            if (lotsbuy2<minLot){lotsbuy2 = minLot;}
            Alert("Открываю Бай: "+DoubleToString(lotsbuy2,dig));
        if(Order_Open(OP_BUY,lotsbuy2,IntegerToString(totb+1)+"-й Buy",magicbuy,BuyColor)==1){OtkrytBuy=0;}
        else {GetLastError();OtkrytBuy=0;}
        
       }
if (OtkrytSell)
       {
          lotssell2 = NormalizeDouble(((((0-profitsell/Pn)-smsell*TV)/TV)),dig);
          ekuti=AccountFreeMargin();
          if(ekuti>0){
          lotssellMax=MathFloor((ekuti*procent)/100.0/zalog/LOTStep)*LOTStep;}
          else{lotssell2=lotssell;}
          if(lotssell2>maxLot)lotssell2=maxLot;
          if(lotssell2>=lotssellMax){lotssell2=lotssell;}
          if(lotssell2>=lotssellMax){lotssell2=minLot;}
          if(lotssell2<minLot) {lotssell2 = minLot;}
          Alert("Открываю Селл: "+DoubleToString(lotssell2,dig));
         if(Order_Open(OP_SELL,lotssell2,IntegerToString(tots+1)+"-й Sell",magicsell,SellColor)==1) { OtkrytSell=0;}
         else {GetLastError(); OtkrytSell=0;}
        
       }
//---------------------Собираем инфу----------------------------------
if(totb>0)
  {
   SumOrdB();
    ztpb = NormalizeDouble(Bid+((0-profitbuy)/(smbuy*TV))*Point,Digits);
  }
//---------------------
if(tots>0)
  {
    SumOrdS();
    ztps = NormalizeDouble(Ask-((0-profitsell)/(smsell*TV))*Point,Digits);
  }

//---------------------Рисуем таблички--------------------------------
string spips; 
      double pips=0;
      double stopout_balance=AccountBalance()*AccountStopoutLevel()/100;
      if (MathAbs(smbuy-smsell)>0) pips=NormalizeDouble((AccountEquity()-stopout_balance)/MathAbs(smbuy-smsell)/TV,0);
      if (smbuy>smsell) spips="До слива "+DoubleToString(pips,0)+" пунктов вниз";
      if (smbuy<smsell) spips="До слива "+DoubleToString(pips,0)+" пунктов вверх";
      if (smbuy==smsell) {if (smbuy==0) spips="Нет ордеров"; else spips="Лок";}
int x1,y1,x2,y2,x3,y3;
      if (ObjectFind("y_MainInfoBack1")==-1) Text("y_MainInfoBack1","gggg",58,"Webdings",130,15,MainInfoBack);
      if (ObjectFind("y_MainInfoBack2")==-1) Text("y_MainInfoBack2","gggg",58,"Webdings",130,95,BuyInfoBack);
      if (ObjectFind("y_MainInfoBack3")==-1) Text("y_MainInfoBack3","gggg",58,"Webdings",130,175,SellInfoBack);

      x1 =(int)ObjectGet("y_MainInfoBack1",OBJPROP_XDISTANCE);
      y1 =(int)ObjectGet("y_MainInfoBack1",OBJPROP_YDISTANCE);
      x2 =(int)ObjectGet("y_MainInfoBack2",OBJPROP_XDISTANCE);
      y2 =(int)ObjectGet("y_MainInfoBack2",OBJPROP_YDISTANCE);
      x3 =(int)ObjectGet("y_MainInfoBack3",OBJPROP_XDISTANCE);
      y3 =(int)ObjectGet("y_MainInfoBack3",OBJPROP_YDISTANCE);
      
      
      
      Text("z_MainInfo_2","Stop Out:  "+DoubleToString(AccountInfoDouble(ACCOUNT_MARGIN_SO_SO),2),9,"Arial Black",x1+20,y1+6,MainInfo);
      Text("z_MainInfo_3","мин.лот:  "+DoubleToStr(minLot,2),9,"Arial Black",x1+20,y1+21,MainInfo);
      Text("z_MainInfo_4","макс.лот:  "+DoubleToStr(maxLot,2),9,"Arial Black",x1+165,y1+21,MainInfo);
      Text("z_MainInfo_5","спред:  "+DoubleToStr(spread,0)+"п",9,"Arial Black",x1+20,y1+36,MainInfo);
      Text("z_MainInfo_6","плечо:  1:"+IntegerToString(AccountLeverage()),9,"Arial Black",x1+165,y1+36,MainInfo);
      Text("z_MainInfo_7",spips,9,"Arial Black",x1+20,y1+51,MainInfo);
      
      Text("z_BuyInfo_1","BUY",9,"Arial Black",x2+130,y2+6,BuyInfo);
      Text("z_BuyInfo_2","Ордеров:  "+IntegerToString(Total_B()),9,"Arial Black",x2+20,y2+21,BuyInfo);
      Text("z_BuyInfo_3","Объем:  "+DoubleToStr(smbuy,2),9,"Arial Black",x2+165,y2+21,BuyInfo);
      Text("z_BuyInfo_6","Профит:  "+DoubleToStr(profitbuy,2),9,"Arial Black",x2+20,y2+51,BuyInfo);
      
      Text("z_SellInfo_1","SELL",9,"Arial Black",x3+125,y3+6,SellInfo);
      Text("z_SellInfo_2","Ордеров:  "+IntegerToString(Total_S()),9,"Arial Black",x3+20,y3+21,SellInfo);
      Text("z_SellInfo_3","Объем:  "+DoubleToStr(smsell,2),9,"Arial Black",x3+165,y3+21,SellInfo);
      Text("z_SellInfo_6","Профит:  "+DoubleToStr(profitsell,2),9,"Arial Black",x3+20,y3+51,SellInfo);
      if(!IsOptimization()){
         lotsbuy3 = NormalizeDouble(((((0-profitbuy/Pn)-smbuy*TV)/TV)),dig);
         Text("z_BuyInfo_7","Нужен Бай:  "+DoubleToStr(lotsbuy3,dig),9,"Arial Black",x2+165,y2+51,BuyInfo);
         lotssell3 = NormalizeDouble(((((0-profitsell/Pn)-smsell*TV)/TV)),dig);
         Text("z_SellInfo_7","Нужен Селл:  "+DoubleToStr(lotssell3,dig),9,"Arial Black",x3+165,y3+51,SellInfo);
         if(lotsbuy3<0)lotsbuy3=minLot; if(lotssell3<0)lotssell3=minLot;
            if(lotsbuy3>0){
            ekuti=AccountFreeMargin();
            if(ekuti>0){
            lotsbuyMax=MathFloor((ekuti*procent)/100.0/zalog/LOTStep)*LOTStep;}
            else{lotsbuy3=lotsbuy;}
            if(lotsbuy3>maxLot)lotsbuy3=maxLot;
            if(lotsbuy3>=lotsbuyMax){lotsbuy3=lotsbuy;}
            if(lotsbuy3>=lotsbuyMax){lotsbuy3=minLot;}
            if (lotsbuy3<minLot){lotsbuy3 = minLot;}
            }
          if(lotssell3>0){
          ekuti=AccountFreeMargin();
          if(ekuti>0){
          lotssellMax=MathFloor((ekuti*procent)/100.0/zalog/LOTStep)*LOTStep;}
          else{lotssell3=lotssell;}
          if(lotssell3>maxLot)lotssell3=maxLot;
          if(lotssell3>=lotssellMax){lotssell3=lotssell;}
          if(lotssell3>=lotssellMax){lotssell3=minLot;}
          if(lotssell3<minLot) {lotssell3 = minLot;}
          }
         Text("z_BuyInfo_8","След Бай:  "+DoubleToStr(lotsbuy3,dig),9,"Arial Black",x2+165,y2+36,BuyInfo);
         Text("z_SellInfo_8","След Селл:  "+DoubleToStr(lotssell3,dig),9,"Arial Black",x3+165,y3+36,SellInfo);
      }
      else { lotsbuy3=0; lotssell3=0;}
 //-------линии бу-----------
      ObjectDelete("SellZeroLevel");
      ObjectDelete("BuyZeroLevel");
   
      ObjectCreate("SellZeroLevel",OBJ_HLINE, 0, 0,ztps);
      ObjectSet("SellZeroLevel", OBJPROP_COLOR, clrRed);
      ObjectSet("SellZeroLevel", OBJPROP_WIDTH, 0);
      ObjectSet("SellZeroLevel", OBJPROP_RAY, False);

      ObjectCreate("BuyZeroLevel",OBJ_HLINE, 0, 0,ztpb);
      ObjectSet("BuyZeroLevel", OBJPROP_COLOR, clrBlue);
      ObjectSet("BuyZeroLevel", OBJPROP_WIDTH, 0);
      ObjectSet("BuyZeroLevel", OBJPROP_RAY, False);      

//---
   return(0);
  }
 
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//---

if(id == CHARTEVENT_OBJECT_CLICK){
    if(sparam == "Закрыть все Селл"){
       if((bool)ObjectGetInteger(0, "Закрыть все Селл", OBJPROP_STATE))
       {
       ObjectSetString(0, "Закрыть все Селл",OBJPROP_TEXT, "Закрываю");
       ObjectSetInteger(0,"Закрыть все Селл",OBJPROP_BGCOLOR, clrRed);
       closeSELLorders();
       Sleep(200);
       }
       else{
       ObjectSetString(0, "Закрыть все Селл",OBJPROP_TEXT, "Закрыть все Селл");
       ObjectSetInteger(0,"Закрыть все Селл",OBJPROP_BGCOLOR, clrGold);
       
       Sleep(200);
       }
     }
     if(sparam == "Закрыть все Бай"){
       if((bool)ObjectGetInteger(0, "Закрыть все Бай", OBJPROP_STATE))
       {
       ObjectSetString(0, "Закрыть все Бай",OBJPROP_TEXT, "Закрываю");
       ObjectSetInteger(0,"Закрыть все Бай",OBJPROP_BGCOLOR, clrRed);
       closeBUYorders();
       Sleep(200);
       }
       else{
       ObjectSetString(0, "Закрыть все Бай",OBJPROP_TEXT, "Закрыть все Бай");
       ObjectSetInteger(0,"Закрыть все Бай",OBJPROP_BGCOLOR, clrMediumBlue);
       
       Sleep(200);
       }
     }
     if(sparam == "Разрешить Откр."){
       if((bool)ObjectGetInteger(0, "Разрешить Откр.", OBJPROP_STATE))
       {
       ObjectSetInteger(0,"Откр. Бай",OBJPROP_STATE, false);
       ObjectSetInteger(0,"Откр. Селл",OBJPROP_STATE, false);
       ObjectSetString(0, "Разрешить Откр.",OBJPROP_TEXT, "Запретить Откр.");
       ObjectSetInteger(0,"Разрешить Откр.",OBJPROP_BGCOLOR, clrRed);
       Sleep(200);
       }
       else{
       ObjectSetString(0, "Разрешить Откр.",OBJPROP_TEXT, "Разрешить Откр.");
       ObjectSetInteger(0,"Разрешить Откр.",OBJPROP_BGCOLOR, clrGold);
       Sleep(200);
       }
     }
     if(sparam == "Откр. Бай"&&(bool)ObjectGetInteger(0, "Разрешить Откр.", OBJPROP_STATE)){
       if((bool)ObjectGetInteger(0,"Откр. Бай",OBJPROP_STATE)){
       ObjectSetString(0, "Откр. Бай",OBJPROP_TEXT, "Открываю: "+DoubleToString(lotsbuy3,dig));
       ObjectSetInteger(0,"Откр. Бай",OBJPROP_BGCOLOR, clrRed);
       ChartRedraw();
       Sleep(500);
       OtkrytBuy=true;
       ObjectSetInteger(0,"Откр. Бай",OBJPROP_STATE, false);
       ObjectSetInteger(0,"Откр. Бай",OBJPROP_BGCOLOR, clrMediumBlue);
       ObjectSetString(0, "Откр. Бай",OBJPROP_TEXT, "Открыть Бай");
       }
      }
     if(sparam == "Откр. Селл"&&(bool)ObjectGetInteger(0, "Разрешить Откр.", OBJPROP_STATE)){
       if((bool)ObjectGetInteger(0, "Откр. Селл", OBJPROP_STATE))
       {
       ObjectSetString(0, "Откр. Селл",OBJPROP_TEXT, "Открываю: "+DoubleToString(lotssell3,dig));
       ObjectSetInteger(0,"Откр. Селл",OBJPROP_BGCOLOR, clrRed);
       ChartRedraw();
       Sleep(500);
       OtkrytSell=true;
       ObjectSetInteger(0,"Откр. Селл",OBJPROP_STATE, false);
       ObjectSetInteger(0,"Откр. Селл",OBJPROP_BGCOLOR, clrGold);
       ObjectSetString(0, "Откр. Селл",OBJPROP_TEXT, "Открыть Селл");
       }
     }
  }           
}
//+------------------------Функции------------------------------------------+
//-----------------------------счетчик---------------------------------------------------------------------------------
void SumOrdB()
{
     smbuy=0;lotsbuy=0;profitbuy=0;openpricebuy=0; double lotstemp=0;
     for (cnt=0;cnt<OrdersTotal();cnt++)
    {
    if (OrderSelect(cnt,SELECT_BY_POS, MODE_TRADES) && OrderSymbol() == _Symbol && OrderType() == OP_BUY) 
      {
      smbuy+=OrderLots();lotstemp=OrderLots(); profitbuy+=OrderProfit()+OrderCommission()+OrderSwap();openpricebuy=OrderOpenPrice();
      if(lotsbuy<lotstemp)lotsbuy=lotstemp;
      }
    }
}
void SumOrdS()
{
     smsell=0;lotssell=0;profitsell=0;openpricesell=0; double lotstemp=0;
     for (cnt=0;cnt<OrdersTotal();cnt++)
    {
    if (OrderSelect(cnt,SELECT_BY_POS, MODE_TRADES) && OrderSymbol() == _Symbol && OrderType() == OP_SELL) 
      {
      smsell+=OrderLots();lotstemp=OrderLots(); profitsell+=OrderProfit()+OrderCommission()+OrderSwap();openpricesell=OrderOpenPrice();
      if(lotssell<lotstemp)lotssell=lotstemp;
      }
    }
}
//======================================================================================================================
                                int Total_B()                   
 {
   int j=0,r=0;
   for (r=0;r<OrdersTotal();r++) {
     if(OrderSelect(r,SELECT_BY_POS,MODE_TRADES) && OrderSymbol() == Symbol() && OrderType()==OP_BUY) j++;
   }   
 return(j); 
 }
//======================================================================================================================
                                int Total_S()
{
   int d=0,n;
   for (n=0;n<OrdersTotal();n++) {
     if(OrderSelect(n,SELECT_BY_POS,MODE_TRADES)  && OrderSymbol() == Symbol() && OrderType()==OP_SELL) d++;
   }    
 return(d);
  }     
//==============================открывашка==========
int Order_Open(int tip_ord, double lots, string komment, int magic, color ordcolor)
{  
   bool ord=false; double askbid=0;
   if(lots>0){
   ResetLastError();
   RefreshRates();
   if(tip_ord==OP_BUY)askbid=Ask;
   if(tip_ord==OP_SELL)askbid=Bid;
   if(IsTradeContextBusy())Sleep(500);
   if (IsTradeAllowed() == TRUE && IsTradeContextBusy()==false) {
       ord = OrderSend(_Symbol,tip_ord,NormalizeDouble(lots,dig),NormalizeDouble(askbid,Digits),slippage,0,0,komment,magic,0,ordcolor);
       if(!ord)GetLastError();
       }
   }
   return(ord);
   
}
//-------------------------------------------------------------   
                                    void closeBUYorders()
{
   
      while(Total_B()>0)
   { int ord=0;
   for (cnt=0;cnt<OrdersTotal();cnt++)
      {
      if(OrderSelect(cnt,SELECT_BY_POS, MODE_TRADES)&&OrderSymbol() == Symbol() && OrderType() == OP_BUY)
         {
          if (IsTradeAllowed() == TRUE) {
         RefreshRates();
         ord = OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),slippage*cu,clrBlue);
        }
        
         }
      }
   }
}

//======================================================================================================================
                                    void closeSELLorders()
{
  
      while(Total_S()>0)
   {int ord=0;
   for (cnt=0;cnt<OrdersTotal();cnt++)
      {
      if(OrderSelect(cnt,SELECT_BY_POS, MODE_TRADES)&&OrderSymbol() == Symbol() && OrderType() == OP_SELL)
      
         {
          if (IsTradeAllowed() == TRUE) {
         RefreshRates();
         ord = OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),slippage*cu,clrRed);
         }
         }
      }
   }
}
//-----------------
 void Text(string name, string text, int size, string font, int xd, int yd, color colT)
{
   ObjectCreate(name, OBJ_LABEL, 0,0,0);
   ObjectSetText(name, text, size, font);
   ObjectSet(name, OBJPROP_XDISTANCE, xd);
   ObjectSet(name, OBJPROP_YDISTANCE, yd);      
   ObjectSet(name, OBJPROP_COLOR, colT);
   ObjectSet(name, OBJPROP_BACK, false);

}
//=========================Кнопки=====================================
bool ButtonCreate(const string name="name", //имя кнопки
                  const int x=0,       // координата по оси X
                  const int y=0,       // координата по оси Y
                  const int xs=0,      //размер кнопки по оси X
                  const int ys=0,      //размер кнопки по оси Y
                  const string text="error",   // текст
                  const color clrtext=clrNONE,//цвет текста
                  const color clrbut=clrNONE  // цвет кнопки
                 )
{
 ResetLastError();
  if(ObjectFind(name)==-1){
   ObjectCreate(name,OBJ_BUTTON,0,0,0);
   //--- установим координаты кнопки
   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
//--- установим размер кнопки
   ObjectSetInteger(0,name,OBJPROP_XSIZE,xs);
   ObjectSetInteger(0,name,OBJPROP_YSIZE,ys);
//--- установим угол графика, относительно которого будут определяться координаты точки
   ObjectSetInteger(0,name,OBJPROP_CORNER,CORNER_LEFT_UPPER);
//--- установим текст
   ObjectSetString(0,name,OBJPROP_TEXT,text);
//--- установим шрифт текста
   ObjectSetString(0,name,OBJPROP_FONT,"Arial");
//--- установим размер шрифта
   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,10);
//--- установим цвет текста
   ObjectSetInteger(0,name,OBJPROP_COLOR,clrtext);
//--- установим цвет фона
   ObjectSetInteger(0,name,OBJPROP_BGCOLOR,clrbut);
//--- установим цвет границы
   ObjectSetInteger(0,name,OBJPROP_BORDER_COLOR,clrOrangeRed);
//--- отобразим на переднем (false) или заднем (true) плане
   ObjectSetInteger(0,name,OBJPROP_BACK,false);
//--- переведем кнопку в заданное состояние
   ObjectSetInteger(0,name,OBJPROP_STATE,false);
//--- включим (true) или отключим (false) режим перемещения кнопки мышью
   ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false);
   ObjectSetInteger(0,name,OBJPROP_SELECTED,false);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
   ObjectSetInteger(0,name,OBJPROP_HIDDEN,true);
   }
 return(true);
}
