//+------------------------------------------------------------------+ //| 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 = 0; // Если значение плеча известно, его лучше ввести вручную. 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 = "MAX Lot for Sell: " + LotS; // Значение максимального лота для продажи. OutB = "MAX Lot for Buy: " + LotB; // Значение максимального лота для покупки. } else { OutS = "You can`t!"; // Нет возможности совершить сделку. OutB = OutS; } //---- MAX Lot for Sell ---- Красного цвета ---- ObjectCreate("MAX Lot for Sell", OBJ_LABEL, 0, TimeLocal( ), LotS); ObjectSetText("MAX Lot for Sell", OutS, 8, "Comic Sans MS", Tomato); ObjectSet("MAX Lot for Sell", OBJPROP_CORNER, 0); ObjectSet("MAX Lot for Sell", OBJPROP_XDISTANCE, 5); ObjectSet("MAX Lot for Sell", OBJPROP_YDISTANCE, 10); //---- MAX Lot for Buy ---- Синего цвета ---- ObjectCreate("MAX Lot for Buy", OBJ_LABEL, 0, TimeLocal( ), LotB); ObjectSetText("MAX Lot for Buy", OutB, 8, "Comic Sans MS", LightSkyBlue); ObjectSet("MAX Lot for Buy", OBJPROP_CORNER, 0); ObjectSet("MAX Lot for Buy", OBJPROP_XDISTANCE, 5); ObjectSet("MAX Lot for Buy", OBJPROP_YDISTANCE, 22); //---- Leverage ---- Жёлтого цвета ---- ObjectCreate("Leverage", OBJ_LABEL, 0, TimeLocal( ), 0); ObjectSetText("Leverage", "(Leverage 1:" + AL + ")", 8, "Comic Sans MS", Yellow); ObjectSet("Leverage", OBJPROP_CORNER, 0); ObjectSet("Leverage", OBJPROP_XDISTANCE, 5); ObjectSet("Leverage", OBJPROP_YDISTANCE, 36); //---- return(0); } //+------------------------------------------------------------------+