Обсуждение статьи "Использование вычислительных возможностей MATLAB 2018 в MetaTrader 5"

 

Опубликована статья Использование вычислительных возможностей MATLAB 2018 в MetaTrader 5:

После модернизации пакета MATLAB в 2015 году необходимо рассмотреть современный способ создания DLL-библиотек. На примере прогнозирующего индикатора в статье иллюстрируются особенности связывания MetaTrader 5 и MATLAB с использованием современных 64-х разрядных версий платформ, применяемых в настоящее время. Рассмотрение всей последовательности подключения MATLAB позволит разработчику на MQL5 быстрее создавать приложения с расширенными вычислительными возможностями, избегая «подводных камней».

Работоспособность индикатора была опробована на данных торговли EURUSD H1, предоставленным платформой MetaTrader. Был выбран не слишком большой сегмент данных, размер которого 450 отсчетов, а варианты длиннопериодного "сезонного" лага опробованы 28, 30 и 32 отсчета, лучшим из них на рассмотренном периоде истории был лаг с периодом 32 отсчета.

Выполнялась серия расчетов для разных фрагментов истории. Длина сегмента данных в модели — 450, сезонный лаг 32 и длина прогноза 30 были установлены один раз и не менялись. Чтобы оценить качество прогноза полученные результаты для разных фрагментов сравнивались с фактическими данными.

Приведем рисунки, демонстрирующие результат работы индикатора. На всех рисунках шоколадным цветом отображено завершение фрагмента, по которому в MATLAB была подобрана модель SARIMA(2,1,2), а полученный на ее основании построен прогноз отрисован синим цветом.

EURUSDH1_450(32)-180

Автор: Roman Korotchenko

 

В R эта и другие, более сложные модели, создаются в несколько строк. Не соизмеримые затраты времени. Кроме того, для каждой новой модели нужно писать свой оригинальный код. 

Не перспективно. Хотя для тех кто сильно внутри в МАТЛАБ может быть вариантом.

Но проделанная работа впечатляет.

Удачи

 

Здесь нужно наверное подправить? Нет?

matlab_st

Удачи

 
Vladimir Perervenko:

Здесь нужно наверное подправить? Нет?

Удачи

Имеете ввиду что допущена ошибка? А где именно и что менять? Так ее не вижу.

 
Roman Korotchenko:

Имеете ввиду что допущена ошибка? А где именно и что менять? Так ее не вижу.

Что то в этом выражении не так. Посмотрите. Пишет выражение всегда FALSE.

 
Vladimir Perervenko:

Что то в этом выражении не так. Посмотрите. Пишет выражение всегда FALSE.

Похоже здесь избыточная "перестраховка" для используемого шага времени. Получается, что обработка осуществилась быстрее, чем пришел новый отсчет. Это также возможно указывает на хорошее быстродействие компьютера. Поскольку условие ложно, то оно не оказывает влияния на работу алгоритма. Хуже если бы оно через чур часто было истинным). Я буду заниматься развитием индикатора и "пошевелю" условие, чтобы оно не было столь бессысленным. Спасибо за замечание.

 
Roman Korotchenko:

Похоже здесь избыточная "перестраховка" для используемого шага времени. Получается, что обработка осуществилась быстрее, чем пришел новый отсчет. Это также возможно указывает на хорошее быстродействие компьютера. Поскольку условие ложно, то оно не оказывает влияния на работу алгоритма. Хуже если бы оно через чур часто было истинным). Я буду заниматься развитием индикатора и "пошевелю" условие, чтобы оно не было столь бессысленным. Спасибо за замечание.

Удачи

 
Roman Korotchenko:

Похоже здесь избыточная "перестраховка" для используемого шага времени. Получается, что обработка осуществилась быстрее, чем пришел новый отсчет. Это также возможно указывает на хорошее быстродействие компьютера. Поскольку условие ложно, то оно не оказывает влияния на работу алгоритма. Хуже если бы оно через чур часто было истинным). Я буду заниматься развитием индикатора и "пошевелю" условие, чтобы оно не было столь бессысленным. Спасибо за замечание.

Это предупреждение компилятора, не связанное со скоростью обработки. В условии используются беззнаковые переменные типа uint, они никогда не могут быть < 0. Замените на int, чтобы можно было получить отрицательную разность.

 
Stanislav Korotky:

Это предупреждение компилятора, не связанное со скоростью обработки. В условии используются беззнаковые переменные типа uint, они никогда не могут быть < 0. Замените на int, чтобы можно было получить отрицательную разность.

Благодарю за подсказку.

 
Как я могу купить, чтобы установить этот индикатор на MT5?
Если кто-нибудь может мне помочь, я ценю это.
 

Файловый сервер где хранились MATLAB-runtime провел глобальную чистку и удалил файлы. Я обновил загрузку и сейчас они располагаются https://pinapfile.com/qBGE .

Чтобы распаковать используйте программу 7zip. Надо выделить весь набор файлов и «Extract files...».