Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Язык MQL5 поддерживает технологию OpenCL. Попробуй сам!
Stanislav Korotky
17335
Stanislav Korotky 2012.08.04 18:23 

В прошлом году писал по этому поводу. Сейчас ситуация аналогичная, по крайней мере на моем компе, который в прошлом году примерно соответствовал по быстродействию тестовым компам, используемым для проверок перед Чемпионатом. Суть в следующем. Беру в режиме тестирования по тикам эксперт-пустышку, и прогоняю его на периоде 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).

Olegs Kucerenko
12017
Olegs Kucerenko 2012.08.04 18:25  

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

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

Stanislav Korotky
17335
Stanislav Korotky 2012.08.04 18:29  
Karlson:

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

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

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

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

из СД: 

Попробуйте оценить размер памяти на агенте с помощью функции 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Мб. 

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

Stanislav Korotky
17335
Stanislav Korotky 2012.08.04 21:29  
Не понял, чем может помочь выяснение объема занимаемой памяти в ускорении работы самого ядра (или это уже вопрос в другую тему?). Ждать еще полчаса нет желания, потому прогнал H4 (все тики) на 1 месяце, получил TERMINAL_MEMORY_USED - 1000Mb. Времени ушло 5 минут. Что это дает?
Olegs Kucerenko
12017
Olegs Kucerenko 2012.08.05 04:19  

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

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

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

 

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

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

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

 

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

Nikolay Kositsin
295502
Nikolay Kositsin 2012.08.05 07:54  

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

Olegs Kucerenko
12017
Olegs Kucerenko 2012.08.05 08:11  

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

 

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

Alexander Laur
7652
Alexander Laur 2012.08.05 12:34  

Мульт 12 пар, W7-64, индекс 4.3, CPU: AuthenticAMD AMD Athlon(tm) II X4 630 Processor with OpenCL 1.1 (4 units, 2812 MHz, 7678 Mb, version 2.0).

Тест 02.01.2012 - 01.08.2012, "Все тики" время 509 сек, память 1107 Мб. Причем, это выделяемая память, а потребляемая в районе 500 Мб. Трейдов - 1643, сделок - 3286.

Dmitry
1999
Dmitry 2012.08.05 14:08  
По всей видимости максимально влияет на время тестирования количество сделок. Жестокие пипсари ну ооочень долго тестяться.
Документация по MQL5: Торговые функции / HistoryDealsTotal
Документация по MQL5: Торговые функции / HistoryDealsTotal
  • www.mql5.com
Торговые функции / HistoryDealsTotal - Документация по MQL5
/ /123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий