Когда нужно создать МНОГО индикаторов. Как лучше это сделать? - страница 2

 
Alexey Loginov:

Я думаю, что индикаторы, о которых идет речь, при проектировании не были предусмотрены для единовременного использования с сотней других индикаторов, следовательно их необходимо ПЕРЕПРОЕКТИРОВАТЬ под необходимые условия.

  1. Вычисление буферов индикаторов перенести с CPU на GPU с помощью OpenCL. Это позволит тратить меньше времени на получение новых значений. Например, на минутном таймфрейме это сыграет в большой плюс, т.к. если оставить вычисления на CPU, минуты может не хватить, чтобы получить новые данные
  2. Ограничить диапазон используемой информации для вычислений. Ну, скажем до 50 баров от последних данных (тут можно для каждого индикатора подобрать свой диапазон).
  3. Уменьшить размер буферов, хранящих значения индикаторов. 
Короче, все придется переписывать, шоб работало быстро и без использования лишней памяти. 

У Вас есть реальный опыт переноса индикаторов на GPU?

 
Aleksey Vyazmikin:

У Вас есть реальный опыт переноса индикаторов на GPU?

Вы этим вопросом высказываете сомнение относительно осуществимости предложенных советов? Или у вас есть ко мне деловое предложение? 

Есть опыт написания 2D движка и шейдеров, лол. После этой канители я свято верую в надобность переноса громоздких итеративных циклов на ядра графического процессора. На MQL5 еще не пробовал скидывать нагруз. на видеокарту, но в документации, кажется, есть вкладочка "Работа с OpenCL". Вот только мне было бы лень все 100 индикаторов переписывать. Даже если потребуется, даже за баксы$.

Документация по MQL5: Работа с OpenCL
Документация по MQL5: Работа с OpenCL
  • www.mql5.com
Программы на OpenCL предназначены для выполнения вычислений на видеокартах с поддержкой стандарта OpenCL 1.1 или выше. Современные видеокарты содержат сотни небольших специализированных процессоров, которые могут одновременно выполнять простые математические операции над входящими потоками данных. Язык OpenCL берёт на себя организацию таких...
 
Alexey Loginov:

Вы этим вопросом высказываете сомнение относительно осуществимости предложенных советов? Или у вас есть ко мне деловое предложение? 

Есть опыт написания 2D движка и шейдеров, лол. После этой канители я свято верую в надобность переноса громоздких итеративных циклов на ядра графического процессора. На MQL5 еще не пробовал скидывать нагруз. на видеокарту, но в документации, кажется, есть вкладочка "Работа с OpenCL". Вот только мне было бы лень все 100 индикаторов переписывать. Даже если потребуется, даже за баксы$.

Мне интересен факт реализации, ибо сам не раз об этом задумывался и просил у MQ  написать статью на эту тему.

 
Aleksey Vyazmikin:

Мне интересен факт реализации, ибо сам не раз об этом задумывался и просил у MQ  написать статью на эту тему.

На данный момент работаю над созданием библиотеки, позволяющей проектировать и обучать нейронные сети прямого распространения различного уровня сложности, а так же формировать классифицированные обучающие выборки. Пока я с головой в тестах и архитектурных схемах draw.io. Когда руки дойдут до оптимизации, так и быть, затрону тему индикаторов. Там и статейку напишу, раз есть в этом потребность. 

 
Alexey Loginov:

На данный момент работаю над созданием библиотеки, позволяющей проектировать и обучать нейронные сети прямого распространения различного уровня сложности, а так же формировать классифицированные обучающие выборки. Пока я с головой в тестах и архитектурных схемах draw.io. Когда руки дойдут до оптимизации, так и быть, затрону тему индикаторов. Там и статейку напишу, раз есть в этом потребность. 

Спасибо, будет познавательно.

 
SEM:

Не обязательно, индикаторы с разными входными параметрами (например усреднение), дают интересную картину, пример из 20 индикаторов с разным периодом усреднения.


А практический смысл какой? Все эти индикаторы имеют одну и ту же алгоритмическую основу. 

 
Sergey Vradiy:

А практический смысл какой? Все эти индикаторы имеют одну и ту же алгоритмическую основу. 

Смысл как у любого другого индикатора.
 
Vladimir Karputov:

Попробую разобраться как лучше решить такую задачу: в эксперте нужно обращаться к данным сотни индикаторов.

Сразу вопросы возникают:

  1. Так как создание стольких индикаторов потребует время, как организовать их создание? Чтобы не споткнуться?
  2. Имеет ли смысл создавать обычные индикаторы? Или нужно немного переписать индикаторы, чтобы ограничить (сильно ограничить) глубину расчётной части?
  3. ...

В онините, в цикле, инициализируем все копии, хендлы собираем в массив.
В онтике перебираем все хендлы - ждём пока всё рассчитается.
И потом, для получения данных, также перебираем хендлы, собираем информацию.