Пожалуйста, у вас нет версии MQL4?
bool UseMaximumPercentageatRisk = true; double MaximumPercentageatRisk =1;
bool IsMicroAccount = true ; //for accounts allowing 0.01 lots
double GetLots(double lotsize_bn) { int tmpdecimal=1; if(IsMicroAccount) { tmpdecimal=2; } double old_lot=lotsize_bn; if((NormalizeDouble(AccountFreeMargin()*(MaximumPercentageatRisk/100)/1000.0,tmpdecimal)<lotsize_bn) && UseMaximumPercentageatRisk) { lotsize_bn=NormalizeDouble(AccountFreeMargin()*(MaximumPercentageatRisk/100)/1000.0,tmpdecimal); if(lotsize_bn<MarketInfo(Symbol(),MODE_MINLOT)) { lotsize_bn=MarketInfo(Symbol(),MODE_MINLOT); Print("RPTrade-Lot adjusted from ",old_lot," to minimum size allowed by the server of ",lotsize_bn," but it DOES NOT comply with Maximum Risk condition. User interaction is required!"); } else { Print("RPTrade-Lot adjusted from ",old_lot," to ",lotsize_bn," to comply with Maximum Risk condition. Each trade can risk only ",MaximumPercentageatRisk,"% of free margin."); } } return (lotsize_bn); }
Должно быть что-то вроде этого ;-)
R.
I was looking at your code in MQL5 for "Maximum Percentage of Equity Risk".
I have some doubts regarding to how to use it. I have the mqh file in the include file and use #include <RPTrade.mqh> at the expert that I want to use.
Can you elaborate more on how to use this code in a expert advisor please? I'm new to coding. I have made expert advisors, but I don't know how to call a class or function in another file.
Мне нужно вызвать функцию GetLots (lotize), правильно? И в запросе на заказ нужно использовать значение "lotize" для лотов?
Спасибо!
Здравствуйте, Patagonia2015,
Сначала вы должны добавить 2 входа в ваш советник:
bool UseMaximumPercentageRisk=true; double MaximumPercentageRisk=25;
Затем вы должны вызвать функцию GetLots() и установить в скобках желаемый размер лота, например, call:
double MyLotSize; MyLotSize = GetLots (100);
И в соответствии с тем, что вы ввели как MaximumPercentageRisk и ваш эквити счета, вы получите правильный размер.
Например, если MaximumPercentageRisk = 1, а ваш капитал = 1000$, функция вернет 0,01 лота.
Торгуйте с низким риском, рынки на самом деле дикие ;-)
Здравствуйте, спасибо, что поделились этой информацией.
Я новичок, но мне бы хотелось иметь возможность быть последовательным в отношении размера лота, и я хотел бы знать, как я могу использовать ваш код для этого?
Заранее спасибо
Например, если MaximumPercentageRisk = 1, а ваш капитал = 1000$, функция вернет 0,01 лота.
Торгуйте с низким риском, рынки на самом деле дикие ;-)
Ядумал, что вся суть в том, чтобы вы получили соответствующие лоты, основанные на выбранном вами риске и текущем балансе счета.
Немного ясности было бы очень признательно. Спасибо
Извините, вы немного запутали меня, когда сказали"вы должны вызвать функцию GetLots() и установить желаемый размер лота в скобках"
Ядумал, что вся суть в том, чтобы вы получили соответствующие лоты, основанные на выбранном вами риске и текущем балансе счета.
Немного ясности было бы очень признательно. Спасибо
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Maximum Percentage of Equity Risk:
Этот код позволяет вам установить максимальный процент риска от эквити.
Он проверяет, соответствуют ли риску запрашиваемые лоты на покупку/продажу. Если нет, лоты автоматически исправляются так, чтобы они подходили под установленный риск.
Автор: Remi PASSANELLO