почему никого не заинтересовал вопрос? у всех уже есть идеальные блоки рассчета лота?)
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
из всего многообразия блоков рассчета лота я использую такой:
double Lots()
{
double lots,MD,RM,FMM,MinLot,MaxLot;
int lotsdigit;
MD = NormalizeDouble(MarketInfo(Symbol(), MODE_LOTSTEP), 2); // шаг лота
RM = NormalizeDouble(MarketInfo(Symbol(), MODE_MARGINREQUIRED), 4);
FMM = (RM+5)*100;
if (MD==0.01) lotsdigit=2;
else lotsdigit=1;
LotsDigit=lotsdigit;
if (MM==true) lots = NormalizeDouble(AccountFreeMargin()/(FMM/Risk)-0.05,LotsDigit);
else lots=ManLot;
MinLot=NormalizeDouble(MarketInfo(Symbol(),MODE_MINLOT),2); // минимальная ставка
MaxLot=NormalizeDouble(MarketInfo(Symbol(), MODE_MAXLOT),2); // максимальная ставка
if (LotsDigit == 2) MinLot = 0.01;
if (lots < MinLot) lots = MinLot;
if (lots > MaxLot) lots = MaxLot;
return (lots);
}
преимущества:
1) на микрофорексе рассчитывает вплоть до сотых долей
2) не останавливается когда достигает ограничения макс лота, поставленного ДЦ
недостатки:
на обычном не микросчете перестает рассчитывать лот, а может торговать только одним лотом
скажите пожалуйста в чем ошибка и как это исправить? или может кто подскажет свой код, который избегает таких случаев при сохранении преимуществ рассчета вплоть до сотых долей?