![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Есть ли принудительное прекращение функции OnTester()
или почему история сделок до пользовательской функции существует а после выдаёт ноль :
какие функции не работают в тестере ??
как из тестрера(при оптимизации) подать сигнал наружу что чтото не так (принты алерты ничего же не работает) ??
Видимо сегодня уже все спят.
А логи агентов не смотрели, может там все есть?
На сколько знаю, принты не выводятся в основной лог тестера только при оптимизации (в обычном режиме все ОК).
Из OnTester() как я понимаю принудительно выйти не возможно. Да и зачем, там ведь просто рассчитывается определенный результат тестирования (да еще по сути используемый только для оптимизации)?
Функция OnTester() является обработчиком события Tester, которое автоматически генерируется по окончании исторического тестирования эксперта на заданном интервале дат. Функция должна быть определена с типом double, параметров не имеет:
double OnTester();
Функция вызывается непосредственно перед вызовом функции OnDeinit() и имеет тип возвращаемого значения double. Функция OnTester() может быть использована только в экспертах при тестировании и предназначена в первую очередь для расчета некоторого значения, используемого в качестве критерия Custom max при генетической оптимизации входных параметров.
PS
> или почему история сделок до пользовательской функции существует а после выдаёт ноль...
Тут наверно к разработчикам.
Насколько я понял, OnTester должен вернуть количество сделок (если они есть), а под пользовательской функцией понимается Custom_func()?
Разработчикам посвящяется ...
Ребята вы бы хоть предупреждали если даёте возможности которые раньше в принципе были не возможны.
Сутки угробил чтоб выловиль вот такой баг
только не нужно меня учить что так и нужно ну конечно же, я всё это знаю но реально убил сутки только потому что привык что при таком
вызове компилятор должен дать ошибку.
Есть ли принудительное прекращение функции OnTester()
или почему история сделок до пользовательской функции существует а после выдаёт ноль :
какие функции не работают в тестере ??
как из тестрера(при оптимизации) подать сигнал наружу что чтото не так (принты алерты ничего же не работает) ??
Спасибо за сообщение. Ваша заявка получена - разбираемся.
Как вычислить максимальный допустимый лот по марже для открытия новой позиции? В MQL4 это делалось так:
MaxLot=AccountFreeMargin()/MarketInfo(Symbol(),MODE_MARGINREQUIRED);
Как вычислить максимальный допустимый лот по марже для открытия новой позиции? В MQL4 это делалось так:
Примерно так:
Этот код не только вычисляет максимальный объем, но и точно вписывает его в ограничения настроек символа.Примерно так:
Этот код не только вычисляет максимальный объем, но и точно вписывает его в ограничения настроек символа.Спасибо! У меня в справке функции OrderCalcMargin() нет :)
Ну и как правильно в конце концов? Так "==" или так "="?
И так и так.
if(a==0){выражение} значит если а равно 0 то истино, значит исполняем {выражение}.
if(a=0){выражение} равносильно такой записи if(a){a=0;выражение} , те если а истино то { а присвоить 0, выражение}.
А логи агентов не смотрели, может там все есть?
На сколько знаю, принты не выводятся в основной лог тестера только при оптимизации (в обычном режиме все ОК).
Из OnTester() как я понимаю принудительно выйти не возможно. Да и зачем, там ведь просто рассчитывается определенный результат тестирования (да еще по сути используемый только для оптимизации)?
PS
> или почему история сделок до пользовательской функции существует а после выдаёт ноль...
Тут наверно к разработчикам.
Насколько я понял, OnTester должен вернуть количество сделок (если они есть), а под пользовательской функцией понимается Custom_func()?
Вот проблема как раз в том что в при самой оптимизации программа работает не так как в других ситуациях (поэтому и нужно подать весточку из под OnTester).
Для этих целей придумал аналог принта(функцию которая создаёт файл ради того чтоб напечатать один стринг передаваемый в функцию как параметр).
Таким образом получилось отловить некоректное исполнение некоторых функций в OnTester.