Анализ скользящей средней (SMA) через API Bybit

Анализ скользящей средней (SMA) через API Bybit

В мире трейдинга ключевую роль играет технический анализ, позволяющий определять тренды и принимать обоснованные торговые решения. Одним из наиболее популярных инструментов является скользящая средняя (SMA), которая сглаживает ценовые колебания и помогает выявлять направление движения цены. В этой статье мы разберем, как можно автоматически анализировать тренд криптовалютной пары BTCUSDT, используя Python и API биржи Bybit.

📌 Что такое скользящая средняя (SMA)?

SMA (Simple Moving Average) – это среднее арифметическое значений цены за определенное количество периодов. Например, SMA(10) для 1-минутного графика – это средняя цена закрытия за последние 10 минут. Если текущая цена выше SMA, можно говорить о восходящем тренде, если ниже – о нисходящем тренде.

🔍 Как работает наш скрипт?

Программа выполняет следующие шаги:

  1. Запрашивает данные о свечах BTCUSDT с Bybit API.
  2. Рассчитывает скользящую среднюю на основе последних N закрытий свечей.
  3. Сравнивает текущую цену с SMA и определяет тренд.
  4. Выводит результаты в реальном времени с обновлением каждые несколько секунд.

📡 Подключение к Bybit API

Для получения данных мы используем API Bybit. Метод /v5/market/kline позволяет получить исторические свечи, в том числе цену закрытия, которую мы используем для расчета SMA.

🖥 Полный код на Python

Ниже представлен код программы, которая выполняет мониторинг тренда BTCUSDT на основе SMA:

import requests
import time

# Константы
KLINE_URL = "https://api.bybit.com/v5/market/kline"
SYMBOL = "BTCUSDT"  # Торговая пара
CATEGORY = "spot"   # Тип рынка (spot или linear для фьючерсов)
INTERVAL = "1"  # Таймфрейм свечей (1 минута)
SMA_PERIOD = 10  # Количество свечей для расчёта SMA
REFRESH_INTERVAL = 5  # Интервал обновления (в секундах)

def get_kline_data():
    """Получить исторические свечи"""
    params = {
        "category": CATEGORY,
        "symbol": SYMBOL,
        "interval": INTERVAL,
        "limit": SMA_PERIOD  # Берём последние N свечей
    }
    response = requests.get(KLINE_URL, params=params)
    if response.status_code == 200:
        result = response.json().get("result", {}).get("list", [])
        if result:
            return [float(candle[4]) for candle in result]  # Закрытия свечей
        else:
            raise ValueError("Пустой ответ в 'result.list'.")
    else:
        raise Exception(f"Ошибка API Kline: {response.status_code}, {response.text}")

def calculate_sma(prices):
    """Рассчитать скользящую среднюю (SMA)"""
    return sum(prices) / len(prices) if prices else 0

def monitor_trend():
    """Мониторинг тренда на основе SMA"""
    try:
        print(f"Начинаем мониторинг тренда {SYMBOL}...\n")
        while True:
            # Получаем закрытия свечей
            closing_prices = get_kline_data()
            current_price = closing_prices[-1]  # Последняя цена закрытия
            sma = calculate_sma(closing_prices)

            # Определяем тренд
            trend = "⬆️ Восходящий" if current_price > sma else "⬇️ Нисходящий"

            # Выводим результаты
            print(f"Цена: {current_price:.2f}, SMA({SMA_PERIOD}): {sma:.2f}, Тренд: {trend}")

            # Интервал обновления
            time.sleep(REFRESH_INTERVAL)
    except Exception as e:
        print(f"Ошибка: {e}")

if __name__ == "__main__":
    monitor_trend()

🔥 Вывод

Этот скрипт – простой, но мощный инструмент для мониторинга тренда BTCUSDT. Его можно расширить, добавив торговые сигналы, более сложные индикаторы или интеграцию с ботом для автоматической торговли.

Комментарии

Пока нет комментариев. Будьте первым!

Оставить комментарий

Чтобы оставить комментарий, пожалуйста, войдите или зарегистрируйтесь.