Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А вот переполнение кэша вы не контролируете - он переполняется.
Что вы отводите под кэш и сколько ?
Как побороть большое количество переборов когда для копий индикаторов не хватает памяти (кэша) ?
У меня именно на это ругается оптимизатор.
Вы можете как-то скидывать неиспользуемые копии индикаторов на жесткий диск - а не держать их в памяти, ведь неизвестно, будут ли эти старые копии еще использоваться.
1) процессор
2) объем оперативной памяти
Если Вы используете массивные/множественные вычисления, да еще и на глубокой истории, то надо иметь 1-2Gb оперативки.
Только вот МТ4 ругается, что ему недостаточно кэша.
На этих выходных я запускаю на 204 билде оптимизацию на 53 часа.
Посмотрим ак оно пройдет
Попробуйте использовать клиентский терминал, который я выложил в ветке "MQL4: Опять глючит МТ4"
Попробуйте использовать клиентский терминал, который я выложил в ветке "MQL4: Опять глючит МТ4"
Запустил на выходные на версии от 19.04.07 .
При выключенной галочке "Пропустить бесполезные результаты " вообще стоит на месте и не начинает оптимизацию. Память не растет, терминал занимает 8 Мб оперативки. Вобщем - ниче не происходит.
Когда галочку включил - тоесть пропустить бесполезные результаты - начало работать.
Результаты выложу после выходных.
Попробуйте использовать клиентский терминал, который я выложил в ветке "MQL4: Опять глючит МТ4"
Попробовал - эта версия меня абсолютно не устраивает. Память не растет - но скорость упала на несколько порядков !
На прошлой неделе у меня тесты прошли все за 53 часа.
Сейчас за это же время у меня прошло всего ничего - около 50 тестов. (тестирование продолжается).
В час - один тест ! Раньше за минуты 3-5 один тест.
Когда я просто тестирую - тест идет 1 час. Не оптимизирую - а просто тестирую на истории 8 лет, 4-часовой график, по барам открытия, обращаюсь к индикатору одному, но на трех таймфреймах.
Я в тупике щас с новым терминалом.
Тестер спрашивает у кеша, есть ли результат с определёнными параметрами. Если запись есть, то реальный прогон не производится. Так как кеш был сброшен, то и запрашиваемой записи не было. Поэтому тестеру пришлось каждый раз тратить по часу.
Тестер спрашивает у кеша, есть ли результат с определёнными параметрами. Если запись есть, то реальный прогон не производится. Так как кеш был сброшен, то и запрашиваемой записи не было. Поэтому тестеру пришлось каждый раз тратить по часу.
Я сделал замер скорости выполнения каждой моей процедуры и функиции - считал потраченное время на выполнение.
На форуме выложена функция GetLocalTime с подключением kernel32.dll
Все мои функции выполняются мгновенно - тормоза (до 68 сек.) на обращении к индикатору :
ind_Enter(Enter_ind_1,Enter_ind_1_Period,Enter_ind_1_Line,1)>=ind_Enter(Enter_ind_2,Enter_ind_2_Period,Enter_ind_2_Line,1)
, где
ind_Enter - iCustom - индикатор.
Enter_ind_1 - extern параметр
Enter_ind_1_Period - extern параметр
Enter_ind_1_Line - extern параметр
Для одного теста пераметры одни и те же.
Где этот кэш находится ?
Тормоза даже при тестировании, когда данный индикатор уже расчитан для двух тайм-фремов - но запись ищется ОЧЕНЬ долго.
Что делать ? - я не могу щас не то чтобы оптимизировать - мне один тест пройти - это час ждать.
===
Для ускорения работы оптимизатора было реализовано кеширование результатов. Если при повторном прогоне оптимизации тестер нашёл в кеше результат, соответствующий текущему набору параметров, то просто используется найденный результат без выполнения эксперта. Таким образом можно прерывать работу оптимизатора, так как следущий запуск оптимизации эксперта с теми же параметрами позволит получить из кеша ранее посчитанные результаты и продолжить расчёты с прерванного прохода тестера. Если тестовые данные были изменены, либо эксперт был перекомпилирован, либо используемые экспертом библиотеки были изменены, кеш оптимизатора сбрасывается и все расчёты производятся заново.
===
Я веду речь о кеше оптимизатора.
Вы, похоже, ищете кеш индикатора. Кеш индикатора находится в памяти и означает лишь то, что при нескольких обращениях к одному и тому же индикатору с одними и теми же расчётными входными параметрами, расчёт этого индикатора производится только один раз, при первом обращении. Остальные обращения будут просто забирать закешированный вариант.
У Вас и раньше одиночный прогон тестера занимал один час? Или меньше?
У Вас и раньше одиночный прогон тестера занимал один час? Или меньше?
Конечно меньше занимал времени и оперативной памяти брал побольше.
А сейчас тестирование идет очень медленно, память просто стоит на месте (200Мб ОП и она не растет).
Начинает тест шустренько, потом медленнее и медленнее, какими-то рывками, процедура получения рассчитанного уже индикатора показывает увеличение получения данных от индикатора (как я говорил до 68 секунд получение 2-ух данных из двух копий одного и того же индикатора).
Я могу выслать вам ex4 - файл советника и индикатора.