Author: MrExpertForex
Orders Execution
Checks for the total of open ordersChecks for the total of closed ordersIt can change open orders parameters, due to possible stepping strategyIt automatically opens orders when conditions are reached
Miscellaneous
It plays sound alerts
0 Views
0 Downloads
0 Favorites
Salvation
//+------------------------------------------------------------------+
//|                                                    Salvation.mq4 |
//|                                            ÏÎ ÇÀÊÀÇÓ ôÓÐÑÎÂÀ À.Í.|
//|                                                 fan_2005@list.ru |
//|                                                         20.04.10 |
//+------------------------------------------------------------------+

#property copyright "MrExpertForex"
#property link      "ÏÎ ÇÀÊÀÇÓ ôÓÐÑÎÂÀ À.Í."

//ÄËß ÀÊÒÈÂÀÖÈÈ ÍÓÆÍÎ ÏÎÑÒÀÂÈÒÜ ÍÀ ÃÐÀÔÈÊ ÃÎÐÈÇÎÍÒÀËÜÍÓÞ ËÈÍÈÞ ÈËÈ ËÈÍÈÈ Ñ ÍÀÇÂÀÍÈÅÌ, Â ÖÈÔÐÎÂÎÌ ÂÛÐÀÆÅÍÈÈ (1,2,3,4,)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ÁËÎÊ ÄËß ÎÁÙÈÕ ÍÀÑÒÐÎÅÊ
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
extern string  ÁËÎÊ.0                = "ÁËÎÊ ÄËß ÎÁÙÈÕ ÍÀÑÒÐÎÅÊ";
//~~~~~~~~
extern int     ÌÀÃÈÊ.                = 200410;// ìàãè÷åñêèé íîìåð îðäåðîâ
//Ìîæåò èñïîëüçîâàòüñÿ êàê îïðåäåëÿåìûé ïîëüçîâàòåëåì èäåíòèôèêàòîð.
//äëÿ êàæäîãî ãðàôèêà çàäàâàéòå óíèêàëüíûé
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ÁËÎÊ ÄËß 1-ÎÉ ËÈÍÈÈ
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
extern string  ÁËÎÊ.1       = "ÁËÎÊ ÄËß 1-ÎÉ ËÈÍÈÈ";
//~~~~~~~~
extern string ÈÌß.ËÈÍÈÈ.1   = "1";// èìÿ ëèíèè, åñëè ðàâíî ïóñòàòå çíà÷èò íå èñïîëüçóåì
extern int    ÍÀÏÐÀÂËÅÍÈÅ.1 = 1;// â êàêóþ ñòîðîíó âûñòàâëÿòü îðäåðà 
                                // 1 ââåðõ, -1 âíèçå 
extern int    ÒÈÏ.1         = 3;// òèïû:
//2 - BUYLIMIT
//3 - SELLLIMIT
//4 - BUYSTOP
//5 - SELLSTOP
extern int    ÊÎËÈ×ÅÑÒÂÎ.1  = 5; 
extern int    ÎÒÑÒÓÏ.1      = 10;//â ïóíêòàõ
extern int    ØÀÃ.1         = 100;//â ïóíêòàõ
extern int    ÑÒÎÏ.ËÎÑÑ.1   = 0;//â ïóíêòàõ
extern int    ÒÅÉÊ.ÏÐÎÔÈÒ.1 = 150;//â ïóíêòàõ
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ÁËÎÊ ÄËß 2-ÎÉ ËÈÍÈÈ
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
extern string  ÁËÎÊ.2       = "ÁËÎÊ ÄËß 2-ÎÉ ËÈÍÈÈ";
//~~~~~~~~
extern string ÈÌß.ËÈÍÈÈ.2   = "2";// èìÿ ëèíèè, åñëè ðàâíî ïóñòàòå çíà÷èò íå èñïîëüçóåì
extern int    ÍÀÏÐÀÂËÅÍÈÅ.2 = -1;// â êàêóþ ñòîðîíó âûñòàâëÿòü îðäåðà 
                                // 1 ââåðõ, -1 âíèçå 
extern int    ÒÈÏ.2         = 5;// òèïû:
//2 - BUYLIMIT
//3 - BUYSTOP
//4 - SELLLIMIT
//5 - SELLSTOP
extern int    ÊÎËÈ×ÅÑÒÂÎ.2  = 5; 
extern int    ÎÒÑÒÓÏ.2      = 10;//â ïóíêòàõ
extern int    ØÀÃ.2         = 100;//â ïóíêòàõ
extern int    ÑÒÎÏ.ËÎÑÑ.2   = 0;//â ïóíêòàõ
extern int    ÒÅÉÊ.ÏÐÎÔÈÒ.2 = 150;//â ïóíêòàõ
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ÁËÎÊ ÄËß 3-ÎÉ ËÈÍÈÈ
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
extern string  ÁËÎÊ.3       = "ÁËÎÊ ÄËß 3-ÎÉ ËÈÍÈÈ";
//~~~~~~~~
extern string ÈÌß.ËÈÍÈÈ.3   = "";// èìÿ ëèíèè, åñëè ðàâíî ïóñòàòå çíà÷èò íå èñïîëüçóåì
extern int    ÍÀÏÐÀÂËÅÍÈÅ.3 = 1;// â êàêóþ ñòîðîíó âûñòàâëÿòü îðäåðà 
                                // 1 ââåðõ, -1 âíèçå 
extern int    ÒÈÏ.3         = 3;// òèïû:
//2 - BUYLIMIT
//3 - BUYSTOP
//4 - SELLLIMIT
//5 - SELLSTOP
extern int    ÊÎËÈ×ÅÑÒÂÎ.3  = 10; 
extern int    ÎÒÑÒÓÏ.3      = 10;//â ïóíêòàõ
extern int    ØÀÃ.3         = 100;//â ïóíêòàõ
extern int    ÑÒÎÏ.ËÎÑÑ.3   = 0;//â ïóíêòàõ
extern int    ÒÅÉÊ.ÏÐÎÔÈÒ.3 = 100;//â ïóíêòàõ
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ÁËÎÊ ÄËß 4-ÎÉ ËÈÍÈÈ
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
extern string  ÁËÎÊ.4       = "ÁËÎÊ ÄËß 4-ÎÉ ËÈÍÈÈ";
//~~~~~~~~
extern string ÈÌß.ËÈÍÈÈ.4   = "";// èìÿ ëèíèè, åñëè ðàâíî ïóñòàòå çíà÷èò íå èñïîëüçóåì
extern int    ÍÀÏÐÀÂËÅÍÈÅ.4 = 1;// â êàêóþ ñòîðîíó âûñòàâëÿòü îðäåðà 
                                // 1 ââåðõ, -1 âíèçå 
