Логика

Как Наша Программа Пытается «Почувствовать» Рынок и Найти Похожие Моменты в Прошлом

Представь, что у рынка криптовалют есть свое «настроение». Иногда он бычий (все растет), иногда медвежий (все падает), а иногда он просто топчется на месте, не зная, куда идти. Мы хотим научиться распознавать это «настроение» в конкретный момент времени для конкретной монеты (например, для ATOM сегодня в 10:00).

Зачем нам это?

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

Как мы это делаем? Шаг за шагом:

  1. Выбираем Монету и Время: Определяемся, какую монету анализируем (например, ATOM) и для какого момента времени (например, прямо сейчас).
  2. Собираем «Улики» из Недавнего Прошлого: Чтобы понять текущее «настроение», нам нужно посмотреть, как рынок вел себя незадолго до этого. Мы берем данные за последние, скажем, 5 дней:
    • Цены: Как менялась цена нашей монеты (ATOM) каждую минуту.
    • Объемы: Как много этой монеты покупали и продавали каждую минуту.
    • «Старший Брат»: Рынок часто следует за «лидерами». Поэтому мы также берем цены и объемы за те же 5 дней для главной монеты, которая влияет на нашу (например, Bitcoin (BTC) или Ethereum (ETH)).
  3. Анализируем Тренды – Куда Двигался Рынок? (с Учетом «Нейтральности»): Теперь самое интересное. Мы анализируем собранные данные, чтобы понять основные тенденции. Но мы учитываем, что не каждое маленькое движение – это тренд.
    • Тренд Цены по Дням: Смотрим, как закончился каждый из 5 дней по сравнению с предыдущим.
      • Цена заметно Выросла? Ставим ‘U’ (Up).
      • Цена заметно упаДала? Ставим ‘D’ (Down).
      • Цена изменилась Незначительно (совсем чуть-чуть, на маленький процент)? Ставим ‘N’ (Neutral). Маленькие колебания – это скорее шум, а не тренд. Получаем последовательность, например: «UNDNU» (Вверх, Нейтрально, Вниз, Нейтрально, Вверх).
    • Общий Тренд Цены за Период: Сравниваем цену в конце 5-го дня с ценой в конце 1-го дня. За весь период цена заметно выросла (‘U’), упала (‘D’) или почти не изменилась (‘N’)?
    • Тренд Объема по Дням: То же самое делаем для общего объема торгов за каждый день. Активность была заметно выше (‘U’), ниже (‘D’) или почти такой же (‘N’) по сравнению с предыдущим днем? Получаем последовательность, например, «DUNUN».
    • Общий Тренд Объема за Период: Сравниваем общую активность (суммарный объем) в последний день с активностью в первый день. Она заметно выросла (‘U’), упала (‘D’) или осталась примерно на том же уровне (‘N’)?

    Мы проводим такой анализ и для нашей монеты (ATOM), и для ее «старшего брата» (BTC/ETH).

  4. Собираем Полное «Описание Настроения»: В итоге у нас есть 8 характеристик текущего «настроения» рынка, каждая из которых может быть ‘U’, ‘D’ или ‘N’:
    1. Дневной тренд цены монеты (например, «UNDNU»)
    2. Общий тренд цены монеты (например, «U»)
    3. Дневной тренд объема монеты (например, «DUNUN»)
    4. Общий тренд объема монеты (например, «N»)
    5. Дневной тренд цены «старшего брата»
    6. Общий тренд цены «старшего брата»
    7. Дневной тренд объема «старшего брата»
    8. Общий тренд объема «старшего брата»
  5. Создаем Уникальный «Отпечаток Пальца» (Хеш): Эти 8 характеристик (последовательности U/D/N) мы объединяем в одно длинное текстовое описание. Затем специальная компьютерная программа (хеш-функция) превращает это описание в короткий, уникальный код – как цифровой «отпечаток пальца» (например, f8a3b1…).
    • Важно: Если все 8 характеристик точно такие же, «отпечаток» будет абсолютно одинаковым. Но если изменится хотя бы одна буква (например, ‘U’ станет ‘N’), «отпечаток» будет совершенно другим!
  6. Запоминаем «Отпечатки»: Мы сохраняем каждый полученный «отпечаток» вместе с датой, временем и названием монеты. Мы делаем это постоянно, накапливая базу данных прошлых «настроений» рынка.
  7. Ищем Похожие Моменты в Прошлом (Двухэтапный Поиск): Вот тут начинается самое главное – поиск исторических аналогов текущему моменту. Мы делаем это в два этапа:
    • Этап 1: Быстрая Фильтрация по «Отпечатку Пальца» (Хешу):
      • Сначала мы рассчитываем «отпечаток пальца» для текущего момента (используя данные за последние 5 дней и нашу логику с U/D/N).
      • Затем мы очень быстро ищем в нашей базе данных точно такие же «отпечатки» из прошлого.
      • Плюс: Это позволяет мгновенно отсеять 99.9% исторических моментов, которые точно не похожи на текущий по нашим 8 базовым трендам.
      • Минус: Этот фильтр очень строгий. Если в прошлом был момент, где 7 из 8 трендов совпали, а один был, скажем, ‘N’ вместо ‘U’, то «отпечатки» будут разными, и мы пропустим этот потенциально похожий момент на первом этапе.
    • Этап 2: Детальное Сравнение Графиков Цен:
      • Теперь мы берем только те моменты из прошлого, которые прошли первую проверку (имеют такой же «отпечаток»). Их может быть несколько, а может и не быть вовсе.
      • Для каждого такого найденного момента мы делаем более глубокое сравнение: мы сравниваем сам график цены нашей монеты за те 5 дней из прошлого с текущим графиком цены за последние 5 дней.
      • Как сравниваем? Представь, что мы накладываем старый график на новый. Мы хотим понять, насколько они похожи по форме и динамике:
        • Способ 1 (Похож на «Евклидово расстояние»): Насколько точно графики совпадают по уровню цены в каждую минуту? Чем меньше «расстояние» между линиями графиков, тем они больше похожи по форме и уровню. (Иногда мы сначала приводим графики к одному масштабу, чтобы сравнивать именно форму).
        • Способ 2 (Похож на «Корреляцию Пирсона»): Насколько синхронно двигались цены? Шли ли они вверх и вниз в одни и те же моменты, даже если абсолютные цены были разными? Высокая «синхронность» означает очень похожее поведение рынка.
      • Плюс: Это гораздо более точное сравнение, чем просто U/D/N. Оно учитывает нюансы движения цены, а не только общее направление за день.
      • Минус: Сравниваем только те моменты, что прошли строгий отбор на первом этапе.
  8. Выбираем Лучшее Совпадение и Смотрим Вперед:
    • По результатам детального сравнения графиков (Этап 2), мы выбираем тот исторический момент, чей график цены оказался наиболее похожим на текущий (например, с наименьшим «расстоянием» или наибольшей «синхронностью»).
    • Затем мы смотрим, что происходило с ценой нашей монеты в течение следующих, скажем, 3 дней после этого самого похожего момента в прошлом.
    • Если цена тогда росла, это может быть сигналом к возможному росту и сейчас. Если падала – к падению.
    • Нюанс: Иногда полезно посмотреть не только на одно самое лучшее совпадение, а на несколько самых похожих моментов. Если в большинстве из них цена шла вверх, это дает больше уверенности.

В Итоге:

Наша программа сначала создает упрощенное «описание настроения» рынка (используя тренды U/D/N для цены и объема монеты и ее «старшего брата») и превращает его в уникальный «отпечаток пальца» (хеш). Этот «отпечаток» используется для быстрой фильтрации истории. Затем, для найденных совпадений, программа проводит детальное сравнение самих графиков цен, чтобы найти наиболее похожий исторический аналог. Анализ того, что произошло после этого аналога в прошлом, дает нам идею для возможного прогноза.

Добавление «Нейтрального» тренда (‘N’) делает наше первоначальное «описание настроения» более точным, отсеивая рыночный шум. А двухэтапный поиск (быстрый хеш + детальное сравнение графиков) позволяет найти более качественные и действительно похожие исторические ситуации.