Твоя Мама
Твоя Мама личный блог
28 октября 2016, 15:26

О циклах на пальцах для непосвящённых: вейвлет-преобразование

Сергей Голубицкий продолжает знакомить читателей с циклами на фондом рынке — сегодня поговорим о том, чем можно дополнить классический алгоритм спектрального анализа, чтобы повысить его эффективность в биржевой торговле.

В статье «О циклах на пальцах для непосвящённых: Введение в спектрально-нейросетевой анализ на бирже» мы остановились на том, что классический алгоритм спектрального анализа — преобразование Фурье — работает на фондовом рынке ненадёжно. Даже если нам и удаётся выявить циклы с высокой ценовой корреляцией, от них мало проку, поскольку связь эта проявлялась в прошлом и нельзя исключать вероятности, что она не только исчезнет через какое-то время, но уже и сегодня не наблюдается.

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

Оба этих способа реализованы в современном спектральном анализе: динамическая привязка циклов осуществляется с помощью так называемого вейвлет-преобразования, а предикативные качества циклов выявляются форвардным анализом. Мы рассмотрим обе темы, и сегодня начнём разговор с вейвлета.

Ключ к пониманию термина вейвлет кроется в морфологии английского источника: wave — это «волна», а суффикс -let означает «маленький». Соответственно wavelet — «маленькая волна». Применительно к сигналу «маленький» означает «локальный», причём сразу по двум критериям — и по частоте, и по времени.

Что такое локализованная (маленькая) волна? Это моментальный снимок сигнала! Если затем эти моментальные снимки расположить друг за другом, мы получим картину не цикла как такового, а цикла в его привязке ко времени. В контексте трейдинга подобная техника позволит нам определить, какой цикл доминировал месяц назад, какой — неделю, а какой действует сегодня.

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

Спешу успокоить читателей: я вовсе не собираюсь вас пытать математической теорией, лежащей в основе техники вейвлет-преобразования. Не только по причине того, что нет ничего комичнее филолога, объясняющего сакральный смысл формулы конечной энергии вейвлета:

wavelet-formula-vcollege

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

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

Теперь, когда у нас уже есть понимание вейвлета как техники привязки циклов ко времени, мы можем посмотреть на реализацию этого алгоритма на практике.

054-cycles-vcollege

Перед нами ценовой график российского биржевого индекса РТС за последние два года. С помощью классического спектрального анализа (преобразования Фурье) мы выделили два цикла — 275 и 313 дней — которые реализуются в ценовом движении и демонстрируют самый высокий коэффициент корреляции (27 и 30 соответственно).

Обратите внимание на правый край скриншота: розовая зона — это «будущее», о котором компьютерная программа ничего не знает. Оба цикла проецированы в это будущее, однако их сигналы прямо противоположны: 275-дневный (красный) цикл завершает рост, а 313-дневный (синий) — наоборот, падение. Вопрос: на какой из этих циклов мы можем положиться?

Самое простое решение — создать так называемую кумулятивную (резонансную) волну, то есть наложить циклы друг на друга и посмотреть, что получится.

054-wave-vcollege

Кумулянта (зелёная), наложенная прямо на ценовой график, совпадает с движением 313-дневного (синего) цикла. Происходит это оттого, что 275-дневный (красный) цикл достиг апогея и в ближайшие дни почти не будет меняться, тогда как 313-дневный (синий) цикл ещё не добрался до своей низшей точки и потому продолжит интенсивное снижение.

Теперь представьте себе, что 313-дневный (синий) цикл, выявленный с помощью преобразования Фурье — которое, как известно, не учитывает время — давно уже не действует и в реальности завершил свою работу году так в 2013. Тогда то, что мы видим на графике — по сути, не сам цикл, а его фантом! Вроде звезды, которая перестала существовать миллион лет тому назад после взрыва, однако свет её всё ещё продолжает доходить до нашей планеты.

