SSA метод, пример работы с ALGLIB - страница 2

 
Maxim Dmitrievsky:

Интересно, что в английской справке алглиб присутствует этот метод, а в русской нет. И походу не портирован для МТ

http://www.alglib.net/time-series/singular-spectrum-analysis.php

есть и статья и в кодобазе 2 примера (поиском по форуму SSA)

тут дело в том, что метод SSA несколькими способами рассчитывают, да и не суть - просто хочу разобраться как и с SSA так и как юзать ALGLIB - вот и занялся

ЗЫ: невнимателен ... да на сайте алглиб есть и сам метод в библе, но в поставке МТ нет этих ф-ций, но реализовать его не сложно, там всего то работа с матрицами и один раз нужно найти собственные значения матрицы в Матлаб это eig() - в алглиб я нашел эту ф-цию - сверял с матлабом вроде корректно работает
 
Igor Makanu:

есть и статья и в кодобазе 2 примера (поиском по форуму SSA)

тут дело в том, что метод SSA несколькими способами рассчитывают, да и не суть - просто хочу разобраться как и с SSA так и как юзать ALGLIB - вот и занялся

ЗЫ: невнимателен ... да на сайте алглиб есть и сам метод в библе, но в поставке МТ нет этих ф-ций, но реализовать его не сложно, там всего то работа с матрицами и один раз нужно найти собственные значения матрицы в Матлаб это eig() - в алглиб я нашел эту ф-цию - сверял с матлабом вроде корректно работает

ага, они в этом году только добавили ssa.. и еще гляжу рэнодом форест ускорили. Проект развивается, оказывается, а думал что заглох 10 лет назад

 

В соседней ветке недавно ноксу вспоминали, хочу для начала сделать на основе ssa (на истории погонять).

В вике есть такая фраза: "Синусоиде с частотой меньше 0.5 соответствует пара синусообразных собственных вектора с той же частотой и разницей в фазах, примерно равной π/2".

Как эти пары получить в вашей библиотеке?


 
Rorschach:

В соседней ветке недавно ноксу вспоминали, хочу для начала сделать на основе ssa (на истории погонять).

В вике есть такая фраза: "Синусоиде с частотой меньше 0.5 соответствует пара синусообразных собственных вектора с той же частотой и разницей в фазах, примерно равной π/2".

Как эти пары получить в вашей библиотеке?


не помню уже, помню, что покрутил еще с пару недель в Матлабе, не понравилось, работает как все 50/50

материалов не сохранилось, много манипуляций в прошлом году с личными хардами совершал - не найду уже

 
Rorschach:

В соседней ветке недавно ноксу вспоминали, хочу для начала сделать на основе ssa (на истории погонять).

В вике есть такая фраза: "Синусоиде с частотой меньше 0.5 соответствует пара синусообразных собственных вектора с той же частотой и разницей в фазах, примерно равной π/2".

Как эти пары получить в вашей библиотеке?


Взял Клотовскую библиотеку, у него в коде помечено как получить отдельные вектора, но там возвращаются синусоиды без сдвига, толи баг, толи фича. И не смогло отделить две синусоиды 5 и 20 бар, а что же будет если шум подмешать.

 
Rorschach:

Взял Клотовскую библиотеку, у него в коде помечено как получить отдельные вектора, но там возвращаются синусоиды без сдвига, толи баг, толи фича. И не смогло отделить две синусоиды 5 и 20 бар, а что же будет если шум подмешать.

Так и должно быть, собственные вектора сдвинуты на 90 гр, а ssa компоненты уже в фазе получаются.

На сколько понял алгоритм ssa в переводе на фильтры, ищутся собственные векторы, затем идет их свертка с рядом данных (по сути фильтрация, в вейвлет анализе свертка с вейвлетом, в фурье с синусоидой), затем свертка в обратном направлении (двух проходное сглаживание) и в конце еще усреднение по диагонали.

 
Igor Makanu:

есть и статья и в кодобазе 2 примера (поиском по форуму SSA)

тут дело в том, что метод SSA несколькими способами рассчитывают, да и не суть - просто хочу разобраться как и с SSA так и как юзать ALGLIB - вот и занялся

ЗЫ: невнимателен ... да на сайте алглиб есть и сам метод в библе, но в поставке МТ нет этих ф-ций, но реализовать его не сложно, там всего то работа с матрицами и один раз нужно найти собственные значения матрицы в Матлаб это eig() - в алглиб я нашел эту ф-цию - сверял с матлабом вроде корректно работает

Для сравнительного анализа взял программный код с сайта ALGLIB  и собрал на Visual 2019 библиотеку (dll), которую можно использовать с программами для MT5. Вычислительные эксперименты показали хорошие качества и эффективность ALGLIB-алгоритмов. Написал и представил статью [описание + собранный модуль + тесты], но редактор не пропустил. Поскольку сам уже писал индикаторы на оригинальных алгоритмах ССА, то сравнил результаты расчетов индикаторов, построенного на ALGLIB со своими. Они (результаты) близки, но имеют некоторые отличия. И не всегда, но часто прогнозы по моим программам не хуже, а лучше, чем на алгоритмах ALGLIB. Поскольку математика одинаковая, я это объясняю отличием в подготовке исходных данных, подаваемых на вычисления. Преимущество ALGLIB заключается в удобном стандарте подключения программ, удобством оптимизации параметров  и быстродействии расчетов на рядах, длина которых не подходит под БПФ. К сожалению, на местном маркете для трейдеров не представить индикаторы и эксперты, которые используют dll-библиотеку ))). Кто-нибудь подкинет идею как, где и кому поставлять подобные разработки? :))

Чтобы собрать библиотеку для MQL5 надо переделать свежие файлы dataanalysis.cpp/h в соответствующий формат "mqh". Остальные файлы вроде бы есть. Если бы кто-нибудь из "крутых" MQL-программеров это проделал, то, вероятно, ССА в состав местного Alglib можно добавить. 

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
В языке MQL5 предусмотрена обработка некоторых предопределенных событий. Функции для обработки этих событий должны быть определены в программе MQL5: имя функции, тип возвращаемого значения, состав параметров (если они есть) и их типы должны строго соответствовать описанию функции-обработчика события. Именно по типу возвращаемого значения и по...
Причина обращения: