Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1475

 
MrBrooklin #:

   //лот = процент риска от баланса / (размер стоплосса * Размер минимального изменения цены в валюте депозита / Минимальный шаг изменения цены в пунктах)
   eLot=AccountInfoDouble(ACCOUNT_BALANCE)*eRisk/100/(MathAbs(ePrice-eStopLoss)*SymbolInfoDouble(eSymbol,SYMBOL_TRADE_TICK_VALUE)/SymbolInfoDouble(eSymbol,SYMBOL_TRADE_TICK_SIZE));
 
Aleksei Stepanenko #:

Спасибо, Алексей, за код! Завтра более детально вникну в Вашу формулу.

С уважением, Владимир.

 
Пожалуйста)
Здесь прайс и лосс - цены. Если у Вас лосс в пунктах, используйте поинт.
 
Aleksei Stepanenko #:
Пожалуйста)
Здесь прайс и лосс - цены. Если у Вас лосс в пунктах, используйте поинт.

Алексей, если стоп-лосс переведу в поинт, то получается ерунда. Дело в том, что в скрипте использовал формулу, найденную на просторах интернета. Не помню уже где, просто очень давно это было. Сделал по этой формуле таблицу в Exel и при необходимости пользовался ею. Вот как она выглядит:

Поэтому и обратился к сообществу, чтобы уточнить насколько она соответствует действительности. Сама формула в Exel таблице выглядит так:

лот = (баланс * риск (в %) * 0,01) / (стоп-лосс (в пунктах) * курс валюты (в моем случае в руб.))

С уважением, Владимир.

 

Владимир, всё работает

input int eLoss=2000;
input double eRisk=5.0;

double eLot=AccountInfoDouble(ACCOUNT_BALANCE)*eRisk/100/(eLoss*SymbolInfoDouble(eSymbol,SYMBOL_POINT)*SymbolInfoDouble(eSymbol,SYMBOL_TRADE_TICK_VALUE)/SymbolInfoDouble(eSymbol,SYMBOL_TRADE_TICK_SIZE));
 
Aleksei Stepanenko #:

Владимир, всё работает

Алексей, извините, но мы друг друга не поняли. В больше степени недопонимание было с моей стороны. Подумал, что Вы рекомендуете применить поинт в моей функции. ))

С уважением, Владимир.

 
А, понял)
 
Aleksei Stepanenko #:

Владимир, всё работает

Много делений без проверки делителя на ноль. Взрывоопасно.

 
Artyom Trishkin #:

Много делений без проверки делителя на ноль. Взрывоопасно.

Спасибо, Артём, за подсказку! Обязательно добавлю проверку.

С уважением, Владимир.

 
Artyom Trishkin #:

Взрывоопасно.

Справедливо.

Причина обращения: