Barfinex

Блог

РелизКоманда Barfinex

Движок правил Detector: типизированные конфигурации стратегий для AI-native конвейера

Как движок правил Barfinex Detector позволяет выражать сложные, многоусловные торговые стратегии как типизированные TypeScript-конфигурации — с оценкой в реальном времени, изоляцией экземпляров и полной наблюдаемостью. Сигналы движка правил напрямую питают 8-ступенчатый AI-конвейер Advisor.

#detector#движок-правил#стратегия#сигналы#конфигурация#ai-native

Что такое движок правил

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

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

Это не ломающее изменение — существующие экземпляры Detector продолжают работать. Но для новых стратегий движок правил — рекомендуемый подход.

Проблема с императивным кодом стратегии

Старый способ написания Detector-стратегии выглядел примерно так: TypeScript-класс с хуками жизненного цикла, прямым доступом к значениям индикаторов и кастомной логикой оценки, разбросанной по методам. Работало — но имело реальные проблемы:

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

Движок правил решает все четыре проблемы.

Как работает движок правил

Конфигурация движка правил — это структурированный TypeScript-объект с тремя разделами:

1. Входные данные (Inputs)

Объявите, какие данные использует ваша стратегия:

inputs: {
  candles: { symbol: 'BTCUSDT', timeframe: '5m' },
  orderflow: { symbol: 'BTCUSDT', depth: 10 },
}

Данные загружаются из Provider автоматически — никакого ручного получения данных в коде стратегии.

2. Правила (Rules)

Определите условия, которые должны выполняться для сигнала. Каждое правило содержит условие, вес и опциональное описание:

rules: [
  {
    id: 'ema_trend_aligned',
    description: 'Цена выше 20 EMA на 5m-графике',
    condition: ({ candles }) => candles.close > candles.ema(20),
    weight: 2.0,
    direction: 'long',
  },
  {
    id: 'orderflow_imbalance',
    description: 'Поток ордеров на покупку превышает продажи более чем на 30%',
    condition: ({ orderflow }) => orderflow.buyRatio > 0.65,
    weight: 1.5,
    direction: 'long',
  },
  {
    id: 'volume_spike',
    description: 'Объём текущей свечи превышает 20-периодный средний в 2 раза',
    condition: ({ candles }) => candles.volume > candles.avgVolume(20) * 2,
    weight: 1.0,
    direction: 'long',
  },
]

Правила оцениваются независимо. Каждое сработавшее правило добавляет свой weight к итоговой оценке сигнала.

3. Пороги (Thresholds)

Определите, при какой накопленной оценке возникает торгуемый сигнал:

thresholds: {
  long: { min: 3.5 },    // long-сигнал при оценке ≥ 3.5
  short: { min: 3.5 },
}

В примере выше: если срабатывают ema_trend_aligned и orderflow_imbalance, оценка равна 3.5 — ровно на пороге. Все три дают 4.5.

Что вы получаете бесплатно

Движок правил предоставляет несколько вещей, которые иначе пришлось бы строить самостоятельно:

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

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

Изоляция экземпляров — каждый экземпляр Detector выполняет собственный цикл оценки правил. Ошибка в одном правиле одного экземпляра не влияет на другие экземпляры или другие правила того же экземпляра.

Конфигурация без накладных расходов — объект конфигурации — это обычный TypeScript. Статически типизирован, автодополняется в IDE и версионируется в git как любой другой код.

Несколько экземпляров, несколько стратегий

Можно одновременно запускать сколько угодно экземпляров Detector. Это полезно для:

  • Обнаружения режима: один экземпляр ищет трендовые установки, другой — отбой от среднего
  • Покрытия нескольких инструментов: разные экземпляры наблюдают за разными активами
  • A/B-тестирования: сравнение наборов правил с разными весами на одном инструменте

Каждый экземпляр производит независимые сигналы, которые Advisor может синтезировать совместно или Inspector может фильтровать отдельно.

Наблюдаемость из коробки

Каждый сигнал, генерируемый движком правил, содержит полную аудиторскую запись:

  • Какие правила были оценены
  • Какие сработали, а какие — нет
  • Вклад каждого сработавшего правила в оценку
  • Итоговая оценка и превышение порога
  • Временна́я метка каждой оценки

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

Как выход движка правил питает AI-конвейер

События сигналов, генерируемые движком правил, содержат полную запись атрибуции: какие правила сработали, какие — нет, и вклад каждого в оценку. Эта атрибуция передаётся в Advisor как часть контекста сигнала.

Advisor использует её на Этапе 3 конвейера (независимая оценка сигнала) и на Этапе 6 (LLM-синтез). LLM получает атрибуцию правил вместе с рыночным контекстом и показателями уверенности — что даёт ему чёткую, структурированную основу для рассуждений вместо сырых значений индикаторов.

Результат: качество ваших определений правил напрямую влияет на качество AI-рассуждений. Хорошо атрибутированный сигнал производит более обоснованное AI-решение.

Начало работы с движком правил

В Справочнике API Detector есть полная схема конфигурации. Руководство по установке Detector описывает настройку первого экземпляра.

Готовый к production пример конфигурации — экземпляр advisor-llm-hybrid в репозитории: он демонстрирует объединение правил потока ордеров, трендовых правил и LLM-усиленной оценки в единой конфигурации Detector с полной атрибуцией сигнала, проходящей через Advisor.

Предыдущая
Первый запуск

Давайте свяжемся

Есть вопросы или хотите узнать больше о Barfinex? Напишите нам.