//+------------------------------------------------------------------+
//|                                                  Расчет лота.mq4 |
//|                                                            Syzal |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Syzal"
#property version   "1.02"
#property indicator_chart_window
extern int MaxRisk=2;
extern int Razmer_SL_1=15;
extern int Razmer_SL_2=20;
extern int Razmer_SL_3=25;
extern int Razmer_SL_4=30;
extern int Razmer_SL_5=35;
extern int Razmer_SL_6=40;
extern int Razmer_SL_7=45;
extern int Razmer_SL_8=50;
extern int Razmer_SL_9=55;
extern int Razmer_SL_10=60;
extern string Corner_Readme = "1-Право верх, 2-Лево низ, 3-Право низ, 4-Лево верхt";
extern int    Corner = 3;
extern color Color = Blue;
extern int coordinata_Y = 350;

int start()
{
if(AccountNumber()<=0)
{
   Comment("Расчет лота: Нет подключения!");
}
   if (AccountNumber()>0)
   {
Comment("");
int sl_1, sl_2, sl_3, sl_4, sl_5, sl_6, sl_7, sl_8, sl_9, sl_10;
double Min_Lot =MarketInfo(Symbol(),MODE_MINLOT);
double Max_Lot =MarketInfo(Symbol(),MODE_MAXLOT);
double Free =AccountFreeMargin();
double Posle_zap = MarketInfo("EURUSD",MODE_DIGITS);
double cena_tika = MarketInfo(Symbol(),MODE_TICKVALUE);
double Spread = MarketInfo(Symbol(),MODE_SPREAD);
if (Posle_zap == 5)
   {
    sl_1 = Razmer_SL_1 *10;
    sl_2 = Razmer_SL_2 *10;
    sl_3 = Razmer_SL_3 *10;
    sl_4 = Razmer_SL_4 *10;
    sl_5 = Razmer_SL_5 *10;
    sl_6 = Razmer_SL_6 *10;
    sl_7 = Razmer_SL_7 *10;
    sl_8 = Razmer_SL_8 *10;
    sl_9 = Razmer_SL_9 *10;
    sl_10 = Razmer_SL_10 *10;
   }
 else
   {
    sl_1 = Razmer_SL_1;
    sl_2 = Razmer_SL_2;
    sl_3 = Razmer_SL_3;
    sl_4 = Razmer_SL_4;
    sl_5 = Razmer_SL_5;
    sl_6 = Razmer_SL_6;
    sl_7 = Razmer_SL_7;
    sl_8 = Razmer_SL_8;
    sl_9 = Razmer_SL_9;
    sl_10 = Razmer_SL_10;
   }

double Risk_1 = MathFloor(Free*MaxRisk/(sl_1*cena_tika))/100;
double Risk_2 = MathFloor(Free*MaxRisk/(sl_2*cena_tika))/100;
double Risk_3 = MathFloor(Free*MaxRisk/(sl_3*cena_tika))/100;
double Risk_4 = MathFloor(Free*MaxRisk/(sl_4*cena_tika))/100;
double Risk_5 = MathFloor(Free*MaxRisk/(sl_5*cena_tika))/100;
double Risk_6 = MathFloor(Free*MaxRisk/(sl_6*cena_tika))/100;
double Risk_7 = MathFloor(Free*MaxRisk/(sl_7*cena_tika))/100;
double Risk_8 = MathFloor(Free*MaxRisk/(sl_8*cena_tika))/100;
double Risk_9 = MathFloor(Free*MaxRisk/(sl_9*cena_tika))/100;
double Risk_10 = MathFloor(Free*MaxRisk/(sl_10*cena_tika))/100;

if (Risk_1<Min_Lot) Risk_1 = 0;
if (Risk_2<Min_Lot) Risk_2 = 0;
if (Risk_3<Min_Lot) Risk_3 = 0;
if (Risk_4<Min_Lot) Risk_4 = 0;
if (Risk_5<Min_Lot) Risk_5 = 0;
if (Risk_6<Min_Lot) Risk_6 = 0;
if (Risk_7<Min_Lot) Risk_7 = 0;
if (Risk_8<Min_Lot) Risk_8 = 0;
if (Risk_9<Min_Lot) Risk_9 = 0;
if (Risk_10<Min_Lot) Risk_10 = 0;

if (Risk_1>Max_Lot) Risk_1 = Max_Lot;
if (Risk_2>Max_Lot) Risk_2 = Max_Lot;
if (Risk_3>Max_Lot) Risk_3 = Max_Lot;
if (Risk_4>Max_Lot) Risk_4 = Max_Lot;
if (Risk_5>Max_Lot) Risk_5 = Max_Lot;
if (Risk_6>Max_Lot) Risk_6 = Max_Lot;
if (Risk_7>Max_Lot) Risk_7 = Max_Lot;
if (Risk_8>Max_Lot) Risk_8 = Max_Lot;
if (Risk_9>Max_Lot) Risk_9 = Max_Lot;
if (Risk_10>Max_Lot) Risk_10 = Max_Lot;

string Obj_Name_0 ="Razmer_Lota_0";
string Obj_Name_1 ="Razmer_Lota_1";
string Obj_Name_2 ="Razmer_Lota_2";
string Obj_Name_3 ="Razmer_Lota_3";
string Obj_Name_4 ="Razmer_Lota_4";
string Obj_Name_5 ="Razmer_Lota_5";
string Obj_Name_6 ="Razmer_Lota_6";
string Obj_Name_7 ="Razmer_Lota_7";
string Obj_Name_8 ="Razmer_Lota_8";
string Obj_Name_9 ="Razmer_Lota_9";
string Obj_Name_10 ="Razmer_Lota_10";
string Obj_Name_11 ="Razmer_Lota_11";

int fl_ml;
if (Min_Lot==0.01) fl_ml = 2;
if (Min_Lot==0.1) fl_ml = 1;
if (Min_Lot==1) fl_ml = 0;

string Text_0 = "Риск: " + IntegerToString(MaxRisk)+"%";
string Text_1 = "SL = " + IntegerToString(Razmer_SL_1)+": Лот = " + DoubleToString(Risk_1,fl_ml);
string Text_2 = "SL = " + IntegerToString(Razmer_SL_2)+": Лот = " + DoubleToString(Risk_2,fl_ml); 
string Text_3 = "SL = " + IntegerToString(Razmer_SL_3)+": Лот = " + DoubleToString(Risk_3,fl_ml);
string Text_5 = "SL = " + IntegerToString(Razmer_SL_4)+": Лот = " + DoubleToString(Risk_4,fl_ml);
string Text_6 = "SL = " + IntegerToString(Razmer_SL_5)+": Лот = " + DoubleToString(Risk_5,fl_ml);
string Text_7 = "SL = " + IntegerToString(Razmer_SL_6)+": Лот = " + DoubleToString(Risk_6,fl_ml);
string Text_8 = "SL = " + IntegerToString(Razmer_SL_7)+": Лот = " + DoubleToString(Risk_7,fl_ml);
string Text_9 = "SL = " + IntegerToString(Razmer_SL_8)+": Лот = " + DoubleToString(Risk_8,fl_ml);
string Text_10 = "SL = " + IntegerToString(Razmer_SL_9)+": Лот = " + DoubleToString(Risk_9,fl_ml);
string Text_11 = "SL = " + IntegerToString(Razmer_SL_10)+": Лот = " + DoubleToString(Risk_10,fl_ml);
string Text_4;
if (Posle_zap==5) Text_4 = "Спрэд: "+DoubleToStr(Spread/10,1);
if (Posle_zap==4) Text_4 = "Спрэд: "+DoubleToStr(Spread,1); 

if(ObjectFind(Obj_Name_0)==-1)                    // Если объекта нет..
   {
   ObjectCreate(Obj_Name_0,OBJ_LABEL,0,0,0);      // Создаём новый объект 
   ObjectSet    (Obj_Name_0,OBJPROP_CORNER,    Corner);// Угол привязки            
   ObjectSet    (Obj_Name_0,OBJPROP_XDISTANCE,15);// Координата Х
   ObjectSet    (Obj_Name_0,OBJPROP_YDISTANCE,coordinata_Y+60);// Координата Y
   }
ObjectSetText(Obj_Name_0,Text_0,10,"Arial",Color);// Текстовое описание объекта

if(ObjectFind(Obj_Name_4)==-1)                    // Если объекта нет..
   {
   ObjectCreate(Obj_Name_4,OBJ_LABEL,0,0,0);      // Создаём новый объект 
   ObjectSet    (Obj_Name_4,OBJPROP_CORNER,    Corner);// Угол привязки            
   ObjectSet    (Obj_Name_4,OBJPROP_XDISTANCE,15);// Координата Х
   ObjectSet    (Obj_Name_4,OBJPROP_YDISTANCE,coordinata_Y-170);// Координата Y
   }
ObjectSetText(Obj_Name_4,Text_4,10,"Arial",Color);// Текстовое описание объекта

if(ObjectFind(Obj_Name_1)==-1)                    // Если объекта нет..
   {
   ObjectCreate(Obj_Name_1,OBJ_LABEL,0,0,0);      // Создаём новый объект 
   ObjectSet    (Obj_Name_1,OBJPROP_CORNER,    Corner);// Угол привязки            
   ObjectSet    (Obj_Name_1,OBJPROP_XDISTANCE,15);// Координата Х
   ObjectSet    (Obj_Name_1,OBJPROP_YDISTANCE,coordinata_Y+40);// Координата Y
   }
ObjectSetText(Obj_Name_1,Text_1,10,"Arial",Color);// Текстовое описание объекта

if(ObjectFind(Obj_Name_2)==-1)                    // Если объекта нет..
   {
   ObjectCreate(Obj_Name_2,OBJ_LABEL,0,0,0);      // Создаём новый объект 
   ObjectSet    (Obj_Name_2,OBJPROP_CORNER,    Corner);// Угол привязки            
   ObjectSet    (Obj_Name_2,OBJPROP_XDISTANCE,15);// Координата Х
   ObjectSet    (Obj_Name_2,OBJPROP_YDISTANCE,coordinata_Y+20);// Координата Y
   }
ObjectSetText(Obj_Name_2,Text_2,10,"Arial",Color);// Текстовое описание объекта

if(ObjectFind(Obj_Name_3)==-1)                    // Если объекта нет..
   {
   ObjectCreate(Obj_Name_3,OBJ_LABEL,0,0,0);      // Создаём новый объект 
   ObjectSet    (Obj_Name_3,OBJPROP_CORNER,    Corner);// Угол привязки            
   ObjectSet    (Obj_Name_3,OBJPROP_XDISTANCE,15);// Координата Х
   ObjectSet    (Obj_Name_3,OBJPROP_YDISTANCE,coordinata_Y+0);// Координата Y
   }
ObjectSetText(Obj_Name_3,Text_3,10,"Arial",Color);// Текстовое описание объекта

if(ObjectFind(Obj_Name_5)==-1)                    // Если объекта нет..
   {
   ObjectCreate(Obj_Name_5,OBJ_LABEL,0,0,0);      // Создаём новый объект 
   ObjectSet    (Obj_Name_5,OBJPROP_CORNER,    Corner);// Угол привязки            
   ObjectSet    (Obj_Name_5,OBJPROP_XDISTANCE,15);// Координата Х
   ObjectSet    (Obj_Name_5,OBJPROP_YDISTANCE,coordinata_Y-20);// Координата Y
   }
ObjectSetText(Obj_Name_5,Text_5,10,"Arial",Color);// Текстовое описание объекта

if(ObjectFind(Obj_Name_6)==-1)                    // Если объекта нет..
   {
   ObjectCreate(Obj_Name_6,OBJ_LABEL,0,0,0);      // Создаём новый объект 
   ObjectSet    (Obj_Name_6,OBJPROP_CORNER,    Corner);// Угол привязки            
   ObjectSet    (Obj_Name_6,OBJPROP_XDISTANCE,15);// Координата Х
   ObjectSet    (Obj_Name_6,OBJPROP_YDISTANCE,coordinata_Y-40);// Координата Y
   }
ObjectSetText(Obj_Name_6,Text_6,10,"Arial",Color);// Текстовое описание объекта

if(ObjectFind(Obj_Name_7)==-1)                    // Если объекта нет..
   {
   ObjectCreate(Obj_Name_7,OBJ_LABEL,0,0,0);      // Создаём новый объект 
   ObjectSet    (Obj_Name_7,OBJPROP_CORNER,    Corner);// Угол привязки            
   ObjectSet    (Obj_Name_7,OBJPROP_XDISTANCE,15);// Координата Х
   ObjectSet    (Obj_Name_7,OBJPROP_YDISTANCE,coordinata_Y-60);// Координата Y
   }
ObjectSetText(Obj_Name_7,Text_7,10,"Arial",Color);// Текстовое описание объекта

if(ObjectFind(Obj_Name_8)==-1)                    // Если объекта нет..
   {
   ObjectCreate(Obj_Name_8,OBJ_LABEL,0,0,0);      // Создаём новый объект 
   ObjectSet    (Obj_Name_8,OBJPROP_CORNER,    Corner);// Угол привязки            
   ObjectSet    (Obj_Name_8,OBJPROP_XDISTANCE,15);// Координата Х
   ObjectSet    (Obj_Name_8,OBJPROP_YDISTANCE,coordinata_Y-80);// Координата Y
   }
ObjectSetText(Obj_Name_8,Text_8,10,"Arial",Color);// Текстовое описание объекта

if(ObjectFind(Obj_Name_9)==-1)                    // Если объекта нет..
   {
   ObjectCreate(Obj_Name_9,OBJ_LABEL,0,0,0);      // Создаём новый объект 
   ObjectSet    (Obj_Name_9,OBJPROP_CORNER,    Corner);// Угол привязки            
   ObjectSet    (Obj_Name_9,OBJPROP_XDISTANCE,15);// Координата Х
   ObjectSet    (Obj_Name_9,OBJPROP_YDISTANCE,coordinata_Y-100);// Координата Y
   }
ObjectSetText(Obj_Name_9,Text_9,10,"Arial",Color);// Текстовое описание объекта

if(ObjectFind(Obj_Name_10)==-1)                    // Если объекта нет..
   {
   ObjectCreate(Obj_Name_10,OBJ_LABEL,0,0,0);      // Создаём новый объект 
   ObjectSet    (Obj_Name_10,OBJPROP_CORNER,    Corner);// Угол привязки            
   ObjectSet    (Obj_Name_10,OBJPROP_XDISTANCE,15);// Координата Х
   ObjectSet    (Obj_Name_10,OBJPROP_YDISTANCE,coordinata_Y-120);// Координата Y
   }
ObjectSetText(Obj_Name_10,Text_10,10,"Arial",Color);// Текстовое описание объекта

if(ObjectFind(Obj_Name_11)==-1)                    // Если объекта нет..
   {
   ObjectCreate(Obj_Name_11,OBJ_LABEL,0,0,0);      // Создаём новый объект 
   ObjectSet    (Obj_Name_11,OBJPROP_CORNER,    Corner);// Угол привязки            
   ObjectSet    (Obj_Name_11,OBJPROP_XDISTANCE,15);// Координата Х
   ObjectSet    (Obj_Name_11,OBJPROP_YDISTANCE,coordinata_Y-140);// Координата Y
   }
ObjectSetText(Obj_Name_11,Text_11,10,"Arial",Color);// Текстовое описание объекта
}
return(0);
  }
//+------------------------------------------------------------------+
  
int deinit()
{for(int i=ObjectsTotal() -1;i>=0;i--)
{string name=ObjectName(i);
if(StringFind(name,"Razmer_Lota")==0) ObjectDelete(name);}
return(0);}