//+------------------------------------------------------------------+
//|                                                      MAX_LOT.mq4 |
//|                                                          Argon71 |
//|                                      http://argon71.blogspot.com |
//+------------------------------------------------------------------+
#property copyright "Argon71"
#property link      "http://argon71.blogspot.com"
#property indicator_chart_window

extern int Lot = 100000; // Стандартное значение лота в торговле.
extern int Leverage = 100; // Если значение плеча известно, его лучше ввести вручную.

int AL;
int Find;
double AFM;
string AC;
double LotS;
double LotB;
string OutS;
string OutB;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
if (Leverage == 0) AL = AccountLeverage( ); // Возвращает значение плеча для текущего счета. 
else AL = Leverage;
AFM = AccountFreeMargin( ); // Возвращает значение свободных средств, разрешенных для открытия позиций на текущем счете. 
AC = AccountCurrency( ); // Возвращает наименование валюты для текущего счета. 
Find = StringFind(Symbol(),AC,0); // Ищет наименование валюты для текущего счета в названии графика.
//---- Рассчёт значения максимального лота ----
   if (Find == 0) { // Валюта в числителе:
   LotS = AFM*AL/Lot;
   LotB = LotS;
   }
   else {
         if (Find == 3) { // Валюта в знаменателе:
         LotS = AFM*AL/(Lot*Ask);
         LotB = AFM*AL/(Lot*Bid);
         }
         else AFM = -1.0; // Валюта не найдена - идём мимо.
   }
//---- Вывод надписи на график ----
if (AFM > 0) {
OutS = "Sell " + LotS; // Значение максимального лота для продажи.
OutB = "Buy  " + LotB; // Значение максимального лота для покупки.
}
else {
OutS = "Все просрал !"; // Нет возможности совершить сделку.
OutB = OutS;
}
//---- MAX Lot for Sell ---- Красного цвета ----
   ObjectCreate("MAX Lot for Sell", OBJ_LABEL, 0, TimeLocal( ), LotS);
   ObjectSetText("MAX Lot for Sell", OutS, 8, "Courier New", Red);
   ObjectSet("MAX Lot for Sell", OBJPROP_CORNER, 0);
   ObjectSet("MAX Lot for Sell", OBJPROP_XDISTANCE, 4);
   ObjectSet("MAX Lot for Sell", OBJPROP_YDISTANCE, 98);
//---- MAX Lot for Buy ---- Синего цвета ----
   ObjectCreate("MAX Lot for Buy", OBJ_LABEL, 0,  TimeLocal( ), LotB);
   ObjectSetText("MAX Lot for Buy", OutB, 8, "Courier New", LimeGreen);
   ObjectSet("MAX Lot for Buy", OBJPROP_CORNER, 0);
   ObjectSet("MAX Lot for Buy", OBJPROP_XDISTANCE, 4);
   ObjectSet("MAX Lot for Buy", OBJPROP_YDISTANCE, 88);
//----
   return(0);
  }
  
  
//+------------------------------------------------------------------+