Вопросы новичка в MQL5. Профи не проходите мимо.

 

Решил создать тему аналогичную существующей на 4шном форуме, там к ней народная тропа не заростает).  Если повтор, прибейте ее без сожеления.

Разумеется тема создается не просто так, что б было. Волевым усилием заставил себя взяться за MQL5, и сразу появились вопросы:

1) Область видимость структур такая как у просто переменных?

2) Структура MqlRates. Я хочу найти последние 10 экстремумов, соответственно не знаю сколько ценовых данных мне понадобится. Копировать все доступные данные? Это не ресурсо-затратно?

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

1) Область видимость структур такая как у просто переменных?

Структуры - это один из типов данных (составные типы данных). Поэтому лучше говорить о переменных типа структуры. Правила насчёт области видимости переменных в равной степени относятся как к переменным простых типов, так и к переменным типа структуры. Исключений пока не встречал.

Figar0:

2) Структура MqlRates. Я хочу найти последние 10 экстремумов, соответственно не знаю сколько ценовых данных мне понадобится. Копировать все доступные данные? Это не ресурсо-затратно?

 :) Всё зависит от уровня экстремума. Если ищется экстремум за весь период наблюдений, то 10 штук никак не набрать, даже если "скопировать все доступные данные".

На самом деле, не всегда требуется использовать предопределённую структуру  MqlRates.  Во многих случаях достаточно создать свою "облегчённую" структуру (например, high-low) и работать с переменными такого типа. Про ресурсозатратность ничего не скажу, так как не интересовался этим вопросом (обхожусь без использования структуры  MqlRates).

 

Очередной мой подход к MQL5.  Решил воспользоваться его возможностями  для оптимизации советника, в МT4 оптимизация занимает сутки, а тут возможности многоядерных процессоров, агенты такие рассекие... Но прежде чем заморочиться с перекодом "настоящих" советников решил проверить - что я все-таки получу. Написал простенький советник с персептроном аля AI Решетова, на вход даже не индикаторы, а просто разница цен закрытия,  оптимизирую по ценам открытия Н4, за год.  И ядра проца все нагружены, и агенты вроде фурыкают, и облако чего-то крутится, но.... : Медленне чем в МТ4 многократно просто. Почему все так печально????

Знакомство с MQL5: написание простого советника и индикатора
Знакомство с MQL5: написание простого советника и индикатора
  • 2010.03.16
  • Denis Zyatkevich
  • www.mql5.com
В этой статье проведен краткий обзор языка MQL5, приведен пример написания советника и индикатора. Данная статья ориентирована как на читателей, знакомых с программированием на языке MQL4, так и на тех, кто только начинает знакомство с программированием торговых систем и индикаторов.
 
Figar0:

Очередной мой подход к MQL5.  Решил воспользоваться его возможностями  для оптимизации советника, в МT4 оптимизация занимает сутки, а тут возможности многоядерных процессоров, агенты такие рассекие... Но прежде чем заморочиться с перекодом "настоящих" советников решил проверить - что я все-таки получу. Написал простенький советник с персептроном аля AI Решетова, на вход даже не индикаторы, а просто разница цен закрытия,  оптимизирую по ценам открытия Н4, за год.  И ядра проца все нагружены, и агенты вроде фурыкают, и облако чего-то крутится, но.... : Медленне чем в МТ4 многократно просто. Почему все так печально????

Где то логическая ошибка в коде. Не верю что MT5 медленне MT4.
 
Figar0:

Очередной мой подход к MQL5.  Решил воспользоваться его возможностями  для оптимизации советника, в МT4 оптимизация занимает сутки, а тут возможности многоядерных процессоров, агенты такие рассекие... Но прежде чем заморочиться с перекодом "настоящих" советников решил проверить - что я все-таки получу. Написал простенький советник с персептроном аля AI Решетова, на вход даже не индикаторы, а просто разница цен закрытия,  оптимизирую по ценам открытия Н4, за год.  И ядра проца все нагружены, и агенты вроде фурыкают, и облако чего-то крутится, но.... : Медленне чем в МТ4 многократно простоПочему все так печально????

Наверное, из-за того, что не приаттачены MQ4 и MQ5 файлы.

Тут же программисты собрались. Негоже задавать такие вопросы без прикладывания исходного кода.

 
Renat:

Наверное, из-за того, что не приаттачены MQ4 и MQ5 файлы.

Тут же программисты собрались. Негоже задавать такие вопросы без прикладывания исходного кода.

Я далек от мысли что мой код образец совершенства, написан за 20 минут, да и просто для проверки, еще и учитывая что в МQ5 я пока как свинья в апельсинах), но мне кажется там ничего такого страшного для быстродействия нет. Вот он.
Файлы:
First.mq5  19 kb
 
а MQ4?
 

Renat:
 MQ4?

А в MQ4 я взял просто ArtificialIntelligence.mq4, прицепил на всякий случай, они конечно не идентичны, но примерно одинаково трудоемки ну хотя бы просто в силу своей примитивности. Но вот что получается:

На 8 ядрах в MТ5 (отключил всех агентов):

2011.11.11 15:01:07 Statistics locals 13371 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2011.11.11 15:01:07 Statistics optimization passed in 1 hours 07 minutes 51 seconds

Итого: 4071/13371=0.3044 сек на проход.

На одном ядре в МТ4:

2011.11.11 15:17:40 There were 6345 passes done during optimization
2011.11.11 15:17:40 ArtificialIntelligence: optimization stopped, 2103 cache records were used, 2103 cache records rejected
2011.11.11 15:17:12 ArtificialIntelligence: optimization started

Итого: 28/6345=0.0044129 сек на проход.

 

Два порядка . И там и там генетика, и там и там цены открытия EURUSD H4, интервал с 1.01.11 по сегодня, комп один, Win7 x64. Что так тормозит оптимизацию в МТ5? Неужели у меня там такая критичная ошибка????

Файлы:
 
Figar0:

Два порядка . И там и там генетика, и там и там цены открытия EURUSD H4, интервал с 1.01.11 по сегодня, комп один, Win7 x64. Что так тормозит оптимизацию в МТ5? Неужели у меня там такая критичная ошибка????

А какой  тип моделирования, 1 или 2?


 
Rosh:

А какой  тип моделирования, 1 или 2?

"Только цены открытия", второй стало быть
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 

Кажется я начинаю понимать в чем здесь дело:

2011.11.11 16:11:37 Core 1 EURUSD,H4: 1271227 ticks (1344 bars) generated within 1326 ms (total bars in history 2904, total time 1372 ms)

Откуда столько тиков по ценам открытия? При чем, если я ставлю модель "OHLC на М1" таже фигня:

2011.11.11 16:15:48 Core 1 EURUSD,H4: 1271227 ticks (1344 bars) generated within 2075 ms (total bars in history 2904, total time 2106 ms)

Перепроверил 10 раз и при первом и втором типе моделирования  (с картинки Rosh'а) количество тиков не менятся..... Имхо не порядок, или я что не так делаю?

Билд 527. 

 

З.Ы. Провел тест все тики:

2011.11.11 16:24:55 Core 1 EURUSD,H4: 18578763 ticks (1344 bars) generated within 24819 ms (total bars in history 2904, total time 25319 ms)

При модели "все тики" тиков всего в 14 раз больше чем  при модели "цены открытия" на Н4.  Либо я шизанутый, либо одно из двух... Получается модели "цены открытия" просто нет?