Розробка алгоритму mean reversion

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Розробка алгоритму mean reversion
Середній
~1-2 тижні
Часті запитання

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

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1288
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1198
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    902
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1122
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    589
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    859

Розробка алгоритму mean reversion

Mean reversion — концепція торговлі: ціна активу після відхилення від історичного середнього схильна повертатися назад. Це протилежність momentum-торговлі. Алгоритм відкриває позицію проти короткострокового руху, розраховуючи на повернення до середнього.

Коли працює mean reversion

Стратегія ефективна в конкретних ринкових умовах:

  • Флет/боковик — ціна коливається навколо певного рівня
  • High-frequency рухи — короткострокові відхилення, після яких market makers повертають ціну
  • Overextended moves — рух значно перевищив ATR, вірогідний откат
  • Фундаментально стійкі активи — активи з сильним попитом на конкретних рівнях

Стратегія погано працює у тренді: відкривши шорт на відхиленні вверх, можна «впіймати» продовження тренду.

Індикатори для mean reversion

Bollinger Bands: класичний інструмент. Ціна торкається нижньої смуги (−2σ) → покупка. Торкається верхньої (+2σ) → продаж. Вихід при повернені до середньої (SMA 20).

RSI (Relative Strength Index): RSI < 30 → oversold → потенціальна покупка. RSI > 70 → overbought → потенціальний продаж.

Z-score від rolling mean:

def zscore_signal(prices, window=20):
    rolling_mean = prices.rolling(window).mean()
    rolling_std = prices.rolling(window).std()
    z = (prices - rolling_mean) / rolling_std
    return z

Сигнал покупки при Z < -2, продажі при Z > +2, закриття при |Z| < 0.5.

Mean Reversion Index (MRI): власний індикатор на основі відстані від EMA та історичного ATR:

MRI = (Price - EMA(n)) / ATR(n)

Фільтр тренду

Без фільтру тренду алгоритм mean reversion є руйнівним на трендових ринках. Додаємо фільтри:

  • ADX < 25: торгуємо тільки коли тренд слабкий (ADX — індикатор сили тренду)
  • Price in range: ціна між EMA(50) та EMA(200) — плоска зона
  • Choppiness Index > 61.8: ринок у стані хаосу, а не тренду

Entry та exit логіка

Entry: відкриття позиції при досягненні порогового Z-score + підтвердження розворотної свічі (pin bar, hammer, engulfing).

Exit:

  • Profit target: повернення до rolling mean (Z-score = 0)
  • Stop-loss: подальше розширення відхилення до Z = ±3.5 (або фіксований % від ATR)
  • Time-based exit: якщо через N свічок позиція не закрилась у прибуток — закриваємо

Частковий take profit: закриваємо 50% позиції при Z = ±1.0, залишок при Z = 0.

Оптимізація параметрів

Параметри (window для mean/std, entry Z-score, exit Z-score) оптимізуються через walk-forward аналіз на історичних даних. Важливо уникати overfitting: тестуємо на кількох незалежних періодах.

Стек: Python (pandas, numpy, ta-lib), CCXT для біржевого підключення, PostgreSQL для зберігання сигналів та угод. Параметри конфігурируються через YAML файл без зміни коду.