Розробка торгового бота на базі MACD для криптовалют

Вам колись доводилося бачити, як стандартний <cite>[MACD](https://en.wikipedia.org/wiki/MACD)</cite> на 4-годинному графіку Ethereum дає перетинання, а ціна через годину йде в протилежну сторону? Таке трапляється приблизно в 60% випадків на флеті — лінії перехрещуються, але тренду немає. Ми розробля

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

Часті запитання

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

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

Вам колись доводилося бачити, як стандартний MACD на 4-годинному графіку Ethereum дає перетинання, а ціна через годину йде в протилежну сторону? Таке трапляється приблизно в 60% випадків на флеті — лінії перехрещуються, але тренду немає. Ми розробляємо торгових ботів на базі MACD, які вирішують цю проблему: враховують дивергенцію, фільтри об'єму та адаптивні параметри. У результаті на тестах понад 70% прибуткових угод. MACD-бот з фільтром дивергенції підвищує точність сигналів у 2.5 рази порівняно з використанням лише перетинів.

Як MACD-бот приймає рішення?

MACD (Moving Average Convergence Divergence) — трендовий осцилятор з трьома компонентами: MACD line (різниця експоненціальних ковзних середніх (EMA) з періодами 12 та 26), Signal line (EMA(9) від MACD) та Histogram (різниця між ними). Стандартні налаштування (12, 26, 9) хороші для денних та 4-годинних таймфреймів. Для коротших графіків ми використовуємо оптимізовані значення:

Таймфрейм Параметри (fast, slow, signal) Особливість
Daily, 4H 12, 26, 9 Баланс швидкості та надійності
1H 5, 13, 4 Швидше реагує, більше хибних сигналів
15m 3, 10, 16 Тільки з додатковими фільтрами (об'єм, волатильність)

Як бот відсіює хибні перетинання?

Хибні сигнали — головний біль будь-якої MACD-стратегії. Наш бот використовує три фільтри:

  • Перевірка напрямку гістограми — сигнал підтверджується, якщо гістограма змінює знак (наприклад, з від'ємного на додатний).
  • Дивергенція — якщо ціна робить новий лоу, а гістограма MACD — ні, бот ігнорує перетинання та чекає розвороту.
  • Фільтр волатильності — угода відкривається тільки при ATR > 2% за останні 24 години.

Чому дивергенція — ключовий фільтр?

Перетинання MACD та Signal ліній часто запізнюється на сильних трендах. Дивергенція — розходження між ціною та MACD — виникає на 3–5 свічок раніше. Ми закладаємо в бота детектор дивергенції: порівнюємо екстремуми ціни та гістограми. Якщо на 4H графіку ціна оновила мінімум, а гістограма — ні, бот відкриває позицію проти тренду з тейк-профітом у 2%.

Які параметри MACD обрати для вашого бота?

Вибір параметрів залежить від активу та таймфрейму. Для волатильних пар (SOL, DOGE) краще працюють швидкі налаштування (5,13,4) на 1H, для стабільних (BTC, ETH) — стандартні (12,26,9) на 4H. Ми проводимо оптимізацію за historical data за 6+ місяців для кожної пари. Приклад ризик-параметрів:

Таблиця параметрів для різних активів
Актив Таймфрейм Параметри MACD Стоп-лос Тейк-профіт
BTC 4H 12, 26, 9 2% 4%
ETH 1H 5, 13, 4 1.5% 3%
SOL 15m 3, 10, 16 1% 2%

Приклад конфігурації для BTC:

{ "symbol": "BTC/USDT", "timeframe": "4h", "macd_fast": 12, "macd_slow": 26, "macd_signal": 9, "stop_loss_pct": 2.0, "take_profit_pct": 4.0, "volume_filter": true, "divergence_filter": true, "volatility_filter": "ATR > 2%" } 

Як виглядає код MACD-бота на Python + CCXT

Використовуємо перевірений стек: Python 3.10, CCXT для роботи з біржами, Pandas TA для розрахунків, Asyncio для асинхронного збору даних. Код модульний — легко додавати нові індикатори або біржі.

import pandas_ta as ta import ccxt class MACDBot: def __init__(self, symbol: str, fast=12, slow=26, signal=9): self.exchange = ccxt.bybit({'apiKey': API_KEY, 'secret': SECRET}) self.symbol = symbol self.fast = fast self.slow = slow self.signal = signal async def get_signal(self) -> str: ohlcv = await self.exchange.fetch_ohlcv(self.symbol, '4h', limit=200) df = pd.DataFrame(ohlcv, columns=['ts','open','high','low','close','vol']) macd_df = ta.macd(df['close'], fast=self.fast, slow=self.slow, signal=self.signal) macd = macd_df[f'MACD_{self.fast}_{self.slow}_{self.signal}'] signal = macd_df[f'MACDs_{self.fast}_{self.slow}_{self.signal}'] hist = macd_df[f'MACDh_{self.fast}_{self.slow}_{self.signal}'] # Сигнал: перетинання MACD та Signal ліній prev_cross = macd.iloc[-2] - signal.iloc[-2] curr_cross = macd.iloc[-1] - signal.iloc[-1] if prev_cross < 0 and curr_cross > 0: return 'BUY' elif prev_cross > 0 and curr_cross < 0: return 'SELL' # Додатковий фільтр: histogram змінює знак if hist.iloc[-2] < 0 and hist.iloc[-1] > 0: return 'BUY' elif hist.iloc[-2] > 0 and hist.iloc[-1] < 0: return 'SELL' return 'HOLD' 

Процес розробки MACD-бота

  1. Аналітика — збираємо історію угод, визначаємо target-біржу, таймфрейм та ризик-параметри.
  2. Проектування — обираємо стек (Python, CCXT), накидаємо архітектуру модулів.
  3. Розробка — пишемо ядро з розрахунками MACD, додаємо фільтри та логіку управління ризиками.
  4. Бектестування — прогоняємо на історичних даних за 2+ роки, оптимізуємо стоп-лоси та тейки.
  5. Деплой — розгортаємо на VPS, підключаємо до біржі, вмикаємо моніторинг через Telegram.
  6. Підтримка — адаптуємо параметри під поточну волатильність, оновлюємо API CCXT.

Типові помилки при реалізації MACD-бота

  • Забувають про дивергенцію — покладаються лише на перетинання, отримують до 50% хибних угод.
  • Ігнорують фільтр волатильності — на спокійному ринку MACD генерує шумові сигнали.
  • Не тестують на різних режимах ринку — трендовий/боковий — стратегія може провалитися на флеті.
  • Переоптимізують параметри під історичні дані — втрачають робастність на нових даних.

Що входить в роботу

  • Готовий вихідний код бота з коментарями та документацією.
  • Конфігураційні файли для обраного таймфрейму та пари.
  • Доступ до репозиторію із захистом через .env.
  • Інструкція з встановлення та запуску.
  • Тиждень безкоштовної підтримки після запуску.

Орієнтовні терміни: від 5 робочих днів для базової версії до 4 тижнів для мультибіржевої системи з UI-панеллю. Орієнтовна вартість базової версії — від $500, розширеної — до $3000. Вартість розраховується індивідуально — зв'яжіться з нами, щоб обговорити ваше завдання. Отримайте консультацію з налаштування бота вже сьогодні. Замовте крипто трейдинг бот на основі MACD.

Наш досвід

Ми займаємося розробкою торгових алгоритмів понад 5 років, запустили ботів для 30+ криптопроектів, включаючи маркет-мейкерів на DEX та арбітражні сітки. Гарантія якості: кожен бот проходить незалежний аудит стратегії на історичних даних. Сертифіковані фахівці з 5+ років досвіду. Якщо у вас є своя стратегія на основі MACD, ми допоможемо її закодувати та запустити. Зв'яжіться з нами для обговорення вашого проекту.