Написать функцию расчета (оптимизации) лота для советника МТ4... |
double MMLot()
{
double LotSize=MarketInfo(Symbol(),MODE_LOTSIZE);
double Min_Lot=MarketInfo(Symbol(),MODE_MINLOT);
double Max_Lot=MaxLot; //Входной параметр советника "MaxLot"
double MMlot=AccountBalance()*MM/LotSize; //Входной параметр советника "MM", т.е. Мани-менеджмент (%) от баланса
if(MMlot<=Min_Lot) MMlot=Min_Lot;
if(MMlot>=Max_Lot) MMlot=Max_Lot;
Print("Рабочий лот для ",Symbol()," (",MM,"%) = ",MMlot);
return(MMlot);
}
extern bool MMonoff = true; //Мани-менеджмент вкл/выкл
extern double MM = 5; //Мани-менеджмент (%) от баланса
extern double Lot = 0.10; //Начальный лот
extern bool ProgressiveLot = true; //Прогрессивный лот от баланса вкл/выкл
extern double InitialLot = 0.10; //Прогрессия лота на каждые "ProgressiveBalans" +0.10 лот
extern double ProgressiveBalans = 1000; //Шаг баланса
extern double MaxLot = 10; //Максимальный лот
22 января 2016
|
23 января 2016
|
Комментарии (15)
34 AM2 Сообщений: 15869 - Андрей
18 Andrju81 Автор Сообщений: 245 - Андрей
34 AM2 Сообщений: 15869 - Андрей
На рисунке видим предыдущий баланс 5220 сейчас 4942.
Лот уменьшился на 0.1
Вот функция:
И советник:
34 AM2 Сообщений: 15869 - Андрей
В Вашем примере, я так понимаю, лот рассчитывается конкретно на 1000 депозита. Я немного подумал, и вот что я решил сделать, немного изменил Вашу функцию с возможностью выбора шага изменения баланса и выбора величины прогрессии лота:
Но есть одна загвоздка!!! Лот начинает изменяться до того как баланс увеличивается (в данном случае) на 1000, т.е., допустим, начальный баланс 1000, как только баланс переваливает за 1501, лот уже начинает увеличивается!?.. А надо чтобы лот начинал увеличиваться на каждую полную (в данном случае) 1000!?.. Как это сделать, не могу понять?!..
Вот фрагмент отчета:
Редактирован: 24 января 2016, 16:11
18 Andrju81 Автор Сообщений: 245 - Андрей
Также как с уменьшением.
Только наоборот.
34 AM2 Сообщений: 15869 - Андрей
18 Andrju81 Автор Сообщений: 245 - Андрей
18 Andrju81 Автор Сообщений: 245 - Андрей
34 AM2 Сообщений: 15869 - Андрей
18 Andrju81 Автор Сообщений: 245 - Андрей
Функция:
Редактирован: 25 января 2016, 08:48
34 AM2 Сообщений: 15869 - Андрей
34 AM2 Сообщений: 15869 - Андрей
Например баланс 3200 лот считает 0.3. Стал 2900 лот будет 0.2.
34 AM2 Сообщений: 15869 - Андрей
Вы со мной согласны?!.. Если да, то тогда вопрос исчерпан. Еще раз СПАСИБО за помощь. Редактирован: 25 января 2016, 17:27
18 Andrju81 Автор Сообщений: 245 - Андрей
Согласен
34 AM2 Сообщений: 15869 - Андрей
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий