Как отключить Лог-файл при тестировании и оптимизации ? - страница 4

 
По умолчанию каждый использованный из MQL4 кода индикатор помещается во внутренний кеш с полным контролем для его экономичного перерасчета в последующем.


А вот переполнение кэша вы не контролируете - он переполняется.
Что вы отводите под кэш и сколько ?
Как побороть большое количество переборов когда для копий индикаторов не хватает памяти (кэша) ?
У меня именно на это ругается оптимизатор.
Вы можете как-то скидывать неиспользуемые копии индикаторов на жесткий диск - а не держать их в памяти, ведь неизвестно, будут ли эти старые копии еще использоваться.
 
Укажите, пожалуйста, характеристики своего компьютера:
1) процессор
2) объем оперативной памяти

Если Вы используете массивные/множественные вычисления, да еще и на глубокой истории, то надо иметь 1-2Gb оперативки.
 
AMD 64 X2 4600+ 4Gb ОП.

Только вот МТ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 параметр
Для одного теста пераметры одни и те же.
Где этот кэш находится ?
Тормоза даже при тестировании, когда данный индикатор уже расчитан для двух тайм-фремов - но запись ищется ОЧЕНЬ долго.
Что делать ? - я не могу щас не то чтобы оптимизировать - мне один тест пройти - это час ждать.
 
Вы читали статью "MQL4: Тестирование экспертов в клиентском терминале MetaTrader 4. Взгляд изнутри" ? Вот цитата оттуда
===
Для ускорения работы оптимизатора было реализовано кеширование результатов. Если при повторном прогоне оптимизации тестер нашёл в кеше результат, соответствующий текущему набору параметров, то просто используется найденный результат без выполнения эксперта. Таким образом можно прерывать работу оптимизатора, так как следущий запуск оптимизации эксперта с теми же параметрами позволит получить из кеша ранее посчитанные результаты и продолжить расчёты с прерванного прохода тестера. Если тестовые данные были изменены, либо эксперт был перекомпилирован, либо используемые экспертом библиотеки были изменены, кеш оптимизатора сбрасывается и все расчёты производятся заново.
===
Я веду речь о кеше оптимизатора.

Вы, похоже, ищете кеш индикатора. Кеш индикатора находится в памяти и означает лишь то, что при нескольких обращениях к одному и тому же индикатору с одними и теми же расчётными входными параметрами, расчёт этого индикатора производится только один раз, при первом обращении. Остальные обращения будут просто забирать закешированный вариант.

У Вас и раньше одиночный прогон тестера занимал один час? Или меньше?
 

У Вас и раньше одиночный прогон тестера занимал один час? Или меньше?


Конечно меньше занимал времени и оперативной памяти брал побольше.
А сейчас тестирование идет очень медленно, память просто стоит на месте (200Мб ОП и она не растет).
Начинает тест шустренько, потом медленнее и медленнее, какими-то рывками, процедура получения рассчитанного уже индикатора показывает увеличение получения данных от индикатора (как я говорил до 68 секунд получение 2-ух данных из двух копий одного и того же индикатора).
Я могу выслать вам ex4 - файл советника и индикатора.