extern int    ÒÈÏ.4         = 4;// òèïû:
//2 - BUYLIMIT
//3 - BUYSTOP
//4 - SELLLIMIT
//5 - SELLSTOP
extern int    ÊÎËÈ×ÅÑÒÂÎ.4  = 5; 
extern int    ÎÒÑÒÓÏ.4      = 10;//â ïóíêòàõ
extern int    ØÀÃ.4         = 100;//â ïóíêòàõ
extern int    ÑÒÎÏ.ËÎÑÑ.4   = 0;//â ïóíêòàõ
extern int    ÒÅÉÊ.ÏÐÎÔÈÒ.4 = 100;//â ïóíêòàõ
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ÁËÎÊ ÄËß ÒÐÀËÀ ÎÒÊÐÛÒÕ ÎÐÄÅÐÎÂ ÍÀ BUY
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
extern string  ÁËÎÊ.5      = "ÁËÎÊ ÄËß ÒÐÀËÀ ÎÒÊÐÛÒÕ ÎÐÄÅÐÎÂ ÍÀ BUY";
//~~~~~~~~
extern bool ÒÐÀË.BUY       = false;//TRUE - âêëþ÷èòü, FALSE - âûêëþ÷èòü
extern int  ÒÐÀË.BUY.ÑÒÎÏ. = 15;//â ïóíêòàõ
extern int  ÒÐÀË.BUY.ØÀÃ.  = 1;//â ïóíêòàõ
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ÁËÎÊ ÄËß ÒÐÀËÀ ÎÒÊÐÛÒÕ ÎÐÄÅÐÎÂ ÍÀ SELL
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
extern string  ÁËÎÊ.6       = "ÁËÎÊ ÄËß ÒÐÀËÀ ÎÒÊÐÛÒÕ ÎÐÄÅÐÎÂ ÍÀ SELL";
//~~~~~~~~
extern bool ÒÐÀË.SELL       = false;//TRUE - âêëþ÷èòü, FALSE - âûêëþ÷èòü
extern int  ÒÐÀË.SELL.ÑÒÎÏ. = 15;//â ïóíêòàõ
extern int  ÒÐÀË.SELL.ØÀÃ.  = 1;//â ïóíêòàõ
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ÁËÎÊ ÄËß ÒÐÀËÀ ÎÒËÎÆÍÈÊÎÂ
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
extern string  ÁËÎÊ.7            = "ÁËÎÊ ÄËß ÒÐÀËÀ ÎÒËÎÆÍÈÊÎÂ";
//~~~~~~~~
extern bool ÒÐÀË.ÎÒËÎÆÍÈÊÈ.      = TRUE;//TRUE - âêëþ÷èòü, FALSE - âûêëþ÷èòü 
extern int  ÒÐÀË.ÎÒËÎÆÍÈÊÈ.ÑÒÎÏ. = 19;//â ïóíêòàõ
extern int  ÒÐÀË.ÎÒËÎÆÍÈÊÈ.ØÀÃ.  = 1;//â ïóíêòàõ
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ÁËÎÊ ÄËß ÎÐÄÅÐÎÂ
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
extern string  ÁËÎÊ.8    = "ÁËÎÊ ÄËß ÎÐÄÅÐÎÂ";
//~~~~~~~~  
//extern double ÎÁÚÅÌ.     = 0.02;// ðàçìåð ëîòà 
extern int    ÑËÈÏÏÅÄÆ.  = 0;//(íå âàæíûé) Ìàêñèìàëüíî äîïóñòèìîå îòêëîíåíèå öåíû äëÿ ðûíî÷íûõ îðäåðîâ (îðäåðîâ íà ïîêóïêó èëè ïðîäàæó).      
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ÁËÎÊ ÄËß ÄÎÏÎËÍÈÒÅËÜÍÎÉ 1-ÎÉ Ô-ÈÈ
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
extern string  ÁËÎÊ.9    = "ÁËÎÊ ÄËß ÄÎÏÎËÍÈÒÅËÜÍÎÉ 1-ÎÉ Ô-ÈÈ";
//~~~~~~~~  
extern double MARGIN_CALL_PERCENT_  = 30;// Óðîâåíü â %
extern int    MARGIN_CALL_COLOR_  = Blue;// öâåò ëèíèè 
extern int    MARGIN_CALL_STYLE_  = 0;// ñòèëü ëèíèè  
extern int    MARGIN_CALL_WIDTH_  = 3;// øèðèíà ëèíèè       
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ÁËÎÊ ÄËß ÄÎÏÎËÍÈÒÅËÜÍÎÉ 2-ÎÉ Ô-ÈÈ
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
extern string  ÁËÎÊ.10    = "ÁËÎÊ ÄËß ÄÎÏÎËÍÈÒÅËÜÍÎÉ 2-ÎÉ Ô-ÈÈ";
//~~~~~~~~  
extern double VOLUME_LOT_PERCENT_  = 0.1;// ÎÒÊÐÛÂÀÅÌÛÉ ËÎÒ Â % ÎÒ ÑÂÎÁÎÄÍÛÕ ÑÐÅÄÑÒÂ 
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ÁËÎÊ ÄËß ÄÎÏÎËÍÈÒÅËÜÍÎÉ 3-ÅÉ Ô-ÈÈ
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
extern string  ÁËÎÊ.11    = "ÁËÎÊ ÄËß ÄÎÏÎËÍÈÒÅËÜÍÎÉ 3-ÅÉ Ô-ÈÈ";
//~~~~~~~~  
extern string SOUND_  = "";//  
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//===========================================
int init()
//===========================================
{
 //<<<<<<<<<<<<<<
 //******************************************
 // ÄÎÏÎËÍÈÒÅËÜÍÀß 3ßß ÔÓÍÊÖÈß
 //******************************************1
 ALERT_OPEN_AN_CLOSE(SOUND_);
 //******************************************1 
 //>>>>>>>>>>>>>>
}
//===========================================

//000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

//===========================================
int start()
//===========================================
{
 //<<<<<<<<<<<<<<

 ÏÐÀÊÒÈÊÀ();

 //>>>>>>>>>>>>>>
}
//===========================================

//000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

//===========================================
int deinit()
//===========================================
{
 //<<<<<<<<<<<<<<
 
 //>>>>>>>>>>>>>>
}
//===========================================

//000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

//==========================================================================================================
void CONTROL_AT_MARGIN_CALL(string symbol, double level_the_equity, color color_1, int style_1, int width_1)
//==========================================================================================================
{
 //<<<<<<<<<<<<<<
 if(symbol == "")
 symbol = Symbol();
 //---
 double Equity_static = AccountEquity();
 double Equity = AccountEquity();  
 //---
 bool Create = false;
 bool Modify = false;
 bool Delete = false;
 //---
 double Lots = 0;
 double Delta = 0;
 //---
 double Profit_buy = 0;
 double Profit_sell = 0;
 //---
 double Value_point_minlot = MarketInfo(symbol, MODE_TICKVALUE) / (1.0 / MarketInfo(symbol, MODE_MINLOT));
 //---
 if(OrdersTotal()>0)
 {
  for(int i=0;i<OrdersTotal();i++) 
  {
   if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
   {
    if(OrderSymbol()==symbol)
    {
     if(OrderType()==OP_BUY)
     {
      Lots += OrderLots();
      //---
      Profit_buy += OrderProfit();
     } 
     //---
     if(OrderType()==OP_SELL)
     {
      Lots -= OrderLots();
      //---
      Profit_sell += OrderProfit();     
     } 
    }
   }
  }
 }
 //---
 if(ObjectFind("MARGIN CALL FOR "+symbol) == -1)
 if(Lots != 0)
 Create = true;
 //---
 if(ObjectFind("MARGIN CALL FOR "+symbol) > -1)
 if(Lots != 0)
 Modify = true; 
 //---
 if(Lots == 0)
 Delete = true;
 
 //************
 // OPERATIONS
 //************1
 if(Create)
 {
  Equity_static -= Profit_buy;
  Equity_static -= Profit_sell;
  //---
  Delta = (Equity - (Equity_static/100)*level_the_equity) / (Value_point_minlot*(MathAbs(Lots)/MarketInfo(symbol, MODE_MINLOT)));
  //---
  if(Lots > 0)
  {
   if(!ObjectCreate("MARGIN CALL FOR "+symbol, OBJ_HLINE, 0, Time[0], MarketInfo(symbol, MODE_BID) - Delta*MarketInfo(symbol, MODE_POINT)))
   Print("  !!!ÎØÈÁÊÀ: ÍÅ ÓÄÀËÎÑÜ ÑÎÇÄÀÒÜ ÎÁÚÅÊ ÄËß MARGIN CALL!!! ÎØÈÁÊÀ #",GetLastError());
  }
  //---
  if(Lots < 0)
  {
   if(!ObjectCreate("MARGIN CALL FOR "+symbol, OBJ_HLINE, 0, Time[0], MarketInfo(symbol, MODE_ASK) + Delta*MarketInfo(symbol, MODE_POINT)))
   Print("  !!!ÎØÈÁÊÀ: ÍÅ ÓÄÀËÎÑÜ ÑÎÇÄÀÒÜ ÎÁÚÅÊ ÄËß MARGIN CALL!!! ÎØÈÁÊÀ #",GetLastError());
  }
  //---
  ObjectSet("MARGIN CALL FOR "+symbol, OBJPROP_COLOR, color_1);
  ObjectSet("MARGIN CALL FOR "+symbol, OBJPROP_STYLE, style_1);
  ObjectSet("MARGIN CALL FOR "+symbol, OBJPROP_WIDTH, width_1);
 }
 //---
 if(Modify)
 {
  Equity_static -= Profit_buy;
  Equity_static -= Profit_sell;
  //---
  Delta = (Equity - (Equity_static/100)*level_the_equity) / (Value_point_minlot*(MathAbs(Lots)/MarketInfo(symbol, MODE_MINLOT)));
  //---
  Delta = NormalizeDouble(Delta, 0);
  //---
  if(Lots > 0)
  {
   if(!ObjectSet("MARGIN CALL FOR "+symbol, OBJPROP_PRICE1, MarketInfo(symbol, MODE_BID) - Delta*MarketInfo(symbol, MODE_POINT)))
   Print("  !!!ÎØÈÁÊÀ: ÍÅ ÓÄÀËÎÑÜ ÌÎÄÈÔÈÖÈÐÎÂÀÒÜ ÎÁÚÅÊ ÄËß MARGIN CALL!!! ÎØÈÁÊÀ #",GetLastError());
  }
  //---
  if(Lots < 0)
  {
   if(!ObjectSet("MARGIN CALL FOR "+symbol, OBJPROP_PRICE1, MarketInfo(symbol, MODE_ASK) + Delta*MarketInfo(symbol, MODE_POINT)))
   Print("  !!!ÎØÈÁÊÀ: ÍÅ ÓÄÀËÎÑÜ ÌÎÄÈÔÈÖÈÐÎÂÀÒÜ ÎÁÚÅÊ ÄËß MARGIN CALL!!! ÎØÈÁÊÀ #",GetLastError());
  }
 }
 //--- 
 if(Delete)
 {
  if(ObjectFind("MARGIN CALL FOR "+symbol) > -1)
  ObjectDelete("MARGIN CALL FOR "+symbol);
 } 
 //************1
 //>>>>>>>>>>>>>>
}
//==========================================================================================================

//000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

//=====================================================================
double LOT_PERCENT_AT_EQUITY(string symbol, double percent_for_open_)
//=====================================================================
{
 //<<<<<<<<<<<<<<
 if(symbol == "")
 symbol = Symbol();
 //---
 double Rezult;
 //---
 int Normalize = 0;
 //---
 if(MarketInfo(symbol, MODE_MINLOT) * 10 >= 1)
 Normalize = 1;
 //---
 if(MarketInfo(symbol, MODE_MINLOT) * 100 >= 1 && MarketInfo(symbol, MODE_MINLOT) * 100 < 10)
 Normalize = 2;
 //---
 Rezult = NormalizeDouble( ((AccountFreeMargin()/100.0) * percent_for_open_)  /  (MarketInfo(symbol, MODE_MARGINREQUIRED) / (1.0/MarketInfo(symbol, MODE_MINLOT))), Normalize);
 //---
 Rezult *= MarketInfo(symbol, MODE_MINLOT);
 //---
 if(Rezult < MarketInfo(symbol, MODE_MINLOT))
 {
  Rezult = MarketInfo(symbol, MODE_MINLOT);
  //---
  Print("   !!! ËÎÒ(%!!!) ÂÛÁÐÀÍ < ×ÅÌ ÌÈÍÈÌÀÜÍÎ ÄÎÏÓÑÒÈÌÛÉ, ÏÎÝÒÎÌÓ ÎÍ ÁÓÄÅÒ = ÌÈÍÈÌÀÜÍÎ ÄÎÏÓÑÒÈÌÎÌÓ");
 }
 //---
 if(Rezult > MarketInfo(symbol, MODE_MAXLOT))
 {
  Rezult = MarketInfo(symbol, MODE_MAXLOT);
  //---
  Print("   !!! ËÎÒ(%!!!) ÂÛÁÐÀÍ > ×ÅÌ ÌÀÊÑÈÌÀËÜÍÎ ÄÎÏÓÑÒÈÌÛÉ, ÏÎÝÒÎÌÓ ÎÍ ÁÓÄÅÒ = ÌÀÊÑÈÌÀËÜÍÎ ÄÎÏÓÑÒÈÌÎÌÓ");
 }
 //---
 return(Rezult);
 //>>>>>>>>>>>>>>
}
//========================================================================

//000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

//===========================================
void ALERT_OPEN_AN_CLOSE(string sound = "alert.wav")
//===========================================
{
 //<<<<<<<<<<<<<<
 int Type_execution = 0;
 //---
 static int Orderstotal; 
 //---
 static bool Many_call;
 //---
 if(!Many_call)
 {
  Many_call = true;
  //---
  Orderstotal = OrdersTotal();
  //---
  //Alert("ÇÂÎÍÎ×ÅÊ ÀÊÒÈÂÈÐÎÂÀÍ È ÃÎÒΠÎÏÎÂÅÙÀÒÜ!");
  //---
  return;
 } 
 //---
 if(Orderstotal < OrdersTotal())
 {
  if(OrderSelect(OrdersTotal()-1, SELECT_BY_POS, MODE_TRADES)) 
  {
   if(OrderType() == OP_BUY)
   {
    Type_execution = 1;
    //---
    Orderstotal = OrdersTotal();
   }
   //---
   if(OrderType() == OP_SELL)
   {
    Type_execution = 2;
    //---
    Orderstotal = OrdersTotal();
   } 
  }
 }
 //---
 if(Orderstotal > OrdersTotal())
 {
  if(OrderSelect(OrdersHistoryTotal()-1, SELECT_BY_POS, MODE_HISTORY)) 
  {
   if(OrderClosePrice() == OrderTakeProfit())
   {
    if(OrderType() == OP_BUY)
    {
     Type_execution = 3;
     //---
     Orderstotal = OrdersTotal();
    }
    //---
    if(OrderType() == OP_SELL)
    {
     Type_execution = 4;
     //---
     Orderstotal = OrdersTotal();
    }  
   } 
  }
 }
 //---
 if(Type_execution == 1)
 PlaySound(sound);
 //Alert("ÏÐÎÈÇÎØËÎ ÎÒÊÐÛÒÈÅ ===BUY===");
 //---
 if(Type_execution == 2)
 PlaySound(sound);
 //Alert("ÏÐÎÈÇÎØËÎ ÎÒÊÐÛÒÈÅ ===SELL===");
 //---
 if(Type_execution == 3)
 PlaySound(sound);
 //Alert("ÏÐÎÈÇÎØËÎ ÇÀÊÐÛÒÈÅ ÏÎ ÒÅÉÊ ÏÐÎÔÈÒÓ ===BUY===");
 //---
 if(Type_execution == 4)
 PlaySound(sound);
 //Alert("ÏÐÎÈÇÎØËÎ ÇÀÊÐÛÒÈÅ ÏÎ ÒÅÉÊ ÏÐÎÔÈÒÓ ===SELL===");
 //---
 if(Type_execution == 0)
 Orderstotal = OrdersTotal();
 //>>>>>>>>>>>>>>
}
//===========================================

//000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

//===========================================
bool ÏÐÀÊÒÈÊÀ()
//===========================================
{
 //<<<<<<<<<<<<<<
 //******************************************
 // ÄÎÏÎËÍÈÒÅËÜÍÀß 3ßß ÔÓÍÊÖÈß
 //******************************************1
 ALERT_OPEN_AN_CLOSE();
 //******************************************1 
 
 //******************************************
 // ÒÐÀËÞ ËÈÍÈÈ ÄËß ÎÒËÎÆÍÈÊÎÂ
 //******************************************1
 if(ÒÐÀË.ÎÒËÎÆÍÈÊÈ.)
 {
  ÒÐÀË_ËÈÍÈÈ(ÈÌß.ËÈÍÈÈ.1, ÒÐÀË.ÎÒËÎÆÍÈÊÈ.ÑÒÎÏ., ÒÐÀË.ÎÒËÎÆÍÈÊÈ.ØÀÃ.);
  ÒÐÀË_ËÈÍÈÈ(ÈÌß.ËÈÍÈÈ.2, ÒÐÀË.ÎÒËÎÆÍÈÊÈ.ÑÒÎÏ., ÒÐÀË.ÎÒËÎÆÍÈÊÈ.ØÀÃ.);
  ÒÐÀË_ËÈÍÈÈ(ÈÌß.ËÈÍÈÈ.3, ÒÐÀË.ÎÒËÎÆÍÈÊÈ.ÑÒÎÏ., ÒÐÀË.ÎÒËÎÆÍÈÊÈ.ØÀÃ.);
  ÒÐÀË_ËÈÍÈÈ(ÈÌß.ËÈÍÈÈ.4, ÒÐÀË.ÎÒËÎÆÍÈÊÈ.ÑÒÎÏ., ÒÐÀË.ÎÒËÎÆÍÈÊÈ.ØÀÃ.);
 }
 //******************************************1
 
 //******************************************
 // ÄÓÌÀÞ È ÄÅËÀÞ Â ÇÀÂÈÑÈÌÎÑÒÈ ÎÒ ÑÈÒÓÀÖÈÈ
 //******************************************1
 ÂÛÑÒÀÂËÅÍÈÅ_ÎÒËÎÆÍÈÊÎÂ(ÈÌß.ËÈÍÈÈ.1, ÌÀÃÈÊ., ÍÀÏÐÀÂËÅÍÈÅ.1, ÒÈÏ.1, ÊÎËÈ×ÅÑÒÂÎ.1, ÎÒÑÒÓÏ.1, ØÀÃ.1, ÑÒÎÏ.ËÎÑÑ.1, ÒÅÉÊ.ÏÐÎÔÈÒ.1);
 ÂÛÑÒÀÂËÅÍÈÅ_ÎÒËÎÆÍÈÊÎÂ(ÈÌß.ËÈÍÈÈ.2, ÌÀÃÈÊ., ÍÀÏÐÀÂËÅÍÈÅ.2, ÒÈÏ.2, ÊÎËÈ×ÅÑÒÂÎ.2, ÎÒÑÒÓÏ.2, ØÀÃ.2, ÑÒÎÏ.ËÎÑÑ.2, ÒÅÉÊ.ÏÐÎÔÈÒ.2);
 ÂÛÑÒÀÂËÅÍÈÅ_ÎÒËÎÆÍÈÊÎÂ(ÈÌß.ËÈÍÈÈ.3, ÌÀÃÈÊ., ÍÀÏÐÀÂËÅÍÈÅ.3, ÒÈÏ.3, ÊÎËÈ×ÅÑÒÂÎ.3, ÎÒÑÒÓÏ.3, ØÀÃ.3, ÑÒÎÏ.ËÎÑÑ.3, ÒÅÉÊ.ÏÐÎÔÈÒ.3);
 ÂÛÑÒÀÂËÅÍÈÅ_ÎÒËÎÆÍÈÊÎÂ(ÈÌß.ËÈÍÈÈ.4, ÌÀÃÈÊ., ÍÀÏÐÀÂËÅÍÈÅ.4, ÒÈÏ.4, ÊÎËÈ×ÅÑÒÂÎ.4, ÎÒÑÒÓÏ.4, ØÀÃ.4, ÑÒÎÏ.ËÎÑÑ.4, ÒÅÉÊ.ÏÐÎÔÈÒ.4);
 //******************************************1
 
 //******************************************
 // ÒÐÀËÞ ÂÑÅ ×ÒÎ ÌÎÆÍÎ ÒÐÀËÈÒÜ
 //******************************************1
 if(ÒÐÀË.BUY)
 TRAL_BUY(ÒÐÀË.BUY.ÑÒÎÏ., ÒÐÀË.BUY.ØÀÃ., ÌÀÃÈÊ.); 
 //---
 if(ÒÐÀË.SELL)
 TRAL_SELL(ÒÐÀË.SELL.ÑÒÎÏ., ÒÐÀË.SELL.ØÀÃ., ÌÀÃÈÊ.);
 //---
 //if(ÒÐÀË.ÎÒËÎÆÍÈÊÈ.)
 //{
  //TRAL_L_BUY(OP_BUYLIMIT,  ÒÐÀË.ÎÒËÎÆÍÈÊÈ.ÑÒÎÏ., ÒÐÀË.ÎÒËÎÆÍÈÊÈ.ØÀÃ., ÌÀÃÈÊ.);
  //TRAL_L_BUY(OP_BUYSTOP,   ÒÐÀË.ÎÒËÎÆÍÈÊÈ.ÑÒÎÏ., ÒÐÀË.ÎÒËÎÆÍÈÊÈ.ØÀÃ., ÌÀÃÈÊ.);
  //---
  //TRAL_L_SELL(OP_SELLLIMIT, ÒÐÀË.ÎÒËÎÆÍÈÊÈ.ÑÒÎÏ., ÒÐÀË.ÎÒËÎÆÍÈÊÈ.ØÀÃ., ÌÀÃÈÊ.);
  //TRAL_L_SELL(OP_SELLSTOP,  ÒÐÀË.ÎÒËÎÆÍÈÊÈ.ÑÒÎÏ., ÒÐÀË.ÎÒËÎÆÍÈÊÈ.ØÀÃ., ÌÀÃÈÊ.);
 //}
 //******************************************1
 
 //******************************************
 // ÄÎÏÎËÍÈÒÅËÜÍÀß 1Àß ÔÓÍÊÖÈß
 //******************************************1
 CONTROL_AT_MARGIN_CALL(Symbol(), MARGIN_CALL_PERCENT_, MARGIN_CALL_COLOR_, MARGIN_CALL_STYLE_, MARGIN_CALL_WIDTH_);
 //******************************************1
 //>>>>>>>>>>>>>>
}
//===========================================

//000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

//===========================================
bool ÄÅÉÑÒÂÈÅ_ÑÈÃÍÀËÜÍÎÃÎ_ÎÁÚÅÊÒÀ(string èìÿ)
//===========================================
{
 //<<<<<<<<<<<<<<
 if(ObjectFind(èìÿ) >= 0)
 {
  if(ObjectGet(èìÿ, OBJPROP_TIME1) == Time [0])
  {
   ObjectSet(èìÿ, OBJPROP_TIME1, Time [1]);
   //---
   return(TRUE);
  } 
 }
 //---
 return(FALSE);
 //>>>>>>>>>>>>>>
}
//===========================================

//000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

//==========================================================================================================================
bool ÂÛÑÒÀÂËÅÍÈÅ_ÎÒËÎÆÍÈÊÎÂ(string èìÿ_ëèíèè,int ìàãèê,int êóäà,int òèï,int êîëè÷åñòâî,double îòñòóï,double øàã,double ñòîï,double òåéê)
//==========================================================================================================================
{
 //<<<<<<<<<<<<<<
 
 //*********************************
 // ÏÐÎÂÅÐßÞ ÏÐÈÑÓÒÑÒÂÓÅÒ ËÈÍÈß
 //*********************************1
 if(èìÿ_ëèíèè == "")
 return(TRUE);
 //---
 if(ObjectFind(èìÿ_ëèíèè) < 0)
 {
  Print("    ËÈÍÈß ÄËß ÂÛÑÒÀÂËÅÍß, Ñ ÈÌÅÍÅÌ = "+èìÿ_ëèíèè+" = ÎÒÑÓÒÑÒÂÓÅÒ!");
  //---
  return(FALSE);
 }
 //*********************************1
 
 //*********************************
 // ÏÐÎÂÅÐßÞ ÒÈÏ ÂÛÑÒÀÂËßÅÌÎÃÎ ÎÐÄÅÐÀ
 //*********************************1
 if(òèï == OP_BUY || òèï == OP_SELL)
 {
  Print(" !!! ÒÈÏ ÂÛÑÒÀÂËßÅÌÎÃÎ ÎÐÄÅÐÀ ÍÅÊÎÐÐÅÊÒÅÍ");
  //---
  return(FALSE);
 }
 //*********************************1 
 
 //*********************************
 // ÏÎËÓ×ÀÞ ÈÍÔÎÐÌÀÖÈÞ Î ËÈÍÈÈ
 //*********************************1
 double Àêòèâíàÿ_öåíà = NormalizeDouble(ObjectGet(èìÿ_ëèíèè, OBJPROP_PRICE1), Digits); 
 double Öåíà_ëèíèè    = Àêòèâíàÿ_öåíà;
 //*********************************1
 
 //******************************************
 // ÑÀÌÎ ÂÛÑÒÀÂËÅÍÈÅ
 //******************************************1
 double Ñòîï;
 double Òåéê;
 //---
 double Íà÷àëî;
 //---
 if(êóäà >= 0)
 Íà÷àëî = Àêòèâíàÿ_öåíà + îòñòóï*Point; 
 else
 Íà÷àëî = Àêòèâíàÿ_öåíà - îòñòóï*Point;
 //---
 for(int b1=0;b1<êîëè÷åñòâî;b1++)
 { 
  if(êóäà >= 0)
  {
   Àêòèâíàÿ_öåíà = NormalizeDouble(Íà÷àëî + b1*øàã*Point, Digits);
   //---
   //if(Öåíà_ëèíèè < Bid)
   //{
    //if(Àêòèâíàÿ_öåíà >= Bid)
    //break;
   //}
  }
  else
  {
   Àêòèâíàÿ_öåíà = NormalizeDouble(Íà÷àëî - b1*øàã*Point, Digits);
   //---
   //if(Öåíà_ëèíèè > Bid)
   //{
    //if(Àêòèâíàÿ_öåíà <= Bid)
    //break;
   //}
  }
  //---
  if(òèï == OP_BUYSTOP || òèï == OP_SELLLIMIT)
  {
   if(Àêòèâíàÿ_öåíà < Bid)
   break;
  }
  //---
  if(òèï == OP_SELLSTOP || òèï == OP_BUYLIMIT)
  {
   if(Àêòèâíàÿ_öåíà >= Bid)
   break;
  }
  //---
  if(òèï == OP_BUYLIMIT || òèï == OP_BUYSTOP)
  {
   Ñòîï = NormalizeDouble(Àêòèâíàÿ_öåíà - ñòîï*Point, Digits);
   Òåéê = NormalizeDouble(Àêòèâíàÿ_öåíà + òåéê*Point, Digits); 
  } 
  //---
  if(òèï == OP_SELLLIMIT || òèï == OP_SELLSTOP)
  {
   Ñòîï = NormalizeDouble(Àêòèâíàÿ_öåíà + ñòîï*Point, Digits);
   Òåéê = NormalizeDouble(Àêòèâíàÿ_öåíà - òåéê*Point, Digits); 
  } 
  //---
  if(ñòîï == 0)
  Ñòîï = 0;
  //---
  if(òåéê == 0)
  Òåéê = 0;

  //****************************
  // ÏÐÎÂÅÐßÞ 
  //****************************2
  double Öåíà_1;
  //---
  bool Ïðèñóòñòâèå_äóáëÿæà = false;
  //---
  bool Ïðèñóòñòâèå_ñâîåãî_îðäåðà_1 = false;
  //---
  int  Ñâîé_îðäåð_1 = 0;
  //---
  if(OrdersTotal() > 0)
  {
   for(int b2=0;b2<OrdersTotal();b2++) 
   {
    if(OrderSelect(b2, SELECT_BY_POS, MODE_TRADES)) 
    {
     if( OrderSymbol()==Symbol() && OrderMagicNumber()==ìàãèê && OrderType()==òèï ) 
     {
      if(NormalizeDouble(OrderOpenPrice(), Digits) == Àêòèâíàÿ_öåíà)
      {
       Ïðèñóòñòâèå_äóáëÿæà = true;             
      }
      //---
      if(OrderComment() == ("("+èìÿ_ëèíèè+")(#"+b1+")"))
      {
       Ïðèñóòñòâèå_ñâîåãî_îðäåðà_1 = true;
       //---
       Ñâîé_îðäåð_1 = b2;
       //---
       break;
      }
     } 
    }
   }
  }
  //****************************2
  
  //****************************
  // ÇÀÍßÒÎ
  //****************************2
  if(!Ïðèñóòñòâèå_ñâîåãî_îðäåðà_1)
  if(Ïðèñóòñòâèå_äóáëÿæà)
  continue;
  //****************************2

  int Ticket;
  bool Ticket_1;
 
  //****************************
  // ÏÐÈÑÓÒÑÒÂÈÅ
  //****************************2
  if(Ïðèñóòñòâèå_ñâîåãî_îðäåðà_1)
  {  
   if(OrderSelect(Ñâîé_îðäåð_1, SELECT_BY_POS, MODE_TRADES)) 
   {
    if(NormalizeDouble(OrderOpenPrice(), Digits) != Àêòèâíàÿ_öåíà)
    {
     //if(Ñòîï == 0)
     //Ñòîï = OrderStopLoss();
     //---
     //if(Òåéê == 0)
     //Òåéê = OrderTakeProfit();
     //---
     Ticket_1 = OrderModify(OrderTicket(), Àêòèâíàÿ_öåíà, Ñòîï, Òåéê, 0);
     //---         
     if(!Ticket_1)
     {
      Print("Àêòèâíàÿ_öåíà= "+Àêòèâíàÿ_öåíà+"; Ñòîï="+Ñòîï+"; Òåéê="+Òåéê );
      //--- 
      Print("     !!!ÍÅ ÓÄÀËÎÑÜ ÇÀÒÐÀËÈÒÜ "+òèï+" #"+b1+"!!!");
      Print("     !!!ÎØÈÁÊÀ = "+ERROR(GetLastError())+"!!!");
     }
    }
   } 
  }
  //****************************2
  
  //****************************
  // ÏÎËÍÎÅ ÎÒÑÓÒÑÒÂÈÅ
  //****************************2
  if(!Ïðèñóòñòâèå_ñâîåãî_îðäåðà_1)
  if(!Ïðèñóòñòâèå_äóáëÿæà)
  {
   Ticket = OrderSend(Symbol(), òèï, LOT_PERCENT_AT_EQUITY(Symbol(), VOLUME_LOT_PERCENT_),
                      Àêòèâíàÿ_öåíà, ÑËÈÏÏÅÄÆ.,
                      Ñòîï,
                      Òåéê,
                      "("+èìÿ_ëèíèè+")(#"+b1+")",
                      ìàãèê);                    
   //---
   //Print("OPEN= "+"("+èìÿ_ëèíèè+")(#"+b1+")");
   //---
   if(Ticket < 0)
   {
    Print(b1, "!!!!!  ÎØÈÁÊÀ ÂÛÑÒÀÂËÅÍÈß "+òèï+"; ÎØÈÁÊÀ = ", ERROR(GetLastError()));
    //---
    return(FALSE);
   }
  }
  //****************************2

 }
 //---
 return(TRUE); 
 //******************************************1
 //>>>>>>>>>>>>>>
}
//==========================================================================================================================

//000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

//*********************
// ÒÐÀË ËÈÍÈÈ     
//*********************1
//====================================================================
bool ÒÐÀË_ËÈÍÈÈ(string èìÿ_ëèíèè,double ñòîï,double øàã)
//====================================================================
{ 
 //*********************************
 // ÏÐÎÂÅÐßÞ ÏÐÈÑÓÒÑÒÂÓÅÒ ËÈÍÈß
 //*********************************1
 if(èìÿ_ëèíèè == "")
 return(TRUE);
 //---
 if(ObjectFind(èìÿ_ëèíèè) < 0)
 {
  Print("   ËÈÍÈß, ÊÎÒÎÐÀß ÄÎËÆÍÀ ÒÐÀËÈÒÑß, Ñ ÈÌÅÍÅÌ = "+èìÿ_ëèíèè+" = ÎÒÑÓÒÑÒÂÓÅÒ!");
  //---
  return(FALSE);
 }
 //*********************************1
 
 //************************************
 // ËÎÂËß ÎØÈÁÎÊ      
 //************************************1
 if(ñòîï < MarketInfo(Symbol(),MODE_STOPLEVEL))
 {
  Print("    !!!!!ÑÒÎÏ ÄËß ËÈÍÈÈ, ÊÎÒÎÐÀß ÄÎËÆÍÀ ÒÐÀËÈÒÑß, Ñ ÈÌÅÍÅÌ = "+èìÿ_ëèíèè+", ÌÀËÅÍÜÊÈÉ(ÌÈÍÈÌÓÌ ÄÎËÆÍÎ ÁÛÒÜ = "+MarketInfo(Symbol(),MODE_STOPLEVEL)+")!!!!!");
  Print("    !!!!!ÍÅ ÌÎÃÓ ÒÐÀËÈÒÜ ËÈÍÈÞ Ñ ÈÌÅÍÅÌ = "+èìÿ_ëèíèè+"!!!!!");
  //---
  return(FALSE);
 }
 //************************************1
 
 //************************************
 // ÍÎÐÌÈÐÓÞ      
 //************************************1
 ñòîï = NormalizeDouble(ñòîï*Point,  Digits);
 øàã  = NormalizeDouble(øàã*Point,  Digits);
 //************************************1
 
 //*****************************
 // ÏÅÐÅÌÅÙÀÞ ÏÐÈ ÍÅÎÁÕÎÄÈÌÎÑÒÈ
 //*****************************1
 double Price;
 
 //*****************
 // ÍÈÆÅ ÖÅÍÛ 
 //*****************2
 if(ObjectGet(èìÿ_ëèíèè, OBJPROP_PRICE1) < Bid)
 {
  if( (Bid - ObjectGet(èìÿ_ëèíèè, OBJPROP_PRICE1)) > ñòîï )
  {
   if( (ObjectGet(èìÿ_ëèíèè, OBJPROP_PRICE1) + øàã) < (Bid - ñòîï) )
   {
    Price = Bid - ñòîï;
    //---
    if(ObjectSet(èìÿ_ëèíèè, OBJPROP_PRICE1, Price))
    {
     return(TRUE);
    }
    else
    {
     Print("    !!!ËÈÍÈß, Ñ ÈÌÅÍÅÌ = "+èìÿ_ëèíèè+", ÍÅÇÀÒÐÀËÈËÀÑÜ!!!");
     Print("    ÂÎÇÌÎÆÍÀß ÎØÈÁÊÀ = "+MarketInfo(Symbol(),MODE_STOPLEVEL));
     //---
     return(FALSE);
    }  
   }
  }
 }  
 //*****************2
     
 //*****************
 // ÂÛØÅ ÖÅÍÛ 
 //*****************2
 if(ObjectGet(èìÿ_ëèíèè, OBJPROP_PRICE1) > Bid)
 {
  if( (ObjectGet(èìÿ_ëèíèè, OBJPROP_PRICE1) - Bid) > ñòîï )
  {
   if( (ObjectGet(èìÿ_ëèíèè, OBJPROP_PRICE1) - øàã) > (Bid + ñòîï) )
   {
    Price = Bid + ñòîï;
    //---
    if(ObjectSet(èìÿ_ëèíèè, OBJPROP_PRICE1, Price))
    {
     return(TRUE);
    }
    else
    {
     Print("    !!!ËÈÍÈß, Ñ ÈÌÅÍÅÌ = "+èìÿ_ëèíèè+", ÍÅÇÀÒÐÀËÈËÀÑÜ!!!");
     Print("    ÂÎÇÌÎÆÍÀß ÎØÈÁÊÀ = "+MarketInfo(Symbol(),MODE_STOPLEVEL));
     //---
     return(FALSE);
    }  
   }
  }
 }      
 //*****************2
 
 //*****************************1
}
//=========================================================
//*******************1

//00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 
//*******************
// ÒÐÀË BUY      
//*******************1
//==========================================================
void TRAL_BUY(double ñòîï,double øàã,int ìàãèê,color öâåò = Blue)  
//==========================================================
{ 
 //************************************
 // ËÎÂËß ÎØÈÁÎÊ      
 //************************************2
 if(ñòîï < MarketInfo(Symbol(),MODE_STOPLEVEL))
 {
  Print("    !!!!!ÑÒÎÏ ÄËß ÒÐÀËÀ ÌÀËÅÍÜÊÈÉ(ÌÈÍÈÌÓÌ ÄÎËÆÍÎ ÁÛÒÜ = "+MarketInfo(Symbol(),MODE_STOPLEVEL)+")!!!!!");
  Print("    !!!!!ÍÅ ÌÎÃÓ ÒÐÀËÈÒÜ BUY!!!!!");
 }
 //************************************2
 
 //************************************
 // ÍÎÐÌÈÐÓÞ      
 //************************************2
 ñòîï = NormalizeDouble(ñòîï*Point, Digits);
 øàã  = NormalizeDouble(øàã*Point,  Digits);
 //************************************2
 
 for(int i=0;i<OrdersTotal();i++) 
 {
  if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
  {
   if(OrderSymbol()==Symbol() && OrderMagicNumber()==ìàãèê)//ÑÐÀÂÍÅÍÈÅ
   {
    if(OrderType()==OP_BUY)
    {
     if( (Bid - OrderOpenPrice()) > ñòîï )
     {
      if( ((OrderStopLoss() + øàã) < (Bid - ñòîï))||(OrderStopLoss() == 0) )
      {
       double Stop;
       bool Ticket;
       //---
       Stop = Bid - ñòîï;
       //---
       Ticket = OrderModify(OrderTicket(), OrderOpenPrice(), Stop, OrderTakeProfit(), 0, öâåò);
       //---     
       if(!Ticket)
       { 
        Print("     !!!ÍÅ ÓÄÀËÎÑÜ ÇÀÒÐÀËÈÒÜ BUY #"+i+"!!!");
        Print("     !!!ÎØÈÁÊÀ = "+ERROR(GetLastError())+"!!!");
       }               
      }               
     }       
    }
   }
  }
 }
} 
//=========================================================
//*******************1
     
