Шикарная тема! Правда без баб будет скучновата, наверное ))
Шутю...
Кстати, в MQL5 уже есть матрицы и векторы. Алексей, а раз Matlab - это аббревиатура от «Matrix Laboratory», то давай для затравки сравним скорости работы с матрицами Матлаба и MQL5.
Как Matlab может быть полезен программисту на mql4 и mql5 ?
Для тех, кто с нуля, краткая сводочка. Matlab — это монструозный пакет математических программ и функций, плюс он имеет собственный простой язык программирования. Язык очень простой и позволяет связываться с mql4/5 через DLL и многими другими способами, например, через memory mapping. А для совсем олдскул программистов есть отличная развитая работа с файлами.
Что мы как программисты получаем взамен? Доступ к богатейшей библиотеке математики, а также искусственную интеллекту и нейронным сетям. Конечно, потребуется некоторое время на обучение, но оно того стоит. Если вам это интересно, я продолжу эту тему.
Да тема интересная.
Я реализовывал интеграцию через dll, как на си api, так и на c++ api, и чуть не свихнулся от c++ api на шаблонах.
Очень тяжёлая реализация интерфейса взаимодействия, в частности с передачей массивов.
Если пробовал c++ api понимаешь о чём я. Там есть момент при передаче массивов, который надо хитров*****но преобразовывать в формат матлаба.
Где то на stackoverflow только нашёл решение, но там такой костыль с преобразованием, что аж жесть. Да и повторюсь c++ api на шаблонах очень муторное.
На си api намного проще, и по ощущением быстрее работало взаимодействие с ядром матлаба.
Но вот взаимодействие через memory mapping с блокировкой критических секций куда интереснее для раскрытия темы.
Если жечь, так жечь. Давай сразу с memory mapping ))
Шикарная тема! Правда без баб будет скучновата, наверное ))
Шутю...
Кстати, в MQL5 уже есть матрицы и векторы. Алексей, а раз Matlab - это аббревиатура от «Matrix Laboratory», то давай для затравки сравним скорости работы с матрицами Матлаба и MQL5.
Матлаб по умолчанию параллелит вычисления на все доступные ядра.
В mql5 это надо делать через OpenCL.
Поэтому не корректно будет сравнивать, если вычисления mql5 будут не через OpenCL.
Насчет CPU инструкций AVX, AVX2+FMA3 не знаю как онии выполняются в mql5, но сомневаюсь что параллелятся по умолчанию.
Просто за один такт процессорного времени, выполняется несколько математических операций, что не соответствует много ядерности.
Да тема интересная.
Я реализовывал интеграцию через dll, как на си api, так и на c++ api, и чуть не свихнулся от c++ api на шаблонах.
Очень тяжёлая реализация интерфейса взаимодействия, в частности с передачей массивов.
Если пробовал c++ api понимаешь о чём я. Там есть момент при передаче массивов, который надо хитров*****но преобразовывать в формат матлаба.
Где то на stackoverflow только нашёл решение, но там такой костыль с преобразованием, что аж жесть. Да и повторюсь c++ api на шаблонах очень муторное.
На си api намного проще, и по ощущением быстрее работало взаимодействие с ядром матлаба.
Но вот взаимодействие через memory mapping с блокировкой критических секций куда интереснее для раскрытия темы.
Если жечь, так жечь. Давай сразу с memory mapping ))
Я на этом форуме давно, в 201* годах писал про мэппинг, лень искать. В двух словах, мемору мэппинг это создание виртуального адресного пространства, которое доступно для всех прог в пределах твоего компа.
Это четко описано в MSDN
- 2022.12.14
- adegeo
- learn.microsoft.com
Я на этом форуме давно, в 201* годах писал про мэппинг, лень искать. В двух словах, мемору мэппинг это создание виртуального адресного пространства, которое доступно для всех прог в пределах твоего компа.
Это четко описано в MSDN
Теорию мэппинга я знаю )) и даже реализовывал средствами cи
Непонятно как это делать в matlab, банальный синтаксис взаимодействия плюс критические секции.
Матлаб по умолчанию параллелит вычисления на все доступные ядра.
В mql5 это надо делать через OpenCL.
Поэтому не корректно будет сравнивать, если вычисления mql5 будут не через OpenCL.
Насчет CPU инструкций AVX, AVX2+FMA3 не знаю как онии выполняются в mql5, но сомневаюсь что параллелятся по умолчанию.
Просто за один такт процессорного времени, выполняется несколько математических операций, что не соответствует много ядерности.
По умолчанию нет, но задается в опциях, также можно параллелить на GPU, но только на CUDA, то есть Nvidia. В Mql5 при компиляции можно указывать опции. Например, для магазина никакие оптимизации не допускаются.
Стесняюсь спросить, а откуда такая инфа? Может чего сам не знаю... да, в составе Матлаба есть parallel pool, но насколько помню, чтобы он стартанул, нужно специально его вызывать...
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Как Matlab может быть полезен программисту на mql4 и mql5 ?
Для тех, кто с нуля, краткая сводочка. Matlab — это монструозный пакет математических программ и функций, плюс он имеет собственный простой язык программирования. Язык очень простой и позволяет связываться с mql4/5 через DLL и многими другими способами, например, через memory mapping. А для совсем олдскул программистов есть отличная развитая работа с файлами.
Что мы как программисты получаем взамен? Доступ к богатейшей библиотеке математики, а также искусственную интеллекту и нейронным сетям. Конечно, потребуется некоторое время на обучение, но оно того стоит. Если вам это интересно, я продолжу эту тему.