В эту тему были перенесены комментарии, не относящиеся к "Фиксированный процент от депозита".
Примерно так, передаётся в функцию размер 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
//+-- Расчет лота в зависимости от размера стоплосса (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
//+-- Расчет лота в зависимости от размера стоплосса (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
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь