Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
объявите переменную глобально и инициализируйте её при объявлении, например, int kk=0;
затем в OnTick() распринтуйте и поменяйте значение, например, Print("kk=",kk); ++kk;
затем поменяйте ТФ -- и посмотрите на результат.
это понятно, что глобальная переменная сохранит своё значение и при смене ТФ - но ничего подобного не происходит в тестере.
это понятно, что глобальная переменная сохранит своё значение и при смене ТФ - но ничего подобного не происходит в тестере.
вот вы и нашли ответ на причину разности результатов.
при оптимизации идёт перебор параметров, т.е. перезапуск советника с другими настройками.
вот вы и нашли ответ на причину разности результатов.
полагаете, что глобальная переменная советника сохраняет своё значение при прошлых запусках оптимизатора и переносится в следующие? данунах.
проверьте, проще проверить, чем гадать.
Ренат выше написал, что оптимизатор работает "как часы" и что причина в коде -- он несколько раз порекомендовал сделать распринтовку -- допускаю, что её никто не делал.
проверял сам? есть четкие примеры, в каких случаях одиночный прогон отработает иначе, чем в составе оптимизации?
например, я помню, удаление хендла в тестере не работало раньше, это приводило с переполнению памяти и креш терминала вместе с системой. может быть эту проблему порешали уже но остались подводные камни с созданием и удалением хендлов индикаторов и есть различия в работе оптимизатора и одиночного прогона с индикаторами. поскольку достоверно известно, что разработчики очень хорошо поработали над ускорением и минимизацией расхода памяти везде где только можно.
проверял сам? есть четкие примеры, в каких случаях одиночный прогон отработает иначе, чем в составе оптимизации?
в данном случае не одиночный прогон.
проверьте инициализацию переменных, объявленных глобально.
если инициализации не в OnInit(), а при объявлении и если в коде идёт изменение их значений.
Простой пример:
Хотя.... Компилятор почему то уже не предупреждает, если вынести объявление в глобальную область (((
Я ожидал другого...
Простой пример:
Хотя.... Компилятор почему то уже не предупреждает, если вынести объявление в глобальную область (((
Я ожидал другого...
Шла пятая страница, но mql5 кода всё не было... Также остается тайна покрытая мраком относительно тестирования: символа(символов), таймфрейма (таймфреймов), настроек тестирования.
Ну и ещё вопрос, прежде чем я начну распринтовку.
К примеру, записал результаты:
оптимизатор - buy;sell;sell;buy;buy;sell
тестер - buy;sell;sell;buy;buy;sell;sell;buy;buy;sell
Каким образом данные об этих "лишних" сделках помогут понять с какого потолка они свалились? Наверное, нужно писать и цены предыдущих баров, или что ещё?
Шла пятая страница, но mql5 кода всё не было... Также остается тайна покрытая мраком относительно тестирования: символа(символов), таймфрейма (таймфреймов), настроек тестирования.
С возвращением из отпуска )))
Тут всё видно.
Простой пример:
Хотя.... Компилятор почему то уже не предупреждает, если вынести объявление в глобальную область (((
Я ожидал другого...
если 'x' будет иметь тип double то приведённые примеры в корне неверны и состояние 'y' неопределено в обоих случаях
то есть возможно что где-то в глубинах нейросетей получаются или специальные значения double - inf-ы, nan-ы или сходные до eps величины