MetaTrader 5 Python User Group - как использовать Python в Метатрейдере - страница 24

 
Maxim Dmitrievsky:

Визуально подобные случае тоже неплохо определяются

Не смог интерпретировать картинки.

 
fxsaber:

Не смог интерпретировать картинки.

статья на подходе

интересно, как циклы и задачи у некоторых в головах иногда совпадают ))
 
fxsaber:

В блоге выложил расчет, который великолепно параллелится. К сожалению, OpenCL-информация такого уровня, что требует значительно более высоких компетенций, чем у меня имеются.

Хотелось бы на простом примере (как в блоге) увидеть OpenCL-реализацию и результат ускорения.

Почему разговор без ссылки, хотя стоит требование?
 
Renat Fatkhullin:
Почему разговор без ссылки, хотя стоит требование?

Требования нет. Ссылку на запись в блог не дал, дабы лишний раз не давать повод в обвинениях в саморекламе.

https://www.mql5.com/ru/blogs/post/731774

Research03: находим простые связи между движениями цены в разных частях суток
Research03: находим простые связи между движениями цены в разных частях суток
  • 2019.12.04
  • www.mql5.com
Как это ни парадоксально, но именно при активной алготоровле много времени уходит на вглядывание в монитор. Иногда возникают иллюзии, будто что-то полезное уловил глазом. Так произошло и в этот раз. Давно была гипотеза, что какие-то движения внтури дня имеют связь с движениями после в этом же дне. Например, может показаться, что микрогепы в...
 
Renat Fatkhullin:

Применение этого параметра в Visual Studio я так(как и все остальные) и не смог увидеть за последние 10 лет. Даже включив все флаги репортинга о развертках циклов.

Он по сути не работал и не работает даже на огромных проектах, где есть масса возможностей распараллелиться. Работает только прямой OpenMP с ручной разметкой циклов.

В MQL5 циклы не параллелятся.

Согласен с fxsaber, что OpenCL требует высокий порог входа.
То что он есть, хорошо, но разбираются в нём единицы.

То что циклы в mql5 не параллелятся, об этом и было предложение для возможной реализации.
Сейчас платформа на Clang может там есть хороший параллелизм, не знаю.
Смысл предложения выдернуть его в директиву mql.
 

 
Renat Fatkhullin:

Правильно ли я понимаю, если поставить такую задачу на поиск похожих движений Оптимизатору, то генетика не подойдет?

При этом на полный перебор не включить будет Тестер, т.к. очень много проходов делать надо.

Т.е. единственный путь решить эту задачу - запуск скрипта в Терминале.

 
Lyuk:

Решил проверить на реальном проекте - может в питоне сплошь и рядом используют jit компилятор? У меня стоит ranger https://github.com/ranger/ranger, проект из 122 файлов (26368 строк), грепнул их на наличие @njit

$ grep '@njit' $(xbps-query -f ranger)

Результат - ни одного нахождения. Боюсь, что активное использование данной фичи превратит запуск в многоминутный квест.

 
Lyuk:

При всём уважении , но вы просто не умеете его готовить. Переделал ваш пример:

На Python:


Вот сравнения на Питоне 3.8 и MQL5 в single thread/OpenCL режимах: время в секундах, чем меньше, тем лучше

pi-single.py
pi-multi.py
Speed PI.mq5 single
Speed PI.mq5 OpenCL
4.1743
0.2101
4.1836
0.1025

Питон в JIT режиме через numba, железо такое:

  • Windows 10 x64, Intel Xeon  E5-2690 v3 @ 2.60GHz
  • GeForce RTX 2080

Пример использования OpenCL очень простой и без изысков по его оптимизации. Хотя задача не массивная для OpenCL и у него сработали оверхеды на подготовку, он все равно показал гораздо лучший результат.

С OpenCL можно штатно гонять очень большие параллельные вычисления. Порог входа не большой, достаточно одного дня поразбираться, чтобы понять как его использовать.

Файлы для воспроизведения приложены.

Файлы:
 
Renat Fatkhullin:

Хотя задача не массивная для OpenCL и у него сработали оверхеды на подготовку, он все равно показал гораздо лучший результат. 

Как отлаживали OpenCL-часть кода?

 
Renat Fatkhullin:

Пример использования OpenCL очень простой и без изысков по его оптимизации. Хотя задача не массивная для OpenCL и у него сработали оверхеды на подготовку, он все равно показал гораздо лучший результат.


Ренат, напишите пожалуйста примерно в каких случаях OpenCL даст преимущество, работа с большим кол-вом массивов или если в одном советнике большой набор символов и индикаторов

я не профи программист, для меня возможно элементарные вещи на уровне программирования, сложно

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