В самом файле BalanceIncOnDD.mqh (его разумеется в папку /include) выберите из списка нужный вам режим ММ и задайте значения для 1й и 2й просадок:
Лот для сделки установите следующим выражением:
Наконец, в функцию OnTester() добавьте отрисовку графиков с просадками и вывод всех случаев появления просадок указанных размеров:
enum LotCalcMode{AdjLotByBalance, AdjLotByMaxBalance, AdjLotIn1DD, AdjLotIn2DDs}; //варианты ММ LotCalcMode MMmode=AdjLotByBalance; //режим ММ #define DDsize1 800 //просадка для первого увеличения лота #define DDsize2 1500 //для второгоВключите его в код своего советника:
#include <BalanceIncOnDD.mqh>
В функцию OnTick() добавьте расчет ММ по текущему балансу:void OnTick() { LookForBalanceDDs(BalanceNorm); }где BalanceNorm -- величина баланса, на которую нормируется ваш лот (при Lot=4 торговалось по 4 лота на каждые BalanceNorm баланса).
Лот для сделки установите следующим выражением:
double currlot=NormalizeDouble(Lot*PriceNorm/Bid, 2); if(AdjustLotByBalance)currlot=NormalizeDouble(currlot*BalanceToCalcLot/BalanceNorm, 2);где AdjustLotByBalance это режим роста лота с ростом баланса, а PriceNorm -- цена актива, по которой нормируется лот (у меня 3000 для Эфира).
Наконец, в функцию OnTester() добавьте отрисовку графиков с просадками и вывод всех случаев появления просадок указанных размеров:
double OnTester() { OnTesterBalance(!AdjustLotByBalance); }
Файлы:
BalanceIncOnDD.mqh
11 kb