Проблемы с облаком при генетике - страница 2

 
notused:

И в OnDeinit нужно  TERMINAL_MEMORY_USED вместо  TERMINAL_MEMORY_AVAILABLE

Спасибо, ошибка при копипасте была.

Да, TERMINAL_MEMORY_AVAILABLE не очень имеет мысл использовать, так как выдает виртуальный размер. Лучше ориентироваться на физическую память.

void OnStart()
  {
   Print("Physical:  ",TerminalInfoInteger(TERMINAL_MEMORY_PHYSICAL)," Mb");
   Print("Available: ",TerminalInfoInteger(TERMINAL_MEMORY_AVAILABLE)," Mb");
   Print("Used:      ",TerminalInfoInteger(TERMINAL_MEMORY_USED)," Mb");
  }
Used:      895 Mb
Available: 8387712 Mb
Physical:  16279 Mb

В Used показывается полный реальный объем памяти, занятый приложением (терминалом или агентом).

Кстати, у wtvirtual задачи:

  • в облаке занимали по 27 часов (2012.09.18 21:08 - 2012.09.20 00:16), 30 часов (2012.09.24 09:22 -  2012.09.25 16:59) и 11 часов (2012.09.25 17:12 - 2012.09.26 03:57)
  • каждый проход занимал от 200 до 600 секунд (от 3 до 9 минут)

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

 
Renat:

Спасибо, ошибка при копипасте была.

Да, TERMINAL_MEMORY_AVAILABLE не очень имеет мысл использовать, так как выдает виртуальный размер. Лучше ориентироваться на физическую память.

В Used показывается полный реальный объем памяти, занятый приложением (терминалом или агентом).

Кстати, у wtvirtual задачи:

  • в облаке занимали по 27 часов (2012.09.18 21:08 - 2012.09.20 00:16), 30 часов (2012.09.24 09:22 -  2012.09.25 16:59) и 11 часов (2012.09.25 17:12 - 2012.09.26 03:57)
  • каждый проход занимал от 200 до 600 секунд (от 3 до 9 минут)

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

Renat, я не берусь объяснить отчего это может быть.

Но нулевые результаты бывали и у меня. При полном переборе порядка 1000-2000 "терялись" результаты(появлялись нулевые), на которые я раз только обратил внимание, прогнав параметры на локальной машине (ноут). Благодаря полному перебору - это не сказывалось особо на результатах оптимизации. Эксперт одновалютник, два простых индикатора, Timeframe=H1, Режим тестирования - OHLC-M1. Скорость одного прогона порядка 20сек (Intel SU7300 - 1,3GHz, 3GB DDR3). 

Скажите, Renat, какие результаты вернет агент, если произойдет критическая ошибка, типа обращение за пределы массива (например, к -1-ому элементу)?

Может это программные ошибки экспертов, которые появляются в результате неинициализации переменных. 

P.S. В MQL5 будут warning-и сооющающие, что переменная возможно не инициализирована? 

 
Luckhuman:

P.S. В MQL5 будут warning-и сооющающие, что переменная возможно не инициализирована? 

Уже есть.


 
При критических ошибках эксперт вернет ноль.
Документация по MQL5: Программы MQL5 / Ошибки выполнения
Документация по MQL5: Программы MQL5 / Ошибки выполнения
  • www.mql5.com
Программы MQL5 / Ошибки выполнения - Документация по MQL5
 
Rosh:

Уже есть. 

Как это я такой важной особенности в языке не узрел :))) Шикарно! А давно?
 

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

Память? А есть ли минимальный лимит памяти, при котором разрешено агенту обрабатывать задачу при наличии в системе нескольких агентов? Или выходит просто не повезло нарваться на четырехядерник, у которого другие агенты съели всю память?

Вот потребление  памяти эксперта, который оптимизировался 

Потребление памяти при тесте эксперта 

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