Да, если индикатор не расчитывался на протяжении двух и более
баров (условия на самом деле сложнее), то индикатор считает,
что произошли коренные изменения в истории и пересчитывает
весь массив, отключая экономичный перерасчет. Поэтому и увеличение
времени расчетов в сотни и тысячи раз. Экономичные перерасчеты
работают только на расчете того же бара или при переходе на
следующий бар.
Будем думать, как в тестере использовать другой механизм проверки экономичного прохода.
Будем думать, как в тестере использовать другой механизм проверки экономичного прохода.
Я думаю, что при использовании метода моделирования по ценам открытия, нельзя говорить о тиках. Вы пересчитываете индикатор каждый второй бар, а не каждый второй тик. Большая семантическая разница.
stringo:
Именно семантическая. Вот это тормозит на контрольных точках:Я думаю, что при использовании метода моделирования по ценам открытия, нельзя говорить о тиках. Вы пересчитываете индикатор каждый второй бар, а не каждый второй тик. Большая семантическая разница.
#include <stdlib.mqh> extern bool Kick; int Counter = 32; int start() { double cci; if (!Kick) { Counter--; if (Counter > 0) return (0); Counter = 32; } cci = iCCI(NULL, 0, 20, PRICE_CLOSE, 1); return(0); }Я прекрасно понимаю, что проблема не в том, что индикатор считается не на всех тиках, а в том, что не на всех барах. Все-таки start() - это обработчик тиков, а не баров. Отсюда и не вполне корректная терминология.
Будем думать. Спасибо, что подняли вопрос.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если при тестировании по ценам открытия на длинной истории индикатор вызывается не каждый тик, а, скажем, каждый второй, как, например, в приведенном коде, если Kick сброшен, то скорость прохода теста падает экспоненциально до неприлично медленной.
А если флаг выставить и вызывать индикатор каждый тик, скорость прохода теста оценить трудно, так как он просто пролетает незаметно.
Особенно впечатляет время оптимизации по 10000 параметрам (для этого, собственно, там Counter):
23 минуты для каждого тика.
680 часов ! для каждого второго.
Почти в 2000 раз.
Это для годовой истории на 5-тиминутках.
Сборка 4.198.19.10.06