Обсуждение статьи "3 метода ускорения индикаторов на примере линейной регрессии"

 

Опубликована статья 3 метода ускорения индикаторов на примере линейной регрессии:

Рассматриваются методы оптимизации вычислительных алгоритмов индикаторов. Каждый читатель найдет себе метод по душе: описан один простой метод, один требующий серьезных познаний в математике, и еще один, для которого нужна смекалка. Реализация большинства представленных методов задействует конструкционные особенности устройства индикаторов или терминала MetaTrader 5. При этом сами методы довольно универсальны - применимы не только для ускорения расчета линейной регрессии, но и для многих других индикаторов.

Автор: Andrew

 

Честно говоря баян, об этом уже лет пять как известно на четвёртом форуме.

Но думаю новичкам будет интересно.

Статья ещё раз показывает что статистические методы реализованные в стандартных индикаторах рулят, не нужно их недооценивать.


 
Диалог автора. Александр Смирнов. это уже второе обсуждение этой темы, первое где-то в 2006 было.
там кстати есть и формулы регрессии второго порядка через машки.
Диалог автора. Александр Смирнов. - MQL4 форум
  • www.mql5.com
Диалог автора. Александр Смирнов. - MQL4 форум
 
Urain:

Честно говоря баян, об этом уже лет пять как известно на четвёртом форуме.

Но думаю новичкам будет интересно.

Да, статья ориентирована больше на новичков.

Статья ещё раз показывает что статистические методы реализованные в стандартных индикаторах рулят, не нужно их недооценивать.

Это точно. Думаю, что встроенные в терминал индикаторы (iMA и т.д.) работают быстро не только за счет знания разработчиками терминала методов оптимизации, но и за счет того, что они исполняются как часть exe-файла. Т.е., в отличие от внешних индикаторов, это полноценная компиляция, а не какой-нибудь пи-код. Ну и, возможно, они имеют какой-нибудь прямой скоростной доступ к таймсериям, который недоступен для внешних индикаторов.

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

Urain:
Диалог автора. Александр Смирнов. это уже второе обсуждение этой темы, первое где-то в 2006 было.
там кстати есть и формулы регрессии второго порядка через машки.

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

 
ds2: Да, я видел похожие темы. Но нигде не было понятно поэтапно расписано, как получилась свертка. Пришлось выводить все формулы самому (несколько листов черновиков исписал), чтобы рассказать в статье все нюансы. Там хитрый момент с нумерацией баров для LWMA, например.

Вот тут доказательство. Т.е. чуть раньше, чем Urain ссылку дал.

Я не претендую на приоритет :). Это, вообще говоря, почти тривиальный факт.

P.S. Если не все забыл, результат сравнения скоростей все же оказался в пользу классического расчета - но существенно оптимизированного (разница невелика, но всё же; см. посты Candid'a). Однако аналогичный прием в применении к регрессиям более высокого порядка (квадратичной, кубичной и т.п.), похоже, способен показать преимущество метода "свертки" над классикой. 

Диалог автора. Александр Смирнов. - MQL4 форум
  • www.mql5.com
Диалог автора. Александр Смирнов. - MQL4 форум
 

Что-то в реализации не так:

 При LRMethod == LR_M_Sum

 получается, что Sx и Sxx - константы:

  Sxx = ExtBufSxx[prevbar];

  ExtBufSxx [bar] = Sxx;

Если так д.б., то зачем буфера?


Возможно ещё быстрее получится, если считать SMA и LWMA методом скользящих сумм, а результат посчитать как свёртку.

Тем более, что не плохо бы знать и наклон регрессии, который тоже можно посчитать через SMA и LWMA.

Реализовал на 4-ке: https://www.mql5.com/ru/code/10642

Быстрая LRMA
Быстрая LRMA
  • голосов: 3
  • 2012.03.08
  • Vladislav Eremeev
  • www.mql5.com
Написан под впечатлением от статьи "3 метода ускорения индикаторов на примере линейной регрессии". Считает очень быстро.
Причина обращения: