Смотри, как бесплатно скачать роботов
Ищи нас в Facebook!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Индикаторы

Индикатор тренда на основе Сингулярного Спектрального Анализа - индикатор для MetaTrader 5

Просмотров:
5996
Рейтинг:
(30)
Опубликован:
2016.07.06 15:18
\MQL5\Include\SSA\ \MQL5\Indicators\
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Выделение тренда и фильтрация шумов с помощью метода Сингулярного Спектрального Анализа. Управление параметрами индикатора позволяет управлять гладкостью выделяемого тренда и порогом фильтрации шума.

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

Индикатор тренда на основе метода "Гусеница" предполагает разложение ряда цен на аддитивные составляющие. При этом не требуется стационарности ряда, знания модели тренда, сведений о наличии периодических составляющих и их периодах [1-4].

Возможности реализованного индикатора позволяют сглаживать ряд, выделять тренд и, выбирая параметры подстройки модели под исходный ряд цен, учитывать или подавлять вклад от слагаемых осциллирующих на меньшем масштабе времени — фильтровать"шумовые" колебания.


Параметры индикатора

Основными параметрами являются:

  1. SegmentLength — длина фрагмента "новейшей истории" ряда цен.
  2. SegmentLag — длина гусеницы. Выбирается в интервале от 1/4 до 1/2 длины фрагмента. Влияет на разделимость составляющих и гладкость тренда.
  3. EigMax — число главных компонент (мод разложения). Определяет размерность подпространства сигналов и учет колебаний разного масштаба.
  4. EigNoiseFlag флаг расчета числа главных компонент, для переключения между режимами "фиксированное" число мод и величина допускаемого шума. Варианты = 0,1,2.
  5. EigNoiseLevel — допускаемый процент вклада шума в суммарную "энергию колебаний" ряда, если EigNoiseFlag != 0. Переопределяет EigMax в процессе вычислений.

Варианты целого параметра EigNoiseFlag:

  • 0 — размерность пространства сигнала фиксирована: [1,EigMax] ( EigNoiseLevel игнорируется. Если EigMax больше возможного, то ограничивается возможным).
  • 1 — удельный вклад собственного значения отдельной моды в общую сумму значений не менее заданной ошибки EigNoiseLevel. EigMax подбирается автоматически.
  • 2 — учитываются моды, чей удельный суммарный вклад отличается от "единицы" (полный) не более чем на EigNoiseLevel. EigMax подбирается автоматически.

Типичный выбор и влияние параметров:

  • SegmentLength — длина фрагмента ряда цен в конце истории данных. Выбирается исходя из стабильности истории и более-менее однородного характера изменения данных, либо периода стратегии.
  • SegmentLag — задает размерность "ширину фильтра" для отдельных мод (обратно пропорционально). Влияет на гладкость и подстройку тренда под изменчивость графика цен.
  • EigMax — задает размерность подпространства "сигнала" с полезной информацией. Устанавливает порог "шума" .
  • EigNoiseLevel — задает величину "шума" в суммарной дисперсии ряда. Указывать в ПРОЦЕНТАХ.


Программная реализация

Класс CCaterpillar, реализованный в файле CCaterpillar.mqh, включает все необходимое для расчетов тренда, кроме процедур линейной алгебры (для сингулярного разложения траекторной матрицы используется библиотека ALGLIB). Представленный в файле код включает описания для членов и процедур класса.

Для работы индикатора требуются файлы:

  • 1) MQL5\Include\SSA\CCaterpillar.mqh
  • 2) MQL5\Indicators\SingularMA.mq5
  • 3) Библиотека ALGLIB (присоединяюсь к многим, благодарным Сергею Бочканову за предоставленную замечательную библиотеку численных методов ALGLIB)


Особенности использования

Не стоит задавать фрагмент данных более 300 значений из-за большой вычислительной нагрузки. Оптимально 150-200. Всегда можно перейти на другой период отсчетов графика для охвата большей истории.

Окно "гусеницы" разумно менять в интервале 1/3-1/2 длины фрагмента. Если окно превышает половину фрагмента, то в силу симметрии траекторной и транспонированной ей матрицы, это эквивалентно окну с длиной, симметричной относительно середины фрагмента. Малая длина окна не дает качественного усреднения и разделения информации по отдельным модам.

Если наблюдается замедленное поступление данных в графическом интерфейсе ряда цен, то возможными решениями будут: а) уменьшить длину фрагмента; б) увеличить параметр дискретности пересчета ReCalcLim в функции OnCalculate.

Период 5 мин. Два тренда SSA(120,50,4), SSA(50,20,7) и скользящее среднее MA(14)

Рис.1. Период 5 мин. Два тренда SSA(120,50,4), SSA(50,20,7) и скользящее среднее MA(14)


Период 1 час. Два тренда SSA(120,50,4), SSA(50,20,7) и скользящее среднее MA(14)

Рис. 2. Период 1 час. Два тренда SSA(120,50,4), SSA(50,20,7) и скользящее среднее MA(14)


Период 1 день. Два тренда SSA(120,50,4), SSA(50,20,7) и скользящее среднее MA(14)

Рис. 3. Период 1 день. Два тренда SSA(120,50,4), SSA(50,20,7) и скользящее среднее MA(14)

Применение сингулярного анализа для реализации индикатора тренда в данном виде является базовой иллюстрацией. Широкое применение методов ССА в финансовой сфере для анализа и прогнозирования временных рядов представлено в [5-7].


Литература

  1. Elsner J.B., Tsonis A.A. Singular Spectrum Analysis: A New Tool in Time Series Analysis. Plenum Press. New York, 1996. 164 p.
  2. Данилов Д.Л., Жиглявский А.А. Главные компоненты временных рядов: Метод «Гусеница». СПб.: СПбГУ, 1997. -308 с.
  3. Голяндина Н.Э. Метод «Гусеница»-SSA: анализ временных рядов: Учеб. пособие. СПб.: ВВМ, 2004. - 76 с.
  4. Главные компоненты временных рядов: метод "Гусеница", Под ред. Д. Л. Данилов, А. А. Жиглявский. СПб.: Пресском, 1997. С. 308.
  5. Метод «Гусеница»-SSA — АРПСС — СПОАРУГ и модель АРСПСС — СПОАРУГ для анализа и прогнозирования финансово-экономических временных рядов: сборник трудов второй Международной научно-методической конференции «Математические методы, модели и информационные технологии в экономике», 4—6 мая 2011 г., Черновцы. — С. 306—308.
  6. Кожихова Н.А., Ширяев В.И. Прогнозирование временного ряда с учетом хаотической компоненты. Вестник ЮУрГУ, № 22, 2010, С. 22-25.
  7. А.М. Аvdeenko Advisors and indicators based on the SSA models and non-linear generalizations // см. arXiv:
Exp_Volume_Weighted_MA_Digit_System Exp_Volume_Weighted_MA_Digit_System

Торговая система, построенная на сигналах индикатора Volume_Weighted_MA_Digit_System.

Exp_JFatl_Digit_System Exp_JFatl_Digit_System

Торговая система, построенная на сигналах индикатора JFatl_Digit_System.

Exp_Volume_Weighted_MACandle Exp_Volume_Weighted_MACandle

Торговая система, построенная на сигналах индикатора Volume_Weighted_MACandle.

Exp_Donchian_Channels_System Exp_Donchian_Channels_System

Торговая система, построенная на сигналах индикатора Donchian_Channels_System.