//00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 
//*******************
// ÒÐÀË SELL      
//*******************1
//=========================================================
void TRAL_SELL(double ñòîï,double øàã,int ìàãèê,color öâåò = Red)  
//=========================================================
{ 
 //************************************
 // ËÎÂËß ÎØÈÁÎÊ      
 //************************************2
 if(ñòîï < MarketInfo(Symbol(),MODE_STOPLEVEL))
 {
  Print("    !!!!!ÑÒÎÏ ÄËß ÒÐÀËÀ ÌÀËÅÍÜÊÈÉ(ÌÈÍÈÌÓÌ ÄÎËÆÍÎ ÁÛÒÜ = "+MarketInfo(Symbol(),MODE_STOPLEVEL)+")!!!!!");
  Print("    !!!!!ÍÅ ÌÎÃÓ ÒÐÀËÈÒÜ SELL!!!!!");
 }
 //************************************2
 
 //************************************
 // ÍÎÐÌÈÐÓÞ      
 //************************************2
 ñòîï = NormalizeDouble(ñòîï*Point, Digits);
 øàã  = NormalizeDouble(øàã*Point,  Digits);
 //************************************2
 
 for(int i=0;i<OrdersTotal();i++) 
 {
  if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
  {
   if(OrderSymbol()==Symbol() && OrderMagicNumber()==ìàãèê)//ÑÐÀÂÍÅÍÈÅ
   {
    if(OrderType()==OP_SELL)
    {
     if( (OrderOpenPrice() - Ask) > ñòîï )
     {
      if( ((OrderStopLoss() - øàã) > (Ask + ñòîï))||(OrderStopLoss() == 0) )
      {
       double Stop;
       bool Ticket;
       //---
       Stop = Ask + ñòîï;
       //---
       Ticket = OrderModify(OrderTicket(), OrderOpenPrice(), Stop, OrderTakeProfit(), 0, öâåò);
       //---     
       if(!Ticket)
       { 
        Print("     !!!ÍÅ ÓÄÀËÎÑÜ ÇÀÒÐÀËÈÒÜ SELL #"+i+"!!!");
        Print("     !!!ÎØÈÁÊÀ = "+ERROR(GetLastError())+"!!!");
       }               
      }               
     }       
    }
   }
  }
 }
}
//=========================================================
//*******************1
     
//00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

//*********************
// ÒÐÀË BUY ÎÒËÎÆÍÈÊÎÂ      
//*********************1
//====================================================================
void TRAL_L_BUY(int òèï,double ñòîï,double øàã,int ìàãèê,color öâåò = Blue)  
//====================================================================
{ 
 //************************************
 // ËÎÂËß ÎØÈÁÎÊ      
 //************************************2
 if(ñòîï < MarketInfo(Symbol(),MODE_STOPLEVEL))
 {
  Print("    !!!!!ÑÒÎÏ ÄËß ÒÐÀËÀ ÎÒËÎÆÍÈÊÎÂ BUY ÌÀËÅÍÜÊÈÉ(ÌÈÍÈÌÓÌ ÄÎËÆÍÎ ÁÛÒÜ = "+MarketInfo(Symbol(),MODE_STOPLEVEL)+")!!!!!");
  Print("    !!!!!ÍÅ ÌÎÃÓ ÒÐÀËÈÒÜ ÎÒËÎÆÍÈÊÎÂ BUY!!!!!");
  //---
  return(FALSE);
 }
 //************************************2

 //************************************
 // ÍÎÐÌÈÐÓÞ      
 //************************************2
 ñòîï = NormalizeDouble(ñòîï*Point,  Digits);
 øàã  = NormalizeDouble(øàã*Point,  Digits);
 //************************************2

 for(int i=0;i<OrdersTotal();i++) 
 {
  if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
  {
   if(OrderSymbol()==Symbol() && OrderMagicNumber()==ìàãèê)
   {
    double Price;
    double Stop;
    double Take;
    //---
    bool Ticket;
      
    //*****************
    // ÒÐÀË BUYLIMIT  
    //*****************1
    if(OrderType()==òèï)
    if(OrderType()==OP_BUYLIMIT)
    {
     //*****************
     // ÍÈÆÅ ÖÅÍÛ 
     //*****************2
     if(OrderOpenPrice() < Bid)
     {
      if( (Bid - OrderOpenPrice()) > ñòîï )
      {
       if( (OrderOpenPrice() + øàã) < (Bid - ñòîï) )
       {
        Price = Bid - ñòîï;
        //---
        Stop = Price - (OrderOpenPrice()  - OrderStopLoss());
        Take = Price + (OrderTakeProfit() - OrderOpenPrice());
        //---
        if(OrderStopLoss() == 0)
        Stop = OrderStopLoss();
        //---
        if(OrderTakeProfit() == 0)
        Take = OrderTakeProfit();
        //---
        Ticket = OrderModify(OrderTicket(), Price, Stop, Take, 0, öâåò);
        //---     
        if(!Ticket)
        { 
         Print("     !!!ÍÅ ÓÄÀËÎÑÜ ÇÀÒÐÀËÈÒÜ BUYLIMIT #"+i+"!!!");
         Print("     !!!ÎØÈÁÊÀ = "+ERROR(GetLastError())+"!!!");
        }               
       }               
      }       
     }
     //*****************2
     
     //*****************
     // ÂÛØÅ ÖÅÍÛ 
     //*****************2
     if(OrderOpenPrice() > Bid)
     {
      if( (OrderOpenPrice() - Bid) > ñòîï )
      {
       if( (OrderOpenPrice() - øàã) > (Bid + ñòîï) )
       {
        Price = Bid + ñòîï;
        //---
        Stop = Price - (OrderOpenPrice()  - OrderStopLoss());
        Take = Price + (OrderTakeProfit() - OrderOpenPrice());
        //---
        if(OrderStopLoss() == 0)
        Stop = OrderStopLoss();
        //---
        if(OrderTakeProfit() == 0)
        Take = OrderTakeProfit();
        //---
        Ticket = OrderModify(OrderTicket(), Price, Stop, Take, 0, öâåò);
        //---     
        if(!Ticket)
        { 
         Print("     !!!ÍÅ ÓÄÀËÎÑÜ ÇÀÒÐÀËÈÒÜ BUYLIMIT #"+i+"!!!");
         Print("     !!!ÎØÈÁÊÀ = "+ERROR(GetLastError())+"!!!");
        }               
       }               
      }       
     }
     //*****************2
     
    } 
    //*****************1
    
    //*****************
    // ÒÐÀË BUYSTOP  
    //*****************1
    if(OrderType()==òèï)
    if(OrderType()==OP_BUYSTOP)
    {
    
     //*****************
     // ÂÛØÅ ÖÅÍÛ 
     //*****************2
     if(OrderOpenPrice() > Bid)
     {
      if( (OrderOpenPrice() - Bid) > ñòîï )
      {
       if( (OrderOpenPrice() - øàã) > (Bid + ñòîï) )
       {
        Price = Bid + ñòîï;
        //---
        Stop = Price - (OrderOpenPrice()  - OrderStopLoss());
        //---
        Take = Price + (OrderTakeProfit() - OrderOpenPrice());
        //---
        if(OrderStopLoss() == 0)
        Stop = OrderStopLoss();
        //---
        if(OrderTakeProfit() == 0)
        Take = OrderTakeProfit();
        //---
        if(OrderStopLoss() == 0)
        Stop = OrderStopLoss();
        //---
        if(OrderTakeProfit() == 0)
        Take = OrderTakeProfit();
        //---
        Ticket = OrderModify(OrderTicket(), Price, Stop, Take, 0, öâåò);
        //---     
        if(!Ticket)
        { 
         Print("     !!!ÍÅ ÓÄÀËÎÑÜ ÇÀÒÐÀËÈÒÜ BUYSTOP #"+i+"!!!");
         Print("     !!!ÎØÈÁÊÀ = "+ERROR(GetLastError())+"!!!");
        }               
       }               
      }
     } 
     //*****************2   
     
     //*****************
     // ÍÈÆÅ ÖÅÍÛ 
     //*****************2
     if(OrderOpenPrice() < Bid)
     { 
      if( (Bid - OrderOpenPrice()) > ñòîï )
      {
       if( (OrderOpenPrice() + øàã) < (Bid - ñòîï) )
       {
        Price = Bid - ñòîï;
        //---
        Stop = Price - (OrderOpenPrice()  - OrderStopLoss());
        Take = Price + (OrderTakeProfit() - OrderOpenPrice());
        //---
        if(OrderStopLoss() == 0)
        Stop = OrderStopLoss();
        //---
        if(OrderTakeProfit() == 0)
        Take = OrderTakeProfit();
        //---
        Ticket = OrderModify(OrderTicket(), Price, Stop, Take, 0, öâåò);
        //---     
        if(!Ticket)
        { 
         Print("     !!!ÍÅ ÓÄÀËÎÑÜ ÇÀÒÐÀËÈÒÜ BUYSTOP #"+i+"!!!");
         Print("     !!!ÎØÈÁÊÀ = "+ERROR(GetLastError())+"!!!");
        }               
       }               
      }
     } 
     //*****************2  
     
    }
    //*****************1
    
   }
  }
 }
} 
//=========================================================
//*******************1
     
