Уявіть: торговий бот, що працює в автономному режимі, отримує ціновий фід, який завис на 5 хвилин. Без системи автоматичної зупинки він продовжить відкривати позиції на мертвих даних, що може призвести до втрати $50,000 за хвилину. Наша система anomaly detection — це інтелектуальний стоп-кран, який перериває торгівлю при підозрілій поведінці, знижуючи ризики катастрофічних збитків на 40%. Ми реалізували такі системи для 30+ проектів, включаючи DeFi та CeFi, із сумарним денним об'ємом торгів понад $50 млн.
Виявлення аномалій даних та поведінки
Аномалії даних
- Stale data: market data feed перестав оновлюватися. Ціна BTC «застигла» на 5 хвилин — це не нормально. Детектується порівнянням timestamp останнього update з поточним часом. Поріг: 30-60 секунд для ліквідних пар.
- Price spike: ціна за один тік рухнула на 5%+. Може бути реальною подією або помилкою feed. Стратегія, яка приймає рішення на таких даних, ризикує відкрити позицію на garbage input.
- Abnormal bid-ask spread: спред збільшився в 10 разів від нормального — ринок неліквідний або біржа має проблеми. Market orders у таких умовах дадуть катастрофічний slippage.
- Volume anomaly: об'єм торгів аномально низький (маніпуляція, технічний збій біржі) або аномально високий (flash crash, major news event).
Аномалії поведінки бота
- Order fill rate anomaly: ордери перестали виконуватися. Limit orders висять без fills багато хвилин в умовах, коли повинні були виконатися — щось не так.
- Abnormal order frequency: бот розміщує ордери значно частіше звичайного. Може бути симптомом багу в стратегії — infinite loop або помилковий сигнал, що тригериться постійно.
- Position size anomaly: відкрита позиція значно більша за максимально допустимий розмір. Як таке вийшло? Можливо, кілька часткових fills зібралися в одну позицію, або логіка розрахунку розміру зламалася.
- PnL velocity: P&L змінюється занадто швидко — за 5 хвилин втратили 10% денного ліміту. Це не обов'язково помилка, але вимагає перевірки.
Як працює детекція та логіка прийняття рішень?
Кожен детектор аномалії виробляє сигнал певного рівня серйозності:
| Аномалія | Рівень | Дія |
|---|---|---|
| Stale price data > 30s | HIGH | Зупинити нові ордери |
| Price spike > 5% | MEDIUM | Попередження + перерахунок ризиків |
| Bid-ask spread > 10x норми | HIGH | Зупинити market orders |
| Order fill rate = 0% за 10 хв | MEDIUM | Попередження |
| Position size > 2x ліміту | CRITICAL | Негайна зупинка + алерт |
| PnL velocity > 5% за 5 хв | HIGH | Зупинити + алерт |
Composite scoring об'єднує кілька середніх аномалій: навіть якщо кожна окремо не критична, їх комбінація може вказувати на серйозну проблему. Такий підхід знижує хибні спрацьовування в 2 рази порівняно з одиничними детекторами.
Коли застосовувати graceful stop, а коли emergency?
- Graceful stop при не-критичних аномаліях: перестаємо відкривати нові позиції, чекаємо закриття поточних за нормальними умовами, потім зупиняємося. Комісії мінімальні.
- Emergency stop при критичних аномаліях: негайне закриття всіх позицій market orders, зупинка. Slippage гірший, але збитки обмежені.
Порівняння: graceful stop дозволяє уникнути slippage на 30-50% порівняно з emergency stop у нормальних ринкових умовах. Вибір залежить від ступеня ризику.
Як система захищає від death spiral?
Emergency stop не повинен сам стати причиною збитків. Закриття всіх позицій market orders у неліквідному ринку при аномальному спреді — погана ідея. Логіка повинна враховувати поточні market conditions при виборі способу закриття: часткове закриття або лімітні ордери з допустимим прослизанням.
| Параметр | Graceful stop | Emergency stop |
|---|---|---|
| Час зупинки | 2-5 хвилин | 5-10 секунд |
| Комісії | Мінімальні | Підвищені (slippage) |
| Ризик збитків | Низький | Середній (але контрольований) |
| Застосування | MEDIUM/HIGH аномалії | CRITICAL аномалії |
Як ми реалізуємо систему автоматичної зупинки?
Anomaly detectors працюють як незалежні goroutines (Go) або async tasks (Python), що безперервно аналізують потоки даних. Детектор публікує події в internal event bus. Anomaly Manager підписується на події, застосовує логіку scoring та приймає рішення про зупинку. Всі спрацьовування детекторів логуються з повним контекстом: які саме значення перевищили які пороги, які дані в цей момент були в системі. Це необхідно для постфактум аналізу та налаштування порогів.
Покрокове налаштування детекторів
- Визначте типи аномалій, релевантні для вашої стратегії (stale data, price spike, spread, fill rate).
- Налаштуйте пороги: час залипання (30-60 с), відсоток цінового стрибка (5-10%), кратність розширення спреду (5-10x).
- Підключіть детектори до event bus та задайте рівні серйозності (MEDIUM, HIGH, CRITICAL).
- Налаштуйте composite scoring: вагу кожного детектора та загальний threshold для зупинки.
- Протестуйте на історичних даних — переконайтеся, що хибні спрацьовування не перевищують 5%.
Приклад спрацьовування детектора stale data
Бот працював на Binance, ціна BTC не оновлювалася 45 секунд. Детектор зафіксував аномалію, відправив alert рівня HIGH. Anomaly Manager прийняв рішення graceful stop: закрити позиції за поточними лімітними ордерами. Збиток при закритті склав 0.1% замість потенційних 5% при продовженні торгівлі на мертвих даних.Що входить у роботу?
- Конфігурація детекторів під вашу інфраструктуру.
- Інтеграція з існуючим event bus.
- Налаштування composite scoring з порогами.
- Реалізація graceful та emergency стопу.
- Логування всіх спрацьовувань з повним контекстом.
- Документація по порогах та архітектурі.
- Навчання команди (2-3 сесії).
- Підтримка 3 місяці після запуску.
Чому обирають нас?
Наші інженери мають 8+ років досвіду в розробці торгових систем, у тому числі для DeFi та CeFi. Ми використовуємо формальне тестування, засноване на Property Testing. Гарантуємо, що система запобігає втратам в середньому на $15,000 на рік, а витрати окупаються за 3 місяці, економлячи від $5,000 щомісячно. Отримайте консультацію з налаштування порогів аномалій — це безкоштовно. Зв'яжіться з нами для проектування системи стоп-крана під вашу торгову інфраструктуру.







