Еще раз про лимит времени тестирования экспертов на Чемпионат

 

В прошлом году писал по этому поводу. Сейчас ситуация аналогичная, по крайней мере на моем компе, который в прошлом году примерно соответствовал по быстродействию тестовым компам, используемым для проверок перед Чемпионатом. Суть в следующем. Беру в режиме тестирования по тикам эксперт-пустышку, и прогоняю его на периоде 3 дня, для разного количестве инструментов. Получается таблица с таймингом:

Количество инструментовВремя прогона, секунды
114
222
29
36
45
51
62

 

Это времена, потраченные самим тестером на внутренние функции, обеспечивающие работу эксперта, в частности эмуляцию тиков (M15). Для теста длинной 1 месяц для 7 инструментов она выполняется 8 минут (M15) или 6 минут (H1). Нетрудно подсчитать, что на периоде в 8 месяцев - получим в районе 1 часа. У меня возникает вопрос, как можно уложиться в 30 минутный лимит тестирования мультивалютным экспертом? У кого какие времена показывают мультивалютники? Для сравнения, индекс Windows производительности проца и памяти - 6.0 (Core Duo, 2.4Ghz).

 

Мульт 8 пар.Windows 7 ,индекс 3.3,Core2Duo 2.33, 2Gb.

Время 13-15 минут. 723 трейда,1446 сделок.

 
Karlson:

Мульт 8 пар.W7 ,индекс 3.4 (вроде был) ,Core2Duo 2.33.

Время 13-15 минут. 

W7 - имеется в виду W1? Тогда понятно.
 
На H4 получилась 31 минута. Это как-то "на бровях", да и систему на такой таймфрейм нужно было бы изначально другую сочинять. :-/
 

Давайте с Вами сравним такую информацию:

из СД: 

Попробуйте оценить размер памяти на агенте с помощью функции TerminalInfoInteger(TERMINAL_MEMORY_AVAILABLE) и если памяти мало, завершать OnInit с кодом возврата INIT_AGENT_NOT_SUITABLE

Чтобы оценить необходимую память сначала вызовите в OnDeinit эксперта TerminalInfoInteger(TERMINAL_MEMORY_USED) запустите эксперта на одиночное тестирование и распечатайте полученную цифру. 

У меня так получается:

Режим "OHLC М1" . Длительность теста 1-2.5 года. 

У меня на одной паре порядка 250-400 Мб.На полноценном 500-600 Мб выдает в OnDeinit.

Причем не заметил взяимосвязи (может не понимаю ) с  установленными барами в терминале.

В зависимости от периода тестирования привел диапазон получаемых значений.

В режиме "Все тики" больше где то на 100Мб. 

Хотя бы порядок сравнить. 

 
Не понял, чем может помочь выяснение объема занимаемой памяти в ускорении работы самого ядра (или это уже вопрос в другую тему?). Ждать еще полчаса нет желания, потому прогнал H4 (все тики) на 1 месяце, получил TERMINAL_MEMORY_USED - 1000Mb. Времени ушло 5 минут. Что это дает?
 

1.Это к теме " У кого какие данные показывают мультивалютники".Косвенное отношение (или это уже вопрос в другую тему?) :)

Памяти больше,время дольше,алгоритм заметно сложнее видимо.Мне хотелось больше пар.но влезть в лимит.Запас еще есть,пар подключаемых нет :)

Посмотрим конечно ,как вообще это дело пойдет.Может система двух машек прошлого чемпионата имеет большую инерцию :) 

 

2.С потреблением памяти я столкнулся при оптимизации.Из облака сыпались ошибки "excessive memory use" .Да и иногда и сейчас есть.

Тут уже первая строка ответа СД. Делов том.что после определенного числа таких облачных ответов ,они отключаются.Оптимизация продолжается на локальных.

Вот по этому поинтересовался.

 

3.Мы одиноки,или еще кто поделится временными,памятизатратными данными? 

 

Мульт 10 пар, WindowsXP, индекс 6.6, Core2Duo 6600 2.4 (разогнан до 2.88ГГц), 6Gb. Тест мультивалютника на периоде в семь месяцев на четырёхчасовом графике в режиме "Все тики" проходит примерно за 15 минут! Но это при использовании функции OnTimer() с периодичностью вызова 60 секунд. А если использовать функцию OnTick(), то тест съедает поболя получаса! Мультивалютник съедает в этом тесте 819 мегов памяти. В этом году я обленился и решил не упаковывать индикаторы в индикаторные функции, благо для чемпионата такого результата достаточно, только в индюках ампутировал пересчёт текущего бара и всё!

 

Видимо у меня самый примитивный алгоритм. Впрочем знаю ))) Хочу выехать исключительно хеджированием и антикорреляцией.

 

С Вашим опытом все возможно..Это ...Тут кувалдами гвозди забиваем ))) 

 
По всей видимости максимально влияет на время тестирования количество сделок. Жестокие пипсари ну ооочень долго тестяться.
Документация по MQL5: Торговые функции / HistoryDealsTotal
Документация по MQL5: Торговые функции / HistoryDealsTotal
  • www.mql5.com
Торговые функции / HistoryDealsTotal - Документация по MQL5
 
Я проверяю пустой эксперт без всяких сделок, только в событии OnTick присутствует вызов RefreshHistory (позаимствовано у самих МетаКвотов) для "внешних" инструментов (отличных от текущего символа графика). По профайлеру вызовы этого рефреша в MQL5 съедают пару секунд за полгода тестирования (т.е. пренебрежимы), и практически все время уходит на что-то в самом ядре. Чтобы этого не происходило, вероятно, нужно (или наборот не нужно) что-то делать с этими рефрешами? Потому вопрос к тем, кто использует OnTick - как Вы обновляете "внешние" символы? Вариант с OnTimer - известный, может быть прийдется переходить на него.
Причина обращения: