Дальнейшая проверка показывает, что после рекомпилляции, значение в диалоге Expert Properties сбрасывается в дефалт, более того, даже выбор из Set Input Parameters меняет его не всегда.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Модифицирую эксперт.
Делаю "старт", получаю идущий вниз график.
Без модификации эксперта, снова выбираю лучший (первый в списке) результат. Делаю "старт", получаю идущий вверх график.
Код модифицируемой части эксперта (что там ошибка я знаю. Все равно так быть не должно):
double GetLotSize() { double dLot = 0.1; if(bUseMm) { dLot = (0.1 * dInitAmount + 0.2 * dProfit) / 1000; for(int i = 0; i < 5; i++) arrProfits[5] = 0; i = 0; for(int nCnt = HistoryTotal(); nCnt >= 0; nCnt--) { OrderSelect(nCnt, SELECT_BY_POS, MODE_HISTORY); if(OrderMagicNumber() == nMagic) { arrProfits[i] = OrderProfit(); i++; if(i > 4) break; } } if(arrProfits[1] > arrProfits[0]) dLot -= 0.1 * dLot; //0.1 if(arrProfits[2] > arrProfits[0]) dLot -= 0.1 * dLot; //0.9 if(arrProfits[3] > arrProfits[0]) dLot -= 0.1 * dLot; //0.7 if(arrProfits[4] > arrProfits[0]) dLot -= 0.1 * dLot; //0.3 if(dLot * 2 * dInitAmount > AccountFreeMargin() / nNumOfExperts) dLot = AccountFreeMargin() / (2 * dInitAmount * nNumOfExperts); dLot = MathFloor(dLot * 10) / 10; if(dLot < 0.1) dLot = 0.1; } return(dLot); }