Соответственно, никакого фактора снижения на рынке сегодня не нет, а прогноз кумулятивной волны окажется целиком ошибочным, поскольку она сложилась из нейтрального (в данный момент) 275-дневного цикла и несуществующего (в данный момент) 313-дневного цикла!

Теперь давайте проанализируем данный ценовой график с помощью вейвлет-преобразования.

054-wavelet-vcollege

Кривая корреляции циклов с ценовым движением, которую мы помним по окну Spectrum Analyzer, повёрнута на 180 градусов и представлена вертикально с правого края модуля Wavelet Diagram. Вы видите также две горизонтальных линии, которые соответствуют двум выделенным нами циклам — 275 и 313-дневным. По оси Х у нас дата, а по оси Y — длительность (частота) цикла.

Временная развёрстка циклов представлена в виде теплограммы — период, когда корреляция цикла с ценой находится на максимуме, передаётся раскалённо белым цветом. Чуть слабее цикл жёлтый, затухающий цикл — красный, а синие зоны — это «мертвые» зоны, когда цикл уже не проявляет себя.

Мы можем сделать интересно наблюдение: 313-дневный (синий) цикл, расположенный на теплограмме выше, находится в стадии затухания (бледно-красная зона), а вот 275-дневный (красный) цикл — практически мёртвый, поскольку оставил красную и перешёл в голубую зону.

054-wavelet-zoom-vcollege

Как видите, всё оказалось прямо противоположным нашей гипотезе: 313-дневный (синий) цикл, который предсказывает падение, как раз ещё работает, а вот 275-дневный (красный) цикл — нейтральный по движению — наоборот, уже «умер».

Получается, что вейвлет-анализ усилил прогноз классического спектрального анализа, а сигнал на снижение рынка, полученный нами от 313-дневного (синего) цикла и кумулятивной волны, получил дополнительный вес.

Казалось бы, всё замечательно и можно начинать торговать по сигналу спектрального анализа. Увы, это не так. Самое время сейчас вспомнить о врождённых недостатках циклов, выявленных с помощью преобразования Фурье: коэффициент корреляции этих циклов с ценовым графиком отражает лишь реальность прошлых периодов, но при этом ничего не говорит о качестве того или иного цикла в плане его способности предсказывать будущее!

Иными словами, если у нас есть цикл с очень высокой корреляцией 90%, то это означает лишь то, что движение цены в прошлом совпадало с данным циклом в 9 случаев из 10. Как будет коррелировать данный цикл завтра? Этого мы не знаем, потому что преобразование Фурье не даёт нам подобной информации.

Поставим вопрос иначе: может ли так случиться, что какой-нибудь другой цикл с корреляцией 25% (по Фурье) предскажет нам будущее изменение цены лучше, чем цикл с коэффициентом 90%? Запросто! Единственное условие: у такого альтернативного цикла должен быть выше не коэффициент ценовой корреляции в прошлом, а коэффициент предикативности, то есть способности предсказывать будущее движение цены.

Представьте себе, что существует и теория, и техника, и практическая реализация (в компьютерной программе!) спектрального анализа, основанного на ранжировании циклов по мере их предикативности. Положительный результат достигается за счёт совмещения преобразования Фурье с Walk Forward Analysis — форвардным анализом, который сам по себе (вне контекста со спектральным анализом) давно используется в биржевом ремесле. Обо всём этом мы расскажем в последующих наших публикациях.

3 Комментария
  • Aero
    28 октября 2016, 15:33
    автокорреляционная функция с разным лагом, покажет тебе циклы, а тут слишком много букв)
    • SergeyJu
      28 октября 2016, 16:10
      Андрей Ерохин, спектральный анализ с помощью автокорреляционной функции возможен, конечно, но уж очень это грубый и зависящий от помех метод.
       
  • Money Мaster
    28 октября 2016, 15:37
    Твою маму, супер классно

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн