Фиксированный процент от депозита

 
В эту тему были перенесены комментарии, не относящиеся к "Фиксированный процент от депозита".
 

Примерно так, передаётся в функцию размер StopLoss и процент риска при срабатывании стопа. Функция возвращает размер лота.

//+------------------------------------------------------------------+
//+-- Расчет лота в зависимости от размера стоплосса (c) Kino 2015 --+
//+------------------------------------------------------------------+
double LotSize(int SL, double MR)// SL-StopLoss MR-MaxRisk
{
   if (SL == 0) return(0); // исключение деления на ноль
   double Free    =AccountBalance();
   double LotVal  =MarketInfo(Symbol(),MODE_TICKVALUE);//стоимость 1 пункта 1 лота
   double Min_Lot =MarketInfo(Symbol(),MODE_MINLOT);
   double Max_Lot =MarketInfo(Symbol(),MODE_MAXLOT);
   double Step    =MarketInfo(Symbol(),MODE_LOTSTEP);
   double Lot     =MathFloor((Free*MR/100)/(SL*LotVal)/Step)*Step;
   if(Lot<Min_Lot)  Lot=Min_Lot;
   if(Lot>Max_Lot)  Lot=Max_Lot;
   return(Lot);
}
//End
 
Vladimir Zubov:

Примерно так, передаётся в функцию размер StopLoss и процент риска при срабатывании стопа. Функция возвращает размер лота.

//+------------------------------------------------------------------+
//+-- Расчет лота в зависимости от размера стоплосса (c) Kino 2015 --+
//+------------------------------------------------------------------+
double LotSize(int SL, double MR)// SL-StopLoss MR-MaxRisk
{
   if (SL == 0) return(0); // исключение деления на ноль
   double Free    =AccountBalance();
   double LotVal  =MarketInfo(Symbol(),MODE_TICKVALUE);//стоимость 1 пункта 1 лота
   double Min_Lot =MarketInfo(Symbol(),MODE_MINLOT);
   double Max_Lot =MarketInfo(Symbol(),MODE_MAXLOT);
   double Step    =MarketInfo(Symbol(),MODE_LOTSTEP);
   double Lot     =MathFloor((Free*MR/100)/(SL*LotVal)/Step)*Step;
   if(Lot<Min_Lot)  Lot=Min_Lot;
   if(Lot>Max_Lot)  Lot=Max_Lot;
   return(Lot);
}
//End
Коротко и ясно-спасибо!
Причина обращения: