Система распознавания паттернов: голова и плечи, треугольники, клинья

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

Распознавание паттернов: где ломается ручная разметка графиков

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

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

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

Что меняется в торговой системе после автоматизации разбора фигур

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

Автоматизация переводит фигуру в набор проверяемых условий: положение локальных экстремумов, наклон и касания трендовых линий, подтверждение объёмом. Состояние ведётся явно — формируется, подтверждена, сломана, — поэтому сигнал не зависит от того, кто смотрел на график. Отдельный слой проверок отбрасывает кандидата, если внутри окна есть разрыв или пропуск котировок: такие стыки собирали фигуру из несоседних баров и давали худший класс ложных входов.

Что это меняет по нашим замерам:

Показатель Ручной разбор Автоматический
Разбор квартала истории дни работы аналитика один прогон по всей выборке
Границы фигуры у разных аналитиков расходятся единые правила, расхождение в пределах допуска
Пропуск фигуры зависит от загрузки история проходит целиком
Разрыв или пропуск котировок фигура склеивается из несоседних баров окно помечается, фигура не строится

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

Часть геометрических примитивов берём из открытой библиотеки TA-Lib, логику самих фигур и подтверждений описываем сами — её можно править под конкретный рынок. Разбор перестаёт быть ограничением по времени, а разметка становится воспроизводимой: тот же прогон на тех же данных даёт тот же результат.

Как устроено распознавание паттернов: три подхода к поиску фигур

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

Выбор зависит от ликвидности инструмента, горизонта и того, какой класс ошибок допустим в решении.

Подход Когда подходит Ограничения
Жёсткие геометрические правила Ликвидные инструменты, старшие горизонты, нужна объяснимость каждого сигнала Допуски подбираются вручную, правило ломается при смене волатильности, в боковике много ложных срабатываний
Обучение на размеченной истории Много однородных данных, нужна устойчивость к шуму Качество упирается в разметку, классы несбалансированы, поведение плывёт при смене режима
Гибрид с ручной валидацией По сигналам принимают решения, ошибка дорога Часть проверки остаётся за аналитиком, отклик медленнее автоматического

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

Этапы работы: от аудита данных до передачи настроенной системы

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

  1. Аудит исторических данных и требований. Проверяем полноту котировок, пропуски, дробления и склейки, часовые пояса, согласуем список фигур («голова и плечи», треугольники, клинья), таймфреймы и то, что считаем подтверждением фигуры.
  2. Схема признаков фигуры. Формализуем геометрию: число касаний линии тренда, наклон, симметрию плеч, глубину отката, поведение объёма на пробое. Без письменной схемы признаки превращаются во вкусовщину и не воспроизводятся.
  3. Настройка поиска фигур. Реализуем детектор: сглаживание ряда, поиск локальных экстремумов, аппроксимация линий, проверка геометрии. На выходе — разметка с координатами границ и оценкой уверенности по каждой фигуре.
  4. Проверка на удержанном периоде. Прогоняем детектор по данным, не участвовавшим в настройке, считаем точность и полноту, разбираем расхождения с разметкой аналитика. Это отделяет реальное распознавание паттернов от запоминания истории.
  5. Калибровка порогов. Подбираем допуски по наклону, длине и объёму так, чтобы убрать ложные срабатывания, не потеряв редкие фигуры. Итоговые значения фиксируем в конфигурации, а не в коде.
  6. Передача и обучение команды. Отдаём разметку, конфигурацию и инструкцию по добавлению новых фигур, показываем, какие метрики отслеживать, чтобы качество поиска не проседало после изменений.

Состав поставки: правила разметки, схемы, регламенты обновления

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

  • Правила разметки — критерии состоявшейся фигуры: сколько свечей формируют вершину и плечи, допустимая асимметрия, как трактуются разрывы и новостные импульсы. Разметчик и алгоритм следуют одному документу, поэтому расхождение видно сразу.
  • Схема признаков — таблица «признак → источник → окно расчёта → вес в решении»: наклон трендовой, глубина отката, объём на пробое. Новый признак добавляется без ломки уже настроенных.
  • Конфигурация поиска фигур — пороги допуска, минимальная амплитуда, окно подтверждения, правила подавления дублей. Пороги вынесены из кода: их правят без пересборки сервиса.
  • Регламент переобучения и пересмотра порогов — по какой выборке и с какой периодичностью сверяем разметку, какие метрики считаем деградацией и кто утверждает смену конфигурации.
  • Журнал проверок — контрольные наборы с ручной разметкой и историей прогонов: видно, после какого изменения просела точность и какой набор порогов отработал лучше.
  • Документация по системе — инструкции для команды: как поднять сервис распознавания, где смотреть отклонённые сигналы, как откатить конфигурацию к предыдущей.
  • Карта владения — кто отвечает за разметку, кто за признаки, кто за поиск фигур: без неё артефакты устаревают за квартал.

Разбор проекта торговой платформы: разметка до и после

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

Что изменили по существу

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

Метрики до и после

  • Согласованность разметки между аналитиками: 71% → 94%.
  • Доля спорных размеченных эпизодов: 19% → 4%.
  • Полнота обнаружения редких фигур: 0,4 → 0,9.
  • Задержка сигнала после подтверждения: десятки секунд → единицы секунд.
  • Ложные срабатывания на шуме: снизились втрое при том же пороге подтверждения.

Что пришлось доработать по ходу

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

Что делать, если фигуры уже размечены вручную?

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

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

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

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

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

Технические сомнения: шум, ложные фигуры, устойчивость к сбоям

На живых данных поиск фигур встречает разрывы котировок, неполные свечи и неоднозначную разметку. Ниже — пять вопросов, которые чаще всего всплывают на приёмке, и то, как мы закрываем каждый.

Как система справляется с шумом на младших периодах?

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

Фигуры редкие — как быть с треугольниками и клиньями?

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

Где гарантия, что модель не переобучена?

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

Что происходит при разрывах потока данных?

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

Что входит в поддержку после внедрения?

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

Обсудим вашу задачу: данные, фигуры, требования к сигналам

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

  • Данные и история. Инструменты и интервалы, источник (биржа, брокер, свой архив), глубина в свечах, пропуски и разрывы между сессиями, правила склейки контрактов.
  • Разметка фигур. Что обязательно: голова и плечи в двух вариантах, треугольники, клинья. С допусками — минимальная высота и ширина фигуры, число касаний линий, угол наклона.
  • Критерий подтверждения. Пробой линии шеи или границы с закреплением, возврат цены к пробитому уровню, подтверждение по объёму. От этого зависит задержка сигнала относительно момента формирования фигуры.
  • Требования к качеству. Допустимая доля ложных срабатываний, поведение на неполных фигурах и на инструментах с низкой ликвидностью.
  • Доставка сигнала. Очередь сообщений, запись в таблицу или вызов внешнего сервиса; формат сообщения, задержка, нужен ли журнал с историей срабатываний.
  • Порядок внедрения и приёмки. На каком историческом отрезке проверяем точность, кто на вашей стороне принимает результат, нужен ли тестовый контур с потоком данных в реальном времени.

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

Направления блокчейн-разработки

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    815
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139