Розробка бота на базі RSI

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Розробка бота на базі RSI
Простий
~3-5 днів
Часті запитання

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

Етапи блокчейн-розробки

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

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

Розробка бота на базі RSI

RSI (Relative Strength Index) — осцилятор перекупленості/перепроданості, розроблений Уеллсом Уайлдером у 1978 році. До сих пір один з найбільш використовуваних індикаторів. Бот на базі RSI простий у реалізації, але потребує акуратного налагодження: в трендових умовах RSI дає багато хибних сигналів.

Як працює RSI

RSI вимірює швидкість та зміну цінових рухів. Формула:

RSI = 100 - (100 / (1 + RS))
RS = Average Gain / Average Loss (за N періодів, стандарт: 14)

Значення: 0–100. Традиційні рівні:

  • Вище 70 — перекупленість (сигнал до продажу в контртрендовій стратегії)
  • Нижче 30 — перепроданість (сигнал до покупки)

Реалізація бота

import ccxt
import pandas_ta as ta
import asyncio

class RSIBot:
    def __init__(self, symbol: str, rsi_period: int = 14,
                 oversold: float = 30, overbought: float = 70):
        self.exchange = ccxt.binance({'apiKey': API_KEY, 'secret': SECRET})
        self.symbol = symbol
        self.rsi_period = rsi_period
        self.oversold = oversold
        self.overbought = overbought
    
    async def get_signal(self) -> str:
        ohlcv = await self.exchange.fetch_ohlcv(self.symbol, '1h', limit=100)
        df = pd.DataFrame(ohlcv, columns=['ts', 'open', 'high', 'low', 'close', 'vol'])
        df['rsi'] = ta.rsi(df['close'], length=self.rsi_period)
        
        current_rsi = df['rsi'].iloc[-1]
        if current_rsi < self.oversold:
            return 'BUY'
        elif current_rsi > self.overbought:
            return 'SELL'
        return 'HOLD'

Налагодження під рыночні умови

Стандартні рівні 30/70 працюють в боковику. На сильному тренді RSI може утримуватися вище 70 годинами — бот буде продавати проти тренду та терпіти збитки. Рішення:

  • Піднімайте пороги на бичьому ринку: 40/80 замість 30/70
  • Фільтр тренду: торгуйте RSI тільки якщо 200 EMA підтверджує напрямок
  • Дивергенція RSI: ціна робить новий максимум, RSI — ні. Це більш надійний сигнал розвороту ніж просто рівень 70

Срок розробки: 1–2 тижні включаючи backtesting на історичних даних та налагодження параметрів.