Выделение тренда и фильтрация шумов с помощью метода Сингулярного Спектрального Анализа. Управление параметрами индикатора позволяет управлять гладкостью выделяемого тренда и порогом фильтрации шума.
Оптимальная декомпозиция данных на трендовую, низкочастотные и высокочастотные аддитивные составляющие с последующей реконструкцией сигнала определяется временным горизонтом торговой стратегии. Индикатор (сглаженный тренд) не имеет фазовых запаздываний в отличие от методов обычной фильтрации и сглаженного среднего.
Индикатор тренда на основе метода "Гусеница" предполагает разложение ряда цен на аддитивные составляющие. При этом не требуется стационарности ряда, знания модели тренда, сведений о наличии периодических составляющих и их периодах [1-4].
Возможности реализованного индикатора позволяют сглаживать ряд, выделять тренд и, выбирая параметры подстройки модели под исходный ряд цен, учитывать или подавлять вклад от слагаемых осциллирующих на меньшем масштабе времени — фильтровать"шумовые" колебания.
Основными параметрами являются:
Варианты целого параметра EigNoiseFlag:
Типичный выбор и влияние параметров:
Класс CCaterpillar, реализованный в файле CCaterpillar.mqh, включает все необходимое для расчетов тренда, кроме процедур линейной алгебры (для сингулярного разложения траекторной матрицы используется библиотека ALGLIB). Представленный в файле код включает описания для членов и процедур класса.
Для работы индикатора требуются файлы:
Не стоит задавать фрагмент данных более 300 значений из-за большой вычислительной нагрузки. Оптимально 150-200. Всегда можно перейти на другой период отсчетов графика для охвата большей истории.
Окно "гусеницы" разумно менять в интервале 1/3-1/2 длины фрагмента. Если окно превышает половину фрагмента, то в силу симметрии траекторной и транспонированной ей матрицы, это эквивалентно окну с длиной, симметричной относительно середины фрагмента. Малая длина окна не дает качественного усреднения и разделения информации по отдельным модам.
Если наблюдается замедленное поступление данных в графическом интерфейсе ряда цен, то возможными решениями будут: а) уменьшить длину фрагмента; б) увеличить параметр дискретности пересчета ReCalcLim в функции OnCalculate.

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

Рис. 2. Период 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].
Exp_Volume_Weighted_MA_Digit_System
Торговая система, построенная на сигналах индикатора Volume_Weighted_MA_Digit_System.
Exp_JFatl_Digit_System
Торговая система, построенная на сигналах индикатора JFatl_Digit_System.
Exp_Volume_Weighted_MACandle
Торговая система, построенная на сигналах индикатора Volume_Weighted_MACandle.
Exp_Donchian_Channels_System
Торговая система, построенная на сигналах индикатора Donchian_Channels_System.