Ошибки, баги, вопросы - страница 1962
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Как это поможет?
Оптимизация прошла, мы записали все перебираемые параметры с диапазонами значений.
А потом запускаем одиночный тест, читаем список параметров, и выводим его на экран: параметр = значение. При этом значение нам не известно, т.к. мы не можем обратиться к инпут-переменной по имени.
Делаете входной параметр bool Optim. В OnInit возвращаете INIT_FAILED, если Optim == true. При этом в OnTesterPass через FrameInputs и ParameterGetRange (или в деструкторе глобального объекта класса) записываете фактически SET-файл Оптимизации.
Далее ставите Optim = false. И берете еще один параметр sinput int Range, задаете ему через ParameterSetRange изменение от нуля до единицы. В OnTesterInit считываете SET-файл и задаете значения всех параметров из файла в ParameterSetRange. В OnInit при Range == 0 возвращаете INIT_FAILED.
Все! Вместо одиночного имеете мнимую Оптимизацию, которая еще и быстрее одиночного будет.... Плюс считывание/запись входных параметров.
не в тему вопрос но спрошу или попрошу можно ли дополнять справочник MQL5 дополнительными примерами реализации алгоритмов больше и наглядней
Делаете входной параметр bool Optim. В OnInit возвращаете INIT_FAILED, если Optim == true. При этом в OnTesterPass через FrameInputs и ParameterGetRange (или в деструкторе глобального объекта класса) записываете фактически SET-файл Оптимизации.
Далее ставите Optim = false. И берете еще один параметр sinput int Range, задаете ему через ParameterSetRange изменение от нуля до единицы. В OnTesterInit считываете SET-файл и задаете значения всех параметров из файла в ParameterSetRange. В OnInit при Range == 0 возвращаете INIT_FAILED.
Все! Вместо одиночного имеете мнимую Оптимизацию, которая еще и быстрее одиночного будет.... Плюс считывание/запись входных параметров.
Спасибо за подробный алгоритм.
'TesterBenchmark_Example.mq5' TesterBenchmark_Example.mq5 1 1 'TesterBenchmark.mqh' TesterBenchmark.mqh 1 1 0 error(s), 0 warning(s), compile time: 3113 msec 1 1
Время компиляции в 1648
'TesterBenchmark_Example.mq5' TesterBenchmark_Example.mq5 1 1 'TesterBenchmark.mqh' TesterBenchmark.mqh 1 1 0 error(s), 0 warning(s), compile time: 219 msec 1 1
Что-то круто подкрутили!
Ошибка при компиляции
а если заменить строку (*) на
то нормально. А какая разница?Похоже на https://www.mql5.com/ru/forum/1111/page1977#comment_5595772, но отличается кодом ошибки
Ошибка при компиляции
а так:
нормально. А какая разница?Ошибка при компиляции
а так:
нормально. А какая разница?Разница огромная. Когда вызывается g(f), то компилятор понятия не имеет, какого типа f, т.к. прописан только template. Если перегрузить template, то не будет проблем
Время компиляции в 1643
Время компиляции в 1648
Что-то круто подкрутили!
У меня как было, так и осталось, компиляция не ускорилась
У меня как было, так и осталось, компиляция не ускорилась
Возможно, не используете то, что раньше тормозило в TesterBenchmark.mqh
Разница огромная. Когда вызывается g(f), то компилятор понятия не имеет, какого типа f, т.к. прописан только template. Если перегрузить template, то не будет проблем