//00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 
//*******************
// ÒÐÀË SELL ÎÒËÎÆÍÈÊÎÂ     
//*******************1
//====================================================================
void TRAL_L_SELL(int òèï,double ñòîï,double øàã,int ìàãèê,color öâåò = Red)  
//====================================================================
{ 
 //************************************
 // ËÎÂËß ÎØÈÁÎÊ      
 //************************************2
 if(ñòîï < MarketInfo(Symbol(),MODE_STOPLEVEL))
 {
  Print("    !!!!!ÑÒÎÏ ÄËß ÒÐÀËÀ ÎÒËÎÆÍÈÊÎÂ SELL ÌÀËÅÍÜÊÈÉ(ÌÈÍÈÌÓÌ ÄÎËÆÍÎ ÁÛÒÜ = "+MarketInfo(Symbol(),MODE_STOPLEVEL)+")!!!!!");
  Print("    !!!!!ÍÅ ÌÎÃÓ ÒÐÀËÈÒÜ ÎÒËÎÆÍÈÊÎÂ SELL!!!!!");
 }
 //************************************2
 
 //************************************
 // ÍÎÐÌÈÐÓÞ      
 //************************************2
 ñòîï = NormalizeDouble(ñòîï*Point, Digits);
 øàã  = NormalizeDouble(øàã*Point,  Digits);
 //************************************2
 
 for(int i=0;i<OrdersTotal();i++) 
 {
  if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
  {
   if(OrderSymbol()==Symbol() && OrderMagicNumber()==ìàãèê)
   {
    double Price;
    double Stop;
    double Take;
    //---
    bool Ticket;
    
    //*****************
    // ÒÐÀË SELLLIMIT  
    //*****************1
    if(OrderType()==òèï)
    if(OrderType()==OP_SELLLIMIT)
    {
     //*****************
     // ÂÛØÅ ÖÅÍÛ 
     //*****************2
     if(OrderOpenPrice() > Ask)
     {
      if( (OrderOpenPrice() - Ask) > ñòîï )
      {
       if( (OrderOpenPrice() - øàã) > (Ask + ñòîï) )
       { 
        Price = Ask + ñòîï;
        //---
        Stop = Price + (OrderStopLoss()  - OrderOpenPrice());
        Take = Price - (OrderOpenPrice() - OrderTakeProfit());
        //---
        if(OrderStopLoss() == 0)
        Stop = OrderStopLoss();
        //---
        if(OrderTakeProfit() == 0)
        Take = OrderTakeProfit();
        //---
        Ticket = OrderModify(OrderTicket(), Price, Stop, Take, 0, öâåò);
        //---     
        if(!Ticket)
        { 
         Print("     !!!ÍÅ ÓÄÀËÎÑÜ ÇÀÒÐÀËÈÒÜ SELLLIMIT #"+i+"!!!");
         Print("     !!!ÎØÈÁÊÀ = "+ERROR(GetLastError())+"!!!");
        }               
       }               
      } 
     }
     //*****************2 
     
     //*****************
     // ÍÈÆÅ ÖÅÍÛ 
     //*****************2
     if(OrderOpenPrice() < Ask)
     { 
      if( (Ask - OrderOpenPrice()) > ñòîï )
      {
       if( (OrderOpenPrice() + øàã) < (Ask - ñòîï) )
       {
        Price = Ask - ñòîï;
        //---
        Stop = Price + (OrderStopLoss()  - OrderOpenPrice());
        Take = Price - (OrderOpenPrice() - OrderTakeProfit());
        //---
        if(OrderStopLoss() == 0)
        Stop = OrderStopLoss();
        //---
        if(OrderTakeProfit() == 0)
        Take = OrderTakeProfit();
        //---
        Ticket = OrderModify(OrderTicket(), Price, Stop, Take, 0, öâåò);
        //---     
        if(!Ticket)
        { 
         Print("     !!!ÍÅ ÓÄÀËÎÑÜ ÇÀÒÐÀËÈÒÜ SELLLIMIT #"+i+"!!!");
         Print("     !!!ÎØÈÁÊÀ = "+ERROR(GetLastError())+"!!!");
        }               
       }               
      } 
     }
     //*****************2       
    }
    //*****************1
    
    //*****************
    // ÒÐÀË SELLSTOP  
    //*****************1
    if(OrderType()==òèï)
    if(OrderType()==OP_SELLSTOP)
    {
     //*****************
     // ÍÈÆÅ ÖÅÍÛ 
     //*****************2
     if(OrderOpenPrice() < Ask)
     { 
      if( (Ask - OrderOpenPrice()) > ñòîï )
      {
       if( (OrderOpenPrice() + øàã) < (Ask - ñòîï) )
       {
        Price = Ask - ñòîï;
        //---
        Stop = Price + (OrderStopLoss()  - OrderOpenPrice());
        Take = Price - (OrderOpenPrice() - OrderTakeProfit());
        //---
        if(OrderStopLoss() == 0)
        Stop = OrderStopLoss();
        //---
        if(OrderTakeProfit() == 0)
        Take = OrderTakeProfit();
        //---
        Ticket = OrderModify(OrderTicket(), Price, Stop, Take, 0, öâåò);
        //---     
        if(!Ticket)
        { 
         Print("     !!!ÍÅ ÓÄÀËÎÑÜ ÇÀÒÐÀËÈÒÜ SELLSTOP #"+i+"!!!");
         Print("     !!!ÎØÈÁÊÀ = "+ERROR(GetLastError())+"!!!");
        }               
       }               
      }
     }
     //*****************2 
     
     //*****************
     // ÂÛØÅ ÖÅÍÛ 
     //*****************2
     if(OrderOpenPrice() > Ask)
     {
      if( (OrderOpenPrice() - Ask) > ñòîï )
      {
       if( (OrderOpenPrice() - øàã) > (Ask + ñòîï) )
       { 
        Price = Ask + ñòîï;
        //--- 
        //---
        Stop = Price + (OrderStopLoss()  - OrderOpenPrice());
        Take = Price - (OrderOpenPrice() - OrderTakeProfit());
        //---
        if(OrderStopLoss() == 0)
        Stop = OrderStopLoss();
        //---
        if(OrderTakeProfit() == 0)
        Take = OrderTakeProfit();
        //---
        Ticket = OrderModify(OrderTicket(), Price, Stop, Take, 0, öâåò);
        //---     
        if(!Ticket)
        { 
         Print("     !!!ÍÅ ÓÄÀËÎÑÜ ÇÀÒÐÀËÈÒÜ SELLSTOP #"+i+"!!!");
         Print("     !!!ÎØÈÁÊÀ = "+ERROR(GetLastError())+"!!!");
        }               
       }               
      }
     }
     //*****************2       
    }
    //*****************1
   }
  }
 }
} 
//====================================================================
//*******************1
     
