
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
К чему этот спор о MQL5 и MQL4? Над данный момент оба языка практически идентичны. Отличия лишь в реализации торговых и индикаторных функций, но это уже относится не к языку, а к особенностям терминала. А применять ООП можно и там, и там - код будет абсолютно одинаковый. Так что не надо мешать мух с котлетами.
О какой многопоточности вы говорите? OpenCL чтоль? Вы сами пробовали использовать это? Мне кажется, это никому не интересно в том виде, в каком оно реализовано здесь. По крайней мере я не видел здесь на форуме веток с обсуждением применения всего этого на практике. Имхо, гораздо удобней вынести код в DLL, чем заниматься таким мазохизмом. Вот если бы реализовали что-то наподобие OpenMP, используемого во многих компиляторах (в том числе VS), тогда другой разговор.
Выносить в Длл существенно параллельный код (а именно такой имеет смысл использовать в OpenCL) это ещё большее извращение, так как MQ сильно упростили использование самого OpenCL, поверьте мне на слово с C++ его использовать ещё сложнее.
Но говоря о многопоточности я имел в виду совсем другое, я говорил о том что каждый чарт МТ5 исполняется в своём потоке и не отгребает ресурсы других потоков, можно например запустить 7 достаточно ресурсоёмких задач на разных чартах а на 8-м ещё и торговать без тормозов (я сейчас привёл пример для своей 8-ми ядерной машинки), МТ4 в таком варианте придётся запустить 8 штук (8 терминалов), так как при постановке такой задачи на одном МТ4 он тупо подвиснет.
Торговать комфортно с запущеной ресурсоёмкой прогой в МТ4 вы тоже не сможете. MQ конечно сделало всё возможное, но ограничение архитектуры один МТ один поток не позволяет существенно продвинуться в этом направлении.
Но говоря о многопоточности я имел в виду совсем другое, я говорил о том что каждый чарт МТ5 исполняется в своём потоке и не отгребает ресурсы других потоков, можно например запустить 7 достаточно ресурсоёмких задач на разных чартах а на 8-м ещё и торговать без тормозов (я сейчас привёл пример для своей 8-ми ядерной машинки), МТ4 в таком варианте придётся запустить 8 штук (8 терминалов), так как при постановке такой задачи на одном МТ4 он тупо подвиснет.
Торговать комфортно с запущеной ресурсоёмкой прогой в МТ4 вы тоже не сможете. MQ конечно сделало всё возможное, но ограничение архитектуры один МТ один поток не позволяет существенно продвинуться в этом направлении.
...так как MQ сильно упростили использование самого OpenCL, поверьте мне на слово с C++ его использовать ещё сложнее.
Я имел ввиду не только использование, но и написание алгоритма. Как вы собираетесь в MQL писать это код, если он не поддерживается на уровне компилятора? В итоге задача сводится к написанию и отладке где-то в сторонней IDE, потом копипасту в Метаэдитор, помещению в текстовую строку... Это ли не извращения? Зачем тут вообще MQL? Не проще ли сразу скомпилировать код в той IDE и затем импортировать DLL в MQL.
А в C++, как я уже писал, вопрос многопоточности решается 1-2 строчками кода. Достаточно например добавить #pragma omp parallel перед любым циклом, и всё распараллеливается. Без лишних танцев и шаманства.
Но говоря о многопоточности я имел в виду совсем другое, я говорил о том что каждый чарт МТ5 исполняется в своём потоке и не отгребает ресурсы других потоков
В MT4 чарты тоже распараллелены. Каждый эксперт и скрипт в своём потоке. Исключение лишь индикаторы - с ними да, косяк. Но тогда и говорить надо конкретно про этот недостаток. А то вы пишете, будто МТ4 весь однопоточный.
...... пример для своей 8-ми ядерной машинки....
8-ядерная машинка? фи... вот что "дирижёры" дома юзают )))))))
Подозреваю, что многие подумают - А нафига дома Такое???
Сервак остался после закрытия своей фирмы (сетка розничных магазинов), и продажи по кускам, там требовалось такое, распределёнка 1С... Жаль было продавать, хороший сервак, поставил дома )))
8-ядерная машинка? фи... вот что "дирижёры" дома юзают )))))))
Подозреваю, что многие подумают - А нафига дома Такое???
Сервак остался после закрытия своей фирмы (сетка розничных магазинов), и продажи по кускам, там требовалось такое, распределёнка 1С... Жаль было продавать, хороший сервак, поставил дома )))
Эээ. 4-ка тоже умеет параллелиться. Только индюки в интерфейсном потоке, остальное разделяется на ядра.
Я имел ввиду не только использование, но и написание алгоритма. Как вы собираетесь в MQL писать это код, если он не поддерживается на уровне компилятора? В итоге задача сводится к написанию и отладке где-то в сторонней IDE, потом копипасту в Метаэдитор, помещению в текстовую строку... Это ли не извращения? Зачем тут вообще MQL? Не проще ли сразу скомпилировать код в той IDE и затем импортировать DLL в MQL.
А в C++, как я уже писал, вопрос многопоточности решается 1-2 строчками кода. Достаточно например добавить #pragma omp parallel перед любым циклом, и всё распараллеливается. Без лишних танцев и шаманства.
В MT4 чарты тоже распараллелены. Каждый эксперт и скрипт в своём потоке. Исключение лишь индикаторы - с ними да, косяк. Но тогда и говорить надо конкретно про этот недостаток. А то вы пишете, будто МТ4 весь однопоточный.
То есть установка визуал студии и изучение С++ приемлемое решение, а выучить ООП не приемлемое решение (с это го с Москитменом начался разговор).
Может всё же проще отладить во внешнем редакторе OpenCL, чем ставить студию. Согласись МЕ поставляется вместе с МТ совершенно бесплатно, и всё что нужно для написания прог в нём есть.
Ну да, ща МТ4 наворачивают, старые билды были полностью однопоточные.
Что-то путаете.
Всегда МТ4 был многопоточным - понаблюдайте в таск менеджере за количеством потоков при добавлении экспертов и разнообразных действиях. Единственно все индикаторы на чартах (только на чартах!) работают в одном потоке и тормоза одного индикатора влияют на остальные.
В МТ5 работу индикаторов сильно улучшили и индикаторы каждого символа группируются и работают в отдельных потоках каждого символа. В результате взаимовлияние медленных индикаторов сильно снижено. Например, 5 индикаторов на EURUSD работают в отдельном потоке, а 2 других на USDCHF - в другом. В результате все работает отзывчивее.
Кроме того, архитектура и производительность МТ5 гораздо лучше четверки. Не может платформа с наследием поддержки Windows 98 равняться той, которая изначально создавалась под x64 для работы с данными, на порядок больше.
Но вообще за последние полтора года мы столько вложили сил в апгрейд, оптимизацию и фейслифтинг МТ4, что теперь он по сравнению с 500 билдом - это небо и земля. Ускорению подверглось все, а скорость обновленного MQL4 реально снизила влияние тормозных индикаторов и экспертов, которые занимались массовые вычислениями.
На текущий момент апгрейды МТ4 остановились и мы полностью сконцентрированы на пятерке.
индикаторы каждого символа группируются и работают в отдельных потоках каждого символа. В результате взаимовлияние медленных индикаторов сильно снижено. Например, 5 индикаторов на EURUSD работают в отдельном потоке, а 2 других на USDCHF - в другом.
Не проще ли было каждый индикатор в своём потоке? Сколько мы запускаем индикаторов в терминале? Ну максимум 50-100 (и это крайне редко). Добавление такого количества потоков не уменьшит ресурсы системы. При обычном использовании мы имеем не менее тысячи потоков в системе. Так чё мелочиться-то? А вот выигрыш в производительности будет ощутимый. Вот тут выше у человека 16 ядер. Допустим он запускает несколько ресурсоёмких индикаторов на EURUSD. И все они будут висеть на одном потоке. Разве это нормально?
С каждым годом ядерность процессоров растёт. Объём памяти тоже. Надо максимально распараллеливать нагрузку.
Не проще ли было каждый индикатор в своём потоке? Сколько мы запускаем индикаторов в терминале? Ну максимум 50-100. Добавление такого количества потоков не уменьшит ресурсы системы. При обычном использовании мы имеем не менее тысячи потоков в системе. Так чё мелочиться-то? А вот выигрыш в производительности будет ощутимый. Вот тут выше у человека 16 ядер. Допустим он запускает несколько ресурсоёмких индикаторов на EURUSD. И все они будут висеть на одном потоке. Разве это нормально?
С каждым годом ядерность процессоров растёт. Объём памяти тоже. Надо максимально распараллеливать нагрузку.
Потоки данных в пару сотен мегабайт минуток тоже будете параллелить?
Мы сделали эффективно и экономно. Группировка обоснована.