Розробка бота на базі MACD
MACD (Moving Average Convergence Divergence) — один з найпопулярніших трендових індикаторів. Показує співвідношення двох експоненціальних скользящих середніх та дозволяє ідентифікувати momentum та розвороти тренду.
Як працює MACD
MACD складається з трьох ліній:
- MACD лінія: EMA(12) - EMA(26) швидкої та повільної
- Signal лінія: EMA(9) від MACD лінії
- Histogram: MACD - Signal (візуалізує розходження)
Стандартні параметри: (12, 26, 9).
Реалізація бота
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
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 (12, 26, 9) — для денних та 4-часових таймфреймів. Для коротших таймфреймів:
- 1h: MACD (5, 13, 4) — швидше реагує, більше хибних сигналів
- 15m: MACD (3, 10, 16) — дуже агресивний, тільки з додатковими фільтрами
Дивергенція — більш сильний сигнал ніж просто пересічення: ціна робить новий лоу, MACD — ні. Це ознака ослаблення нисходящого тренду.
Бот на базі MACD з базовою логікою управління ризиками розробляється за 1–2 тижні.