//00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 
//**************************
// ÏÎËÓ×ÅÍÈÅ ÒÅÊÑÒÀ ÎØÈÁÊÈ
//**************************1
//==============================================================
string ERROR(int error_code)
//==============================================================
{
   string error_string;
//----
   switch(error_code)
     {
      //---- Êîäû îøèáîê, âîçâðàùàåìûå òîðãîâûì ñåðâåðîì:
      case 0:   error_string="Íåò îøèáîê";                                                     break;
      case 1:   error_string="Íåò îøèáêè, íî ðåçóëüòàò íåèçâåñòåí";                            break;
      case 2:   error_string="Îáùàÿ îøèáêà";                                                   break;
      case 3:   error_string="Íåïðàâèëüíûå ïàðàìåòðû";                                         break;
      case 4:   error_string="Òîðãîâûé ñåðâåð çàíÿò";                                          break;
      case 5:   error_string="Ñòàðàÿ âåðñèÿ êëèåíòñêîãî òåðìèíàëà";                            break;
      case 6:   error_string="Íåò ñâÿçè ñ òîðãîâûì ñåðâåðîì";                                  break;
      case 7:   error_string="Íåäîñòàòî÷íî ïðàâ";                                              break;
      case 8:   error_string="Ñëèøêîì ÷àñòûå çàïðîñû";                                         break;
      case 9:   error_string="Íåäîïóñòèìàÿ îïåðàöèÿ íàðóøàþùàÿ ôóíêöèîíèðîâàíèå ñåðâåðà";      break;
      case 64:  error_string="Ñ÷åò çàáëîêèðîâàí";                                              break;
      case 65:  error_string="Íåïðàâèëüíûé íîìåð ñ÷åòà";                                       break;
      case 128: error_string="Èñòåê ñðîê îæèäàíèÿ ñîâåðøåíèÿ ñäåëêè";                          break;
      case 129: error_string="Íåïðàâèëüíàÿ öåíà";                                              break;
      case 130: error_string="Íåïðàâèëüíûå ñòîïû";                                             break;
      case 131: error_string="Íåïðàâèëüíûé îáúåì";                                             break;
      case 132: error_string="Ðûíîê çàêðûò";                                                   break;
      case 133: error_string="Òîðãîâëÿ çàïðåùåíà";                                             break;  
      case 134: error_string="Íåäîñòàòî÷íî äåíåã äëÿ ñîâåðøåíèÿ îïåðàöèè";                     break;
      case 135: error_string="Öåíà èçìåíèëàñü";                                                break;
      case 136: error_string="Íåò öåí";                                                        break;
      case 137: error_string="Áðîêåð çàíÿò";                                                   break;
      case 138: error_string="Íîâûå öåíû";                                                     break;
      case 139: error_string="Îðäåð çàáëîêèðîâàí è óæå îáðàáàòûâàåòñÿ";                        break;
      case 140: error_string="Ðàçðåøåíà òîëüêî ïîêóïêà";                                       break;
      case 141: error_string="Ñëèøêîì ìíîãî çàïðîñîâ";                                         break;
      case 145: error_string="Ìîäèôèêàöèÿ çàïðåùåíà, òàê êàê îðäåð ñëèøêîì áëèçîê ê ðûíêó";    break;
      case 146: error_string="Ïîäñèñòåìà òîðãîâëè çàíÿòà";                                     break;
      case 147: error_string="Èñïîëüçîâàíèå äàòû èñòå÷åíèÿ îðäåðà çàïðåùåíî áðîêåðîì";         break;
      case 148: error_string="Êîëè÷åñòâî îòêðûòûõ è îòëîæåííûõ îðäåðîâ äîñòèãëî ïðåäåëà, óñòàíîâëåííîãî áðîêåðîì.";break;
      
      
      //---- Êîäû îøèáîê âûïîëíåíèÿ MQL4-ïðîãðàììû:
      
      case 4000: error_string="Íåò îøèáêè";                                                      break;
      case 4001: error_string="Íåïðàâèëüíûé óêàçàòåëü ôóíêöèè";                                  break;
      case 4002: error_string="Èíäåêñ ìàññèâà - âíå äèàïàçîíà";                                  break;
      case 4003: error_string="Íåò ïàìÿòè äëÿ ñòåêà ôóíêöèé";                                    break;
      case 4004: error_string="Ïåðåïîëíåíèå ñòåêà ïîñëå ðåêóðñèâíîãî âûçîâà";                    break;
      case 4005: error_string="Íà ñòåêå íåò ïàìÿòè äëÿ ïåðåäà÷è ïàðàìåòðîâ";                     break;
      case 4006: error_string="Íåò ïàìÿòè äëÿ ñòðîêîâîãî ïàðàìåòðà";                             break;
      case 4007: error_string="Íåò ïàìÿòè äëÿ âðåìåííîé ñòðîêè";                                 break;
      case 4008: error_string="Íåèíèöèàëèçèðîâàííàÿ ñòðîêà";                                     break;
      case 4009: error_string="Íåèíèöèàëèçèðîâàííàÿ ñòðîêà â ìàññèâå";                           break;
      case 4010: error_string="Íåò ïàìÿòè äëÿ ñòðîêîâîãî ìàññèâà";                               break;
      case 4011: error_string="Ñëèøêîì äëèííàÿ ñòðîêà";                                          break;
      case 4012: error_string="Îñòàòîê îò äåëåíèÿ íà íîëü";                                      break;
      case 4013: error_string="Äåëåíèå íà íîëü";                                                 break;
      case 4014: error_string="Íåèçâåñòíàÿ êîìàíäà";                                             break;
      case 4015: error_string="Íåïðàâèëüíûé ïåðåõîä";                                            break;
      case 4016: error_string="Íåèíèöèàëèçèðîâàííûé ìàññèâ";                                     break;
      case 4017: error_string="Âûçîâû DLL íå ðàçðåøåíû";                                         break;
      case 4018: error_string="Íåâîçìîæíî çàãðóçèòü áèáëèîòåêó";                                 break;
      case 4019: error_string="Íåâîçìîæíî âûçâàòü ôóíêöèþ";                                      break;
      case 4020: error_string="Âûçîâû âíåøíèõ áèáëèîòå÷íûõ ôóíêöèé íå ðàçðåøåíû";                break;
      case 4021: error_string="Íåäîñòàòî÷íî ïàìÿòè äëÿ ñòðîêè, âîçâðàùàåìîé èç ôóíêöèè";         break;
      case 4022: error_string="Ñèñòåìà çàíÿòà";                                                  break;
      case 4050: error_string="Íåïðàâèëüíîå êîëè÷åñòâî ïàðàìåòðîâ ôóíêöèè";                      break;
      case 4051: error_string="Íåäîïóñòèìîå çíà÷åíèå ïàðàìåòðà ôóíêöèè";                         break;
      case 4052: error_string="Âíóòðåííÿÿ îøèáêà ñòðîêîâîé ôóíêöèè";                             break;
      case 4053: error_string="Îøèáêà ìàññèâà";                                                  break;
      case 4054: error_string="Íåïðàâèëüíîå èñïîëüçîâàíèå ìàññèâà-òàéìñåðèè";                    break;
      case 4055: error_string="Îøèáêà ïîëüçîâàòåëüñêîãî èíäèêàòîðà";                             break;
      case 4056: error_string="Ìàññèâû íåñîâìåñòèìû";                                            break;
      case 4057: error_string="Îøèáêà îáðàáîòêè ãëîáàëüíûåõ ïåðåìåííûõ";                         break;
      case 4058: error_string="Ãëîáàëüíàÿ ïåðåìåííàÿ íå îáíàðóæåíà";                             break;
      case 4059: error_string="Ôóíêöèÿ íå ðàçðåøåíà â òåñòîâîì ðåæèìå";                          break;
      case 4060: error_string="Ôóíêöèÿ íå ðàçðåøåíà";                                            break;
      case 4061: error_string="Îøèáêà îòïðàâêè ïî÷òû";                                           break;
      case 4062: error_string="Îæèäàåòñÿ ïàðàìåòð òèïà string";                                  break;
      case 4063: error_string="Îæèäàåòñÿ ïàðàìåòð òèïà integer";                                 break;
      case 4064: error_string="Îæèäàåòñÿ ïàðàìåòð òèïà double";                                  break;
      case 4065: error_string=" êà÷åñòâå ïàðàìåòðà îæèäàåòñÿ ìàññèâ";                           break;
      case 4066: error_string="Çàïðîøåííûå èñòîðè÷åñêèå äàííûå â ñîñòîÿíèè îáíîâëåíèÿ";          break;
/*ì*/ case 4067: error_string="Îøèáêà ïðè âûïîëíåíèè òîðãîâîé îïåðàöèè";                         break;
      case 4099: error_string="Êîíåö ôàéëà";                                                     break;
      case 4100: error_string="Îøèáêà ïðè ðàáîòå ñ ôàéëîì";                                      break;
      case 4101: error_string="Íåïðàâèëüíîå èìÿ ôàéëà";                                          break;
      case 4102: error_string="Ñëèøêîì ìíîãî îòêðûòûõ ôàéëîâ";                                   break;
      case 4103: error_string="Íåâîçìîæíî îòêðûòü ôàéë";                                         break;
      case 4104: error_string="Íåñîâìåñòèìûé ðåæèì äîñòóïà ê ôàéëó";                             break;
      case 4105: error_string="Íè îäèí îðäåð íå âûáðàí";                                         break;
      case 4106: error_string="Íåèçâåñòíûé ñèìâîë";                                              break;
      case 4107: error_string="Íåïðàâèëüíûé ïàðàìåòð öåíû äëÿ òîðãîâîé ôóíêöèè";                 break;
      case 4108: error_string="Íåâåðíûé íîìåð òèêåòà";                                           break;
      case 4109: error_string="Òîðãîâëÿ íå ðàçðåøåíà. Íåîáõîäèìî âêëþ÷èòü îïöèþ Ðàçðåøèòü ñîâåòíèêó òîðãîâàòü â ñâîéñòâàõ ýêñïåðòà.";            break;
      case 4110: error_string="Äëèííûå ïîçèöèè íå ðàçðåøåíû. Íåîáõîäèìî ïðîâåðèòü ñâîéñòâà ýêñïåðòà.";           break;
      case 4111: error_string="Êîðîòêèå ïîçèöèè íå ðàçðåøåíû. Íåîáõîäèìî ïðîâåðèòü ñâîéñòâà ýêñïåðòà.";          break;
      case 4200: error_string="Îáúåêò óæå ñóùåñòâóåò";                                           break;
      case 4201: error_string="Çàïðîøåíî íåèçâåñòíîå ñâîéñòâî îáúåêòà";                          break;
      case 4202: error_string="Îáúåêò íå ñóùåñòâóåò";                                            break;
      case 4203: error_string="Íåèçâåñòíûé òèï îáúåêòà";                                         break;
      case 4204: error_string="Íåò èìåíè îáúåêòà";                                               break;
      case 4205: error_string="Îøèáêà êîîðäèíàò îáúåêòà";                                        break;
      case 4206: error_string="Íå íàéäåíî óêàçàííîå ïîäîêíî";                                    break;
      default:   error_string="Îøèáêà ïðè ðàáîòå ñ îáúåêòîì";
     }
//----
   return(error_string);
}
//==============================================================
//**************************1

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---