Введение
Часто новички задаются вопросом: как создать торгового бота самостоятельно? Сегодня рассмотрим простой, но эффективный подход на основе двух популярных индикаторов технического анализа – Relative Strength Index (RSI) и Bollinger Bands. Эти инструменты помогут нам выявлять тренды и точки входа/выхода из сделок.
Теория работы стратегии
Индикатор RSI
Relative Strength Index (RSI) измеряет силу движения цены актива относительно предыдущих периодов времени. Значения колеблются от 0 до 100. Когда RSI выше 70, это считается перекупленностью рынка, а ниже 30 – перепроданностью.
from talib import RSI
rsi = RSI(close, timeperiod=14)
Индикатор Bollinger Bands
Bollinger Bands состоят из трёх линий: простая скользящая средняя (SMA), верхняя и нижняя полосы. Верхняя полоса сигнализирует о возможном развороте вверх при пересечении ценой средней линии снизу вверх. Нижняя полоса предупреждает о возможной коррекции вниз при пересечении сверху вниз.
import talib
upper_bollinger, middle_bollinger, lower_bollinger = talib.BBANDS(close, timeperiod=20, nbdev=2)
Алгоритм торговли
- Если цена пересекает верхнюю полосу Боллинджера снизу вверх и RSI находится выше 70, открываем короткую позицию.
- При пересечении нижней полосы Боллинджера сверху вниз и RSI ниже 30, открываем длинную позицию.
Реализация бота на Python
Ниже представлен пример простого бота, использующего эти два индикатора.
from bybit_api import BybitAPI
from talib import RSI, BBANDS
import pandas as pd
def rsi_strategy(api: BybitAPI, symbol: str, interval: str):
df = api.get_candles(symbol, interval)
# Рассчитываем RSI и Bollinger Bands
rsi = RSI(df['close'], timeperiod=14)
upper_band, middle_band, lower_band = BBANDS(df['close'], timeperiod=20, nbdev=2)
for i in range(len(df)):
if df['close'].iloc[i] > upper_band.iloc[i] and rsi[i] > 70:
print(f'Открываем короткую позицию на {symbol}!')
elif df['close'].iloc[i] < lower_band.iloc[i] and rsi[i] < 30:
print(f'Открываем длинную позицию на {symbol}!')
# Пример использования
api = BybitAPI('your_api_key', 'your_secret')
rsi_strategy(api, 'BTCUSDT', '1m')
Заключение
Эта простая стратегия позволяет эффективно использовать популярные технические индикаторы для автоматизации торговых операций. Важно помнить, что даже самые проверенные подходы требуют тестирования и адаптации под конкретные условия рынка."