Новая версия платформы MetaTrader 5 build 5660: улучшения и исправления - страница 20
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Хотели проверить, но видимо забыли https://www.mql5.com/ru/forum/1111/page3690#comment_58774387
Не знаю, где спросить, поэтому извиняюсь за оффтоп.
Генетическая оптимизация, если в неё вмешаться неправильно, то результат получим либо хуже, либо дольше ждать придётся.
Поэтому спрашиваю, как обработать такую ситуацию. Допустим, есть два параметра в настройках, назовём Х и У.
Мы эти оба параметра оптимизируем так: стартовое значение 1, шаг 1, конечное значение 10.
Лучшие результаты по пользовательскому критерию оптимизации получаются, когда и Х, и У больше пяти, но мне эти результаты не нужны. Мне нужно, чтоб либо Х, либо У был меньше 5.
Если я в OnInit() сделаю проверку типа «если Х и У больше 5, то...», а вот и сам вопрос: как правильнее сделать?
1. Вернуть INIT_FAILED прям там, в OnInit().
2. Вернуть INIT_FAILED прям там, в OnInit(), а потом в OnTester() ещё сильнее усилить негатив этого теста и вернуть -DBL_MAX.
3. Не прерывать проход в OnInit(), а просто в OnTester() вернуть -DBL_MAX.
Или все варианты не айс и нужно как-то по-другому.
Если я в OnInit() сделаю проверку типа «если Х и У больше 5, то...», а вот и сам вопрос: как правильнее сделать?
1. Вернуть INIT_FAILED прям там, в OnInit().
2. Вернуть INIT_FAILED прям там, в OnInit(), а потом в OnTester() ещё сильнее усилить негатив этого теста и вернуть -DBL_MAX.
3. Не прерывать проход в OnInit(), а просто в OnTester() вернуть -DBL_MAX.
INIT_PARAMETERS_INCORRECT
Агенты не будут этот набор входных больше трогать, и алгоритм ГА не будет сбиваться из-за левых значений критерия.
NIT_PARAMETERS_INCORRECT
Результат выполнения зависит от того, была ли открыта вкладка inputs при запуске скрипта. Настройки дефолтные.
Исправлено в сборке 5742. Ввод можно использовать только в глобальном пространстве.
Почему вызов:
отрабатывает, как запрашивается, то есть цены идут по строкам [N][4], а вот такой вызов:
дает неправильный результат - цены по столбцам [1][N], где N - количество баров . Ожидалась матрица [N][1].
В справке написана фраза о том, что флаг COPY_RATES_VERTICAL применим только к запросу цен из матрицы. Ну так я и вызываю из матрицы, а не вектора.
Считаю, это баг.
b5699, повтор просьбы.
b5739
Анализировал логи с сделками в MТ тестере и обнаружил дни двойных свопов.
Двойной своп был взят за сделку с 2 на 3 января 2024 (вторник на среду). Есть зависимость от даты начала теста.
Тестовый эксперт. ДЦ - MQ demo. EURUSD. Реальные тики.
Сецификация

Запуск теста с 2023.12.20
Взято 2 свопа по -0.7
Запуск тестрера с 2023.12.31 или с 1 января 2024
Взят 1 своп
Так как есть зависимость от даты старта теста, очевидно, что это баг.
Эксперт тот же, меняем только даты (см в коде)
EURUSD

Взято 6 свопов. Правильно.
Меняем символ на XAUUSD
Тестируем с теми же датами
Взято 5 свопов. -4.6*5=-23
Почему не 6 как для EURUSD? Баг?
У вас прописаны разные алгоритмы расчета свопов для разных символов? Результаты простейшей функции на складывание!!! чисел отличаются. Видимо их 2 - одна с багом, другая без. Там ИИ что ли кодил, не понимая простейшую логику?