Возможности МТ4 или компа очень ограничены оказывается. Если задать в алгоритме многоуровневые циклы с "тяжелыми" математическими формулами - то компьютер зависает.....

 

Проблема не в сложности, а в том, что не стоит проводить сложные вычисления в интерфейсном потоке (индикаторы МТ4 работают как раз в нем). В МТ5 такой проблемы нет, т. к. там индикаторы работают в своих потоках и не влияют на работу GUI терминала.

Для МТ4 проблема решается запуском скрипта с ожиданием от него результатов вычислений. Или вообще перенести всю логику работы индикатора в скрипт, а может даже в советник.

Кроме того, стоит тщательно проверить, оптимально ли происходят вычисления. Возможно, проблема не в скорости работы программы, а именно в неоптимальном алгоритме расчета. 

 
Ihor Herasko:

Проблема не в сложности, а в том, что не стоит проводить сложные вычисления в интерфейсном потоке (индикаторы МТ4 работают как раз в нем). В МТ5 такой проблемы нет, т. к. там индикаторы работают в своих потоках и не влияют на работу GUI терминала.

Для МТ4 проблема решается запуском скрипта с ожиданием от него результатов вычислений. Или вообще перенести всю логику работы индикатора в скрипт, а может даже в советник.

аа понятно, спасибо! Попробую как советник сделать.
 
Кроме того, есть подозрение, что МТ4 процессор использует не совсем эффективно. Вся нагрузка ложится только на одно ядро (замечено на 4-ядерном процессоре). Это особенно хорошо видно, когда тестируем "тяжелые" советники.
 
Vadim Zotov:
Кроме того, есть подозрение, что МТ4 процессор использует не совсем эффективно. Вся нагрузка ложится только на одно ядро (замечено на 4-ядерном процессоре). Это особенно хорошо видно, когда тестируем "тяжелые" советники.
Тут нечего подозревать.)) МТ4 32-ух разрядное приложение, не предполагающее наличие в компьютере нескольких ядер одного процессора. В те времена (2004-2005 гг.) такого то ли вообще еще не было, то ли было большой редкостью (не помню точно).
 
Ihor Herasko:
Тут нечего подозревать.)) МТ4 32-ух разрядное приложение, не предполагающее наличие в компьютере нескольких ядер одного процессора. В те времена (2004-2005 гг.) такого то ли вообще еще не было, то ли было большой редкостью (не помню точно).
Интересно, а как с этим обстоит в МТ5 ?
 
Vadim Zotov:
Интересно, а как с этим обстоит в МТ5 ?
Прекрасно )) Используются все ядра и приложение 64-х разрядное. Кроме того, можно использовать облако (не бесплатно, правда) при тестировании.
 
Ihor Herasko:
Тут нечего подозревать.)) МТ4 32-ух разрядное приложение, не предполагающее наличие в компьютере нескольких ядер одного процессора. В те времена (2004-2005 гг.) такого то ли вообще еще не было, то ли было большой редкостью (не помню точно).

32-разрядность никак не связана с многопоточностью. А потоки по ядрам Windows распределяет автоматически, если не указывать это явно в программе, что никто в здравом уме не делает.

Вообще, MQ заявляют, что в МТ4 каждый советник работает в своем потоке. Проверить это крайне легко, задача на 5 минут, сейчас тест выложу. Самому стало интересно. 

 
Ihor Herasko:
Тут нечего подозревать.)) МТ4 32-ух разрядное приложение, не предполагающее наличие в компьютере нескольких ядер одного процессора. В те времена (2004-2005 гг.) такого то ли вообще еще не было, то ли было большой редкостью (не помню точно).

Это в корне ошибочное утверждение.

Все наши программы с 2000 года эффективно используют многоядерность. В то же время, оптимизатор статегий в MetaTrader 4 однопотоковый по своей архитектуре. Если нужен многопотоковы/сетевой/облачный оптимизатор торговых стратегий, то используйте MetaTrader 5.

 
Еще ни разу не использовал МТ5. ))  
 
Ihor Herasko:

... стоит тщательно проверить, оптимально ли происходят вычисления. Возможно, проблема не в скорости работы программы, а именно в неоптимальном алгоритме расчета. 

Понравилось