Кто Вы по специальности. - страница 6

 
meat:

К чему этот спор о MQL5 и MQL4?  Над данный момент оба языка практически идентичны.  Отличия лишь в реализации торговых и индикаторных функций, но это уже относится не к языку, а к особенностям терминала.  А применять ООП можно и там, и там  - код будет абсолютно одинаковый. Так что не надо мешать мух с котлетами.

О какой многопоточности вы говорите?  OpenCL чтоль?   Вы сами пробовали использовать это?  Мне кажется, это никому не интересно в том виде, в каком оно реализовано здесь. По крайней мере я не видел здесь на форуме веток с обсуждением применения всего этого на практике.   Имхо, гораздо удобней вынести код в DLL, чем заниматься таким мазохизмом.   Вот если бы реализовали что-то наподобие OpenMP, используемого во многих компиляторах (в том числе VS), тогда другой разговор.

Выносить в Длл существенно параллельный код (а именно такой имеет смысл использовать в OpenCL) это ещё большее извращение, так как MQ сильно упростили использование самого OpenCL, поверьте мне на слово с C++ его использовать ещё сложнее.

Но говоря о многопоточности я имел в виду совсем другое, я говорил о том что каждый чарт МТ5 исполняется в своём потоке и не отгребает ресурсы других потоков, можно например запустить 7 достаточно ресурсоёмких задач на разных чартах а на 8-м ещё и торговать без тормозов (я сейчас привёл пример для своей 8-ми ядерной машинки), МТ4 в таком варианте придётся запустить 8 штук (8 терминалов), так как при постановке такой задачи на одном МТ4 он тупо подвиснет.

Торговать комфортно с запущеной ресурсоёмкой прогой в МТ4 вы тоже не сможете. MQ конечно сделало всё возможное, но ограничение архитектуры один МТ один поток не позволяет существенно продвинуться в этом направлении. 

 
Urain:

Но говоря о многопоточности я имел в виду совсем другое, я говорил о том что каждый чарт МТ5 исполняется в своём потоке и не отгребает ресурсы других потоков, можно например запустить 7 достаточно ресурсоёмких задач на разных чартах а на 8-м ещё и торговать без тормозов (я сейчас привёл пример для своей 8-ми ядерной машинки), МТ4 в таком варианте придётся запустить 8 штук (8 терминалов), так как при постановке такой задачи на одном МТ4 он тупо подвиснет.

Торговать комфортно с запущеной ресурсоёмкой прогой в МТ4 вы тоже не сможете. MQ конечно сделало всё возможное, но ограничение архитектуры один МТ один поток не позволяет существенно продвинуться в этом направлении. 

Эээ. 4-ка тоже умеет параллелиться. Только индюки в интерфейсном потоке, остальное разделяется на ядра.
 
Urain:

...так как MQ сильно упростили использование самого OpenCL, поверьте мне на слово с C++ его использовать ещё сложнее.

Я имел ввиду не только использование, но и написание алгоритма.  Как вы собираетесь в MQL писать это код, если он не поддерживается на уровне компилятора? В итоге задача сводится к написанию и отладке где-то в сторонней IDE, потом копипасту в Метаэдитор, помещению в текстовую строку...  Это ли не извращения?  Зачем тут вообще MQL?  Не проще ли сразу скомпилировать код в той IDE и затем импортировать DLL в MQL.

А в C++, как я уже писал, вопрос многопоточности решается 1-2 строчками кода.  Достаточно например добавить #pragma omp parallel перед любым циклом, и всё распараллеливается. Без лишних танцев и шаманства.

Urain:
 

Но говоря о многопоточности я имел в виду совсем другое, я говорил о том что каждый чарт МТ5 исполняется в своём потоке и не отгребает ресурсы других потоков

В MT4 чарты тоже распараллелены. Каждый эксперт и скрипт в своём потоке.  Исключение лишь индикаторы - с ними да, косяк.  Но тогда и говорить надо конкретно про этот недостаток. А то вы пишете, будто МТ4 весь однопоточный.

 
Urain:

...... пример для своей 8-ми ядерной машинки....

8-ядерная машинка? фи...  вот что "дирижёры" дома юзают )))))))

Подозреваю, что многие подумают - А нафига дома Такое???

Сервак остался после закрытия своей фирмы (сетка розничных магазинов), и продажи по кускам, там требовалось такое, распределёнка 1С...  Жаль было продавать, хороший сервак, поставил дома ))) 

 
AndreiFAN:

8-ядерная машинка? фи...  вот что "дирижёры" дома юзают )))))))

Подозреваю, что многие подумают - А нафига дома Такое???

Сервак остался после закрытия своей фирмы (сетка розничных магазинов), и продажи по кускам, там требовалось такое, распределёнка 1С...  Жаль было продавать, хороший сервак, поставил дома ))) 

Умммм вкуснотища )
 
komposter:
Эээ. 4-ка тоже умеет параллелиться. Только индюки в интерфейсном потоке, остальное разделяется на ядра.
Ну да, ща МТ4 наворачивают, старые билды были полностью однопоточные.
 
meat:

Я имел ввиду не только использование, но и написание алгоритма.  Как вы собираетесь в MQL писать это код, если он не поддерживается на уровне компилятора? В итоге задача сводится к написанию и отладке где-то в сторонней IDE, потом копипасту в Метаэдитор, помещению в текстовую строку...  Это ли не извращения?  Зачем тут вообще MQL?  Не проще ли сразу скомпилировать код в той IDE и затем импортировать DLL в MQL.

А в C++, как я уже писал, вопрос многопоточности решается 1-2 строчками кода.  Достаточно например добавить #pragma omp parallel перед любым циклом, и всё распараллеливается. Без лишних танцев и шаманства.

В MT4 чарты тоже распараллелены. Каждый эксперт и скрипт в своём потоке.  Исключение лишь индикаторы - с ними да, косяк.  Но тогда и говорить надо конкретно про этот недостаток. А то вы пишете, будто МТ4 весь однопоточный.

То есть установка визуал студии и изучение С++ приемлемое решение, а выучить ООП не приемлемое решение (с это го с Москитменом начался разговор).

Может всё же проще отладить во внешнем редакторе OpenCL, чем ставить студию. Согласись МЕ поставляется вместе с МТ совершенно бесплатно, и всё что нужно для написания прог в нём есть. 

 
Urain:
Ну да, ща МТ4 наворачивают, старые билды были полностью однопоточные.

Что-то путаете.

Всегда МТ4 был многопоточным - понаблюдайте в таск менеджере за количеством потоков при добавлении экспертов и разнообразных действиях. Единственно все индикаторы на чартах (только на чартах!) работают в одном потоке и тормоза одного индикатора влияют на остальные.

В МТ5 работу индикаторов сильно улучшили и индикаторы каждого символа группируются и работают в отдельных потоках каждого символа. В результате взаимовлияние медленных индикаторов сильно снижено. Например, 5 индикаторов на EURUSD работают в отдельном потоке, а 2 других на USDCHF - в другом. В результате все работает отзывчивее.

Кроме того, архитектура и производительность МТ5 гораздо лучше четверки. Не может платформа с наследием поддержки Windows 98 равняться той, которая изначально создавалась под x64 для работы с данными, на порядок больше.

Но вообще за последние полтора года мы столько вложили сил в апгрейд, оптимизацию и фейслифтинг МТ4, что теперь он по сравнению с 500 билдом - это небо и земля. Ускорению подверглось все, а скорость обновленного MQL4 реально снизила влияние тормозных индикаторов и экспертов, которые занимались массовые вычислениями.

На текущий момент апгрейды МТ4 остановились и мы полностью сконцентрированы на пятерке.

 
Renat:
индикаторы каждого символа группируются и работают в отдельных потоках каждого символа. В результате взаимовлияние медленных индикаторов сильно снижено. Например, 5 индикаторов на EURUSD работают в отдельном потоке, а 2 других на USDCHF - в другом.

Не проще ли было каждый индикатор в своём потоке?  Сколько мы запускаем индикаторов в терминале?  Ну максимум 50-100 (и это крайне редко).  Добавление такого количества потоков не уменьшит ресурсы системы. При обычном использовании мы имеем не менее тысячи потоков в системе.  Так чё мелочиться-то?     А  вот выигрыш в производительности будет ощутимый.   Вот тут выше у человека 16 ядер.  Допустим он запускает несколько ресурсоёмких индикаторов на EURUSD.  И все они будут висеть на одном потоке.  Разве это нормально?

С каждым годом ядерность процессоров растёт. Объём памяти тоже.  Надо максимально распараллеливать нагрузку.

 
meat:

Не проще ли было каждый индикатор в своём потоке?  Сколько мы запускаем индикаторов в терминале?  Ну максимум 50-100.  Добавление такого количества потоков не уменьшит ресурсы системы. При обычном использовании мы имеем не менее тысячи потоков в системе.  Так чё мелочиться-то?     А  вот выигрыш в производительности будет ощутимый.   Вот тут выше у человека 16 ядер.  Допустим он запускает несколько ресурсоёмких индикаторов на EURUSD.  И все они будут висеть на одном потоке.  Разве это нормально?

С каждым годом ядерность процессоров растёт. Объём памяти тоже.  Надо максимально распараллеливать нагрузку.

Потоки данных в пару сотен мегабайт минуток тоже будете параллелить?

Мы сделали эффективно и экономно. Группировка обоснована.

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