Ошибки, баги, вопросы - страница 212

 
Urain:
Да, именно так, только в виде стандартных функций, чтоб была оптимизирована скорость доступа.

ну я думаю, что про скорость можно пока не говорить. тем более что имеющийся массив данных новостей MQL5 обрабатывает быстро. четырехлетняя история всех новостей за полсекунды. И это с надеждой, что MQL будет еще быстрее.


вот только я бы хотел развить тему. Мне интересно что потом планируется делать с этими данными? конкретные примеры использования?

 
sergeev:

ну я думаю, что про скорость можно пока не говорить. тем более что имеющийся массив данных новостей MQL5 обрабатывает быстро. четырехлетняя история всех новостей за полсекунды. И это с надеждой, что MQL будет еще быстрее.


вот только я бы хотел развить тему. Мне интересно что потом планируется делать с этими данными? конкретные примеры использования?

А дальше непаханая целина, новостей штатно раньше небыло, дальше начнётся бум кодирования новостных стратегий.

ЗЫ Я например планирую всё это пользовать через комитеты НС.

ЗЗЫ Но пока новостей в тестере не появится (то бишь истории новостей) это всё придётся делать через файлы,и парсер новостей на сторонних ресурсах.

 

Тестер тормозит при увеличении числа сделок.

Период Trades Deals Ticks Bars Ticks generated within, ms Размер отчета .xlsx, КБ  Время формирования отчета  
04.10.2010-05.10.2010   5  720  46226  1438  27960       126  30 секунд
04.10.2010-06.10.2010    9  1680   99347  2871  240966       275   2 минуты
04.10.2010-07.10.2010   21  2703  149837  4306  382370       430  10 минут
04.10.2010-10.10.2010   35  4865  253175  7118  1202809       753  35 минут
04.10.2010-16.10.2010   67  9783  492163  14226  8908720     1463  50 минут
04.10.2010-01.11.2010   79  13199  1189566  28453  20956134       N/A (error)  1 час 10 минут
04.10.2010-27.11.2010   79  13199  2863155  56334  16055687    

 

При открытии сделок с интенсивностью примерно 1 сделка за 2 минуты видно (вкладка журнал), что на 1 секунду времени тестирования к концу достаточно длительного периода приходится в несколько раз меньше сделок, чем в начале теста. Схожая картина при выводе результатов тестирования в формат Open XML.

 

На самом деле время тестирования не напрямую зависит от количества сделок. Точнее, одиночный прогон с 10 сделками конечно займет времени меньше, чем прогон с 100 000 сделок, так как каждая сделка в тестере требует времени на обработку.

Но больше всего на время тестирования влияет количество тиков, которые обрабатываются в проходе. Я прогнал стандартный Moving Average в режиме все тики начиная с одного месяца (интервал  2009.01.01-2009.02.01) и каждый раз увеличивая время тестирования на один месяц завершил на 22 месяцах.


Как видно из построенной диаграммы, зависимость времени тестирования от количества тиков строго линейная.


 
Vigor:
Здравствуйте, отразите добавление конструкции

#property tester_indicator "индикатор.ex5"

в документации, в описании функции iCustom. Иначе к такой конструкции самостоятельно прийти нельзя, потратил несколько часов пытаясь понять в чем дело - почему iCustom работает на графике, но не работает в тестере.

Об этом сказано в разделе Свойства программ.

tester_indicator

string

Имя пользовательского индикатора в формате "имя_индикатора.ex5". Необходимые для тестирования индикаторы определяются автоматически из вызова функций iCustom(), если соответствующий параметр задан константной строкой. Для остальных случаев (использование функции IndicatorCreate() или использование неконстантной строки в параметре, задающем имя индикатора) необходимо данное свойство

tester_file

string

Имя файла для тестера с указанием расширения, заключенное в двойные кавычки (как константная строка). Указанный файл будет передан тестеру в работу. Входные файлы для тестирования, если необходимы, должны указываться всегда

tester_library

string

Имя библиотеки с расширением, заключенное в двойные кавычки. Библиотека может быть как с расширением dll, так и с расширением ex5. Необходимые для тестирования библиотеки определяются автоматически. Однако, если какая-либо библиотека используется пользовательским индикатором, то необходимо использовать данное свойство


Но Вы правы, необходимо еще раз явно добавить информацию об этом в соответствующих местах.

 
Rosh:

На самом деле время тестирования не напрямую зависит от количества сделок. Точнее, одиночный прогон с 10 сделками конечно займет времени меньше, чем прогон с 100 000 сделок, так как каждая сделка в тестере требует времени на обработку.

Но больше всего на время тестирования влияет количество тиков, которые обрабатываются в проходе. Я прогнал стандартный Moving Average в режиме все тики начиная с одного месяца (интервал  2009.01.01-2009.02.01) и каждый раз увеличивая время тестирования на один месяц завершил на 22 месяцах.

Как видно из построенной диаграммы, зависимость времени тестирования от количества тиков строго линейная.

Вероятно, следует читать "одиночный прогон с 10 сделками конечно займет времени МЕНЬШЕ, чем прогон с 100 000 сделок, так как каждая сделка в тестере требует времени на обработку.

Про тики согласен. Но прошу ещё раз обратить внимание именно на число сделок - там рост времени явно не линейный, а уж формирование отчёта о тестировании вообще ни в какие ворота не лезет!

 

какое максимальное время можно ставить в EventSetTimer(  )?

INT_MAX?  По моему нет. Не хочу исследовать самостоятельно, а в хелпе нет.

Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Константы числовых типов
Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Константы числовых типов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Именованные константы / Константы числовых типов - Документация по MQL5
 
Ashes:


Вероятно, следует читать "одиночный прогон с 10 сделками конечно займет времени МЕНЬШЕ, чем прогон с 100 000 сделок, так как каждая сделка в тестере требует времени на обработку.

Исправил.
 
Ashes:


Про тики согласен. Но прошу ещё раз обратить внимание именно на число сделок - там рост времени явно не линейный, а уж формирование отчёта о тестировании вообще ни в какие ворота не лезет!

Сделайте прогоны с одинаковым количеством тиком и разным количеством сделок. Тогда можно сравнивать.
Документация по MQL5: Торговые функции / HistoryDealsTotal
Документация по MQL5: Торговые функции / HistoryDealsTotal
  • www.mql5.com
Торговые функции / HistoryDealsTotal - Документация по MQL5
 

в процессе тестирования возникло несколько вопросов, показываю картинки сделанные одновременно:

как видно из рисунка, работают только три ядра, сталкивался не раз с ситуацией, когда в процессе тестирования количество ядер участвующих в работе постепенно падало до нуля, после чего вступали в работу все разом, т.е. есть простой в работе, почему освободившиеся ядра не начинают работу сразу?

 

количество прогонов определено как 287, в результатах оптимизации так оно и видно, однако:

что означают тогда эти цифры?  Количество точек на графике оптимизации тоже примерно 381...

Причина обращения: