Разработка бота на базе 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' # bullish crossover
elif prev_cross > 0 and curr_cross < 0:
return 'SELL' # bearish crossover
# Дополнительный фильтр: 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) — очень агрессивный, только с дополнительными фильтрами
Дивергенция — более сильный сигнал чем просто crossover: цена делает новый лоу, MACD — нет. Это признак ослабления нисходящего тренда.
Бот на базе MACD с базовой логикой управления рисками разрабатывается за 1–2 недели.







