Как по одному графику цен восстановить невидимый портрет рынка

Статья написана партнёром FO ABTRUST Евгением Ерофеевым
Любой ценовой график — это плоскость. Время по горизонтали, цена по вертикали. Две координаты. Но рынок — система с гораздо большим числом степеней свободы: настроения инвесторов, потоки ликвидности, макроэкономические шоки, обратные связи между участниками. Как может двумерная картинка вместить всё это?
Никак. Но есть способ обмануть ограничения плоскости. Он называется теорема Такенса — и это, возможно, самый элегантный математический трюк из всех, что применялись к финансам.
Тень на стене: главная метафора
Представьте, что вы смотрите на трёхмерный предмет через узкую щель. Вы видите только его проекцию — тень на стене. Можно ли по этой тени восстановить форму предмета?
Интуиция подсказывает: нет. Тень двумерна, предмет трёхмерен — информация потеряна.
Но математик Флорис Такенс доказал обратное. Если система детерминирована (пусть даже хаотична), её полная динамика закодирована в любой наблюдаемой переменной. Цена акции, объём торгов, волатильность — неважно. Выберите одну, и в ней уже содержится весь портрет системы. Надо только знать, как его проявить.
Фокус в том, чтобы развернуть одномерный ряд в многомерное пространство — не добавляя новых данных, а используя саму историю цен.
Как это работает: из линии в облако
Возьмите дневные цены SPY: x₁, x₂, x₃, ..., xₙ. Пока это просто цепочка чисел. А теперь сделайте следующее:
Выберите задержку τ — например, один торговый день.
Для каждого момента времени t постройте точку в двумерном пространстве: (xₜ, xₜ₊₁).
Соедините точки — получится не линия, а облако со структурой.
Вы только что восстановили фазовый портрет — проекцию аттрактора рынка. Вместо плоского графика «цена от времени» вы видите геометрию самой динамики: где система «любит» находиться, как она переходит из одного состояния в другое, где у неё резкие развороты.
Двух измерений, правда, маловато. Настоящий аттрактор может требовать трёх, четырёх или даже пяти измерений. Поэтому общая формула для точки в m-мерном пространстве выглядит так:
X(t) = [x(t), x(t+τ), x(t+2τ), ..., x(t+(m−1)τ)]
Каждая точка — это не одна цена, а срез истории длиной в m шагов. Рынок «помнит» себя — и эта память проявляется в геометрии облака.
Две загадки: τ и m
Фокус работает при одном условии: τ и m должны быть выбраны правильно. Слишком маленькая задержка — точки слипаются в диагональ, аттрактор вырождается. Слишком большая задержка — связь между координатами теряется, структура рассыпается в белый шум.
Выбор τ — взаимная информация. Для каждого возможного τ считается, насколько xₜ и xₜ₊τ «знают» друг о друге. При τ = 1 знание максимально (вчерашняя цена сильно связана с сегодняшней). С ростом τ связь падает. Нужен первый локальный минимум — момент, когда точки уже достаточно независимы, чтобы развернуть аттрактор, но ещё не потеряли структурную связь.
Для дневных данных SPY это τ = 4.
Выбор m — ложные ближайшие соседи. Представьте, что вы смотрите на клубок ниток через трубку малого диаметра. Нити, которые в реальности далеко друг от друга, кажутся соседями — потому что третье измерение сплющено. Это ложные соседи. Увеличивайте m, пока доля таких «обманок» не упадёт ниже 5%.
Для SPY на сырых дневных данных это m = 6.
Ловушка: переразмеренность
Здесь кроется главный подвох. Казалось бы: чем больше m, тем больше информации — бери m = 20 и не парься. Но с ростом размерности работает проклятие размерности: соседей становится катастрофически мало, расстояния между точками выравниваются, и любая структура тонет в пустоте.
Для типичного финансового ряда из 1000–2000 точек m = 10 — уже потолок, выше которого NN-прогноз теряет смысл просто потому, что у каждой точки слишком мало настоящих соседей.
Практическое правило: m должно быть минимальным, при котором ложные соседи исчезают. Не больше.
При чём тут фильтрация
В предыдущей статье мы обсуждали очистку сигнала от шума. Теперь понятно, почему это критично: зашумлённый аттрактор — это «пушистое» облако, в котором ложных соседей гораздо больше. Шум добавляет ложную сложность: точки, которые в чистом сигнале лежали бы рядом благодаря общей динамике, на зашумлённом ряду разбрасываются в стороны, и алгоритм FNN вынужден поднимать m, чтобы отличить настоящих соседей от случайных.
Фазовый портрет SPY при τ = 4 и m = 6. Слева — сырые дневные цены: «пушистое» облако, размытое по диагонали из-за шума. Справа — те же данные после SSA-фильтрации (первые 8 компонент): боковая рябь ушла, проявилась более плотная, структурированная траектория. Размерность вложения в обоих случаях считается на сырых данных и равна m = 6 — фильтрация убирает визуальный шум, но кардинально не меняет оценку m для этого ряда.Поэтому правильный порядок действий: сначала фильтрация, потом реконструкция, потом прогноз. Без первого второй шаг теряет смысл, без второго третий — тоже.
Что мы на самом деле видим
Восстановленный аттрактор — это не просто красивая картинка. Это функциональный инструмент:
Плотные области — зоны, где рынок «любит» находиться (равновесия, диапазоны консолидации).
Разреженные траектории — быстрые переходы между режимами (паника, ралли).
Складки и завихрения — если они есть, это похоже на признак детерминированного хаоса: система не случайна, но непредсказуема на длинном горизонте из-за чувствительности к начальным условиям.
Если после реконструкции вы видите бесформенное облако без структуры — скорее всего, никакого аттрактора нет, и рынок действительно ближе к случайному блужданию.
Важная оговорка: то, что ряд можно реконструировать по Такенсу, ещё не доказывает, что рынок — детерминированный хаос. Та же геометрия иногда возникает у чисто стохастических процессов. Такенс здесь работает как диагностический инструмент, а не как приговор: реконструкция задаёт вопрос «есть ли здесь структура?», а ответ даёт уже проверка прогнозом (см. ниже).
Как проверить, что портрет настоящий
Стабилизация D₂. Корреляционная размерность должна выйти на плато при росте m. Если продолжает расти — шум маскируется под структуру.
λ₁ > 0. Максимальный показатель Ляпунова должен быть положительным — хаос жив.
Прогноз ближайших соседей. Самый честный тест: берём текущую точку в фазовом пространстве, находим исторических соседей, смотрим, куда они пошли — и проверяем, попадает ли реальное движение в этот прогноз. Если NRMSE на восстановленном аттракторе ниже, чем на сыром ряду — реконструкция работает.
С чего начать
В R — пакет nonlinearTseries: функции timeLag (взаимная информация → τ), falseNearestNeighbours (FNN → m), buildTakens (построение фазового пространства), estimateEmbeddingDim (автоматический подбор m). Плюс plot — и вы видите свой первый фазовый портрет за 20 строк кода.
В Python — nolds для размерности и Ляпунова, scikit-learn для поиска соседей, ручная реализация Такенса через np.column_stack.
Порядок для первого эксперимента:
Загрузите SPY за 5 лет
Примените SSA (см. предыдущую статью) — уберите очевидный шум
Найдите τ через mutual information
Найдите m через FNN
Постройте X(t) — готово, вы смотрите на портрет рынка
Проверьте прогнозом ближайших соседей
Итог
Теорема Такенса — это билет в мир, где рынок перестаёт быть плоской линией и становится геометрическим объектом. Вы не добавляете новых данных. Вы просто перестаёте смотреть на цену как на цепочку чисел и начинаете видеть её как траекторию в многомерном пространстве — со своими изгибами, плотностями и переходами.
Это не гарантирует прибыльных прогнозов. Но это даёт то, чего не даёт ни одна линейная модель: возможность увидеть структуру там, где другие видят только шум. А иногда увидеть — уже наполовину понять.
Что дальше
Мы рассмотрели, как строится портрет рынка — но пока не использовали его по прямому назначению: прогнозировать. В следующей статье разберём метод ближайших соседей — тот самый «самый честный тест» из раздела выше, доведённый до рабочего прогноза. Берём текущую точку на восстановленном аттракторе, находим её исторических соседей, смотрим, куда они пошли на следующем шаге, — и усредняем их траектории как прогноз.
Кажется простым, но здесь скрывается несколько подводных камней: какой горизонт прогноза покрывает хаос до того, как вступить в силу эффект бабочки, сколько соседей брать и как не обмануть себя утечкой данных из будущего. Поэтому заодно обсудим, как честно оценивать такой прогноз и почему даже правильная реконструкция не гарантирует, что он обойдёт банальную стохастическую модель.
Полезные статьи по теме:
1. Порядок в хаосе. Почему рынок не подчиняется линейным правилам и как это использовать трейдеру
2. Охота на призраков. Зачем и как отделять сигнал от шума на рынке
Это отрывок статьи. Полную версию читайте на сайте источника по ссылке ниже.
Источник: Smart-Lab