Вам колись доводилося бачити, як стандартний 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-бота
- Аналітика — збираємо історію угод, визначаємо target-біржу, таймфрейм та ризик-параметри.
- Проектування — обираємо стек (Python, CCXT), накидаємо архітектуру модулів.
- Розробка — пишемо ядро з розрахунками MACD, додаємо фільтри та логіку управління ризиками.
- Бектестування — прогоняємо на історичних даних за 2+ роки, оптимізуємо стоп-лоси та тейки.
- Деплой — розгортаємо на VPS, підключаємо до біржі, вмикаємо моніторинг через Telegram.
- Підтримка — адаптуємо параметри під поточну волатильність, оновлюємо API CCXT.
Типові помилки при реалізації MACD-бота
- Забувають про дивергенцію — покладаються лише на перетинання, отримують до 50% хибних угод.
- Ігнорують фільтр волатильності — на спокійному ринку MACD генерує шумові сигнали.
- Не тестують на різних режимах ринку — трендовий/боковий — стратегія може провалитися на флеті.
- Переоптимізують параметри під історичні дані — втрачають робастність на нових даних.
Що входить в роботу
- Готовий вихідний код бота з коментарями та документацією.
- Конфігураційні файли для обраного таймфрейму та пари.
- Доступ до репозиторію із захистом через
.env. - Інструкція з встановлення та запуску.
- Тиждень безкоштовної підтримки після запуску.
Орієнтовні терміни: від 5 робочих днів для базової версії до 4 тижнів для мультибіржевої системи з UI-панеллю. Орієнтовна вартість базової версії — від $500, розширеної — до $3000. Вартість розраховується індивідуально — зв'яжіться з нами, щоб обговорити ваше завдання. Отримайте консультацію з налаштування бота вже сьогодні. Замовте крипто трейдинг бот на основі MACD.
Наш досвід
Ми займаємося розробкою торгових алгоритмів понад 5 років, запустили ботів для 30+ криптопроектів, включаючи маркет-мейкерів на DEX та арбітражні сітки. Гарантія якості: кожен бот проходить незалежний аудит стратегії на історичних даних. Сертифіковані фахівці з 5+ років досвіду. Якщо у вас є своя стратегія на основі MACD, ми допоможемо її закодувати та запустити. Зв'яжіться з нами для обговорення вашого проекту.







