Это демонстрация не только расчетов на GPU в MQL5 коде, но и графических возможностей терминала:
Полный исходный код в виде скрипта приложен.
Мы готовим штатную библиотеку на OpenCL для математики и отрисовки, что займет несколько недель. Будет потрясающе быстро и красиво.
А пока посмотрите на обновленную графическую библиотеку для отрисовки научных графиков.
О! Так скоро и до игр дойдёт )))
Только зачем это в торговой платформе? Ну расчёты понятно, а красивости всякие только совращают.
О! Так скоро и до игр дойдёт )))
Только зачем это в торговой платформе? Ну расчёты понятно, а красивости всякие только совращают.
С помощью OpenCL можно использовать тысячи ядер GPU, чтобы ускорить в сотню (несколько сотен) раз математические расчеты.
Это именно то, что нужно в трейдинге и что позволит перейти к использованию методик, требующих на порядки больше расчетных ресурсов.
В MQL4 копают лопаткой, а в MQL5 с OpenCL получается трактор по производительности. Чтобы вывести в массы расчеты на GPU, мы готовим новые математические библиотеки в дополнение к существующим.
не смог пройти мимо, прошёл мимо
Это демонстрация не только расчетов на GPU в MQL5 коде, но и графических возможностей терминала:
Полный исходный код в виде скрипта приложен.
Cкомпилил, запустил.
Не работает.
МТ5 билд 1491
W7 prof SP1 eng 64-bit
Cкомпилил, запустил.
Посмотрите логи терминала и окна экспертов.
Скрипт сложный, только что написанный и пока не отлаженный. Без GPU не везде запускается.
Посмотрите логи терминала и окна экспертов.
Скрипт сложный, только что написанный и пока не отлаженный. Без GPU не везде запускается.
2016.12.10 03:57:08.197 Seascape (GOLD-12.16,H1) <kernel>:188:18: error: subscripted access is not allowed for OpenCL vectors
2016.12.10 03:57:08.197 Seascape (GOLD-12.16,H1) uint b=(uint)(res[2]*255);
2016.12.10 03:57:08.197 Seascape (GOLD-12.16,H1) ^ ~
2016.12.10 03:57:08.197 Seascape (GOLD-12.16,H1) <kernel>:189:18: error: subscripted access is not allowed for OpenCL vectors
2016.12.10 03:57:08.197 Seascape (GOLD-12.16,H1) uint g=(uint)(res[1]*255);
2016.12.10 03:57:08.197 Seascape (GOLD-12.16,H1) ^ ~
2016.12.10 03:57:08.197 Seascape (GOLD-12.16,H1) <kernel>:190:18: error: subscripted access is not allowed for OpenCL vectors
2016.12.10 03:57:08.197 Seascape (GOLD-12.16,H1) uint r=(uint)(res[0]*255);
2016.12.10 03:57:08.197 Seascape (GOLD-12.16,H1) ^ ~
2016.12.10 03:57:08.197 Seascape (GOLD-12.16,H1)
2016.12.10 03:57:08.218 Seascape (GOLD-12.16,H1) OpenCL program create failed
2016.12.10 03:57:36.695 Seascape (GOLD-12.16,H1) OpenCL: GPU device 'GeForce GTX 970' selected
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1) <kernel>:188:18: error: subscripted access is not allowed for OpenCL vectors
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1) uint b=(uint)(res[2]*255);
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1) ^ ~
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1) <kernel>:189:18: error: subscripted access is not allowed for OpenCL vectors
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1) uint g=(uint)(res[1]*255);
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1) ^ ~
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1) <kernel>:190:18: error: subscripted access is not allowed for OpenCL vectors
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1) uint r=(uint)(res[0]*255);
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1) ^ ~
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)
2016.12.10 03:57:36.730 Seascape (GOLD-12.16,H1) OpenCL program create failed
Ок, разберемся. Код был как проба пера.
У каждого GPU устройства есть свой компилятор и он сам решает, что пропустить. OpenCL компиляторы Intel, AMD и Nvidia отличаются друг от друга.
Мы у себя тестируемся под OpenCL 2.0, у которого гораздо больше функционал. На OpenCL 1.2 этот тест проверим и поправим.
Для дополнительной информации рекомендую почитать наши статьи про OpenCL в MetaTrader 5:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Это демонстрация не только расчетов на GPU в MQL5 коде, но и графических возможностей терминала:
Полный исходный код в виде скрипта приложен. Ошибка на OpenCL 1.2 исправлена.