Kuzma Shevelev
Kuzma Shevelev личный блог
13 сентября 2025, 18:39

От зрения к мышлению: как создать алгоритм, который "понимает" рынок (Часть 2 — от кирпичиков к стенам)

Введение: От алфавита к словам

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

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


Часть 1: Главный вызов — проклятие большой размерности

Самая большая сложность, с которой мы сталкиваемся на этом пути, — это экспоненциальный рост количества возможных комбинаций. Это классическая проблема анализа данных, известная как «проклятие размерности».

Если одиночный бар может находиться в одном из 153 состояний, то для паттерна, состоящего всего из 5 баров, теоретическое число возможных комбинаций составит 153⁵ — это астрономическая величина, превышающая 8 миллиардов. Собрать репрезентативную статистику по каждому из таких паттернов на исторических данных попросту невозможно. Подавляющее большинство этих комбинаций никогда не встречались в истории и являются «мёртвыми» вариантами.

Реальное ограничение и практический подход

Наша цель — не описать все теоретически возможные паттерны, а выделить те, которые реально существуют и несут статистическую ценность. Ориентируясь на данные MetaTrader 5 (история EURUSD с 1971 года, что составляет примерно 25 миллионов баров M1), мы можем позволить себе оперировать примерно 1-2 миллионами уникальных комплексных паттернов. Это наш «бюджет» сложности.

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


Часть 2: Три принципа сжатия информации

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

Принцип 1: Отказ от случайного шума в пользу сути

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

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

  • Для текущего, формирующегося бара его текущее положение (например, у вершины или у основания) — это крайне важный сигнал. Это уже не шум, а отражение реального баланса сил здесь и сейчас.

Так мы отделяем случайное от закономерного, фокусируясь на том, что действительно имеет значение.

 

От зрения к мышлению: как создать алгоритм, который "понимает" рынок (Часть 2 — от кирпичиков к стенам)

Принцип 2: Иерархическая точность — чем ближе, тем важнее

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

Мы разбиваем анализ на четыре отношения между соседними барами:

  • Бар 5 и Бар 4 (фон): Классификация из 4 паттернов. Грубая оценка: был ли рост, падение или консолидация.

  • Бар 4 и Бар 3 (контекст): Классификация из 30 паттернов. Добавляется больше деталей о силе и типах движения.

  • Бар 3 и Бар 2 (предыстория): Классификация из 52 паттернов. Детализация увеличивается, мы почти в настоящем.

  • Бар 2 и Бар 1 (текущая динамика): Классификация из 80 паттернов. Максимально детальное описание самого актуального взаимодействия.

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

 

От зрения к мышлению: как создать алгоритм, который "понимает" рынок (Часть 2 — от кирпичиков к стенам)
От зрения к мышлению: как создать алгоритм, который "понимает" рынок (Часть 2 — от кирпичиков к стенам)


 

Принцип 3: Масштабируемый взгляд — учёт волатильности

Паттерн из пяти минутных баров и паттерн из пяти часовых — это совершенно разная история. Чтобы наш анализ был универсальным, мы должны учитывать не только взаимное положение баров, но и их временной масштаб относительно друг друга.

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

 


От зрения к мышлению: как создать алгоритм, который "понимает" рынок (Часть 2 — от кирпичиков к стенам)

Заключение: Строим мост от данных к смыслу

Применяя три ключевых принципа — отсечение шума, иерархическую точность и масштабируемость — мы радикально сократили пространство поиска с астрономических миллиардов до управляемых полутора миллионов статистически значимых паттернов.

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

Что дальше? Практическая проверка гипотезы

Следующий шаг — превратить эти паттерны в рабочий инструмент. Мы запустим специального советника-сборщика в тестере MetaTrader 5. Его задача — пройти по истории и для каждого обнаруженного паттерна собрать исчерпывающую статистику: где оказывалась цена через N свечей? Каковы были средние цели, просадки, вероятности движения?

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

От распознавания к прогнозу

На основе собранной статистики мы создадим второго советника — уже прогнозирующего. Его задача — в реальном времени, по мере формирования рынка, идентифицировать паттерны и на основе их исторической эффективности строить прогнозы о вероятном движении цены. Для наглядности мы добавим графические объекты, которые позволят визуально оценить качество и точность его «предсказаний».

Есть ли уже «чуйка»?

Главная задача на текущем этапе — не получить идеальную торговую систему, а увидеть первые признаки жизни. Появилась ли у нашего алгоритма хоть какая-то «чуйка»? Пусть она будет хаотичной, шумной и непостоянной — как и настроение живого трейдера. Но если алгоритм начал показывать хотя бы слабые, но статистически весомые признаки неслучайного поведения — это уже огромный успех и зелёный свет для дальнейшей работы.

Давайте вместе оценим, что отпечаталось в электронных мозгах нашего алгоритма.



Итоги и взгляд вперёд

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

Мы попробовали предсказать будущее — что гораздо сложнее простой генерации торгового сигнала. Мы заставили алгоритм давать прогноз, и он начал это делать. Теперь нам предстоит следующий, не менее интересный вызов: как на основе этого прогноза выработать конкретное торговое решение? Как отделить зёрна от плевел и отфильтровать сильные сигналы от слабых? Возможно мы узнаем это в следующей части.

 

 

 

 

18 Комментариев
  • Роман Духанин
    13 сентября 2025, 19:33
    Красава! )) Сейчас вникать времени и энергии нет — но кину в заклады и непременно попробую вникнуть — редко встретишь НАСТОЛЬКО системный подход к вопросу — то что ты начал с алфавита — это бесконечно правильно!! 

    А ты через топовые ИИ прогонял уже эти концепции? Чего говорят?
  • Роман Духанин
    13 сентября 2025, 19:36
     // на самом деле я вот прямо сегодня думал уже по смежной теме — вертел в голове разные архитектуры того, каким именно образом дать на вход общего ИИ (того же GPT-5 etc.) данные для фундаментального анализа рынка.  
  • Роман Духанин
    13 сентября 2025, 19:39
     // навскидку: а что если рыночные состояния тупо через дихотомии описать? типа: бычий-медвежий, и пр. по-моему это будет более машинопонятно, чем делать «иероглифический» алфавит из произвольных состояний. это просто мысли вслух по ходу
  • VladMih
    13 сентября 2025, 19:49
    То же самое, но на паттернах, образуемых мувингами -
    это уточнит и места поиска сигналов, и сами сигналы,
    и их силу, т.е. улучшит прогнозирование ближайшего будущего.

    Как вариант, взять за основу готовые проработки графическиъ паттернов, видел такие индикаторы.

    При любом раскладе главной задачей является поиск МЕСТА.

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

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