В мире трейдинга ключевую роль играет технический анализ, позволяющий определять тренды и принимать обоснованные торговые решения. Одним из наиболее популярных инструментов является скользящая средняя (SMA), которая сглаживает ценовые колебания и помогает выявлять направление движения цены. В этой статье мы разберем, как можно автоматически анализировать тренд криптовалютной пары BTCUSDT, используя Python и API биржи Bybit.
📌 Что такое скользящая средняя (SMA)?
SMA (Simple Moving Average) – это среднее арифметическое значений цены за определенное количество периодов. Например, SMA(10) для 1-минутного графика – это средняя цена закрытия за последние 10 минут. Если текущая цена выше SMA, можно говорить о восходящем тренде, если ниже – о нисходящем тренде.
🔍 Как работает наш скрипт?
Программа выполняет следующие шаги:
- Запрашивает данные о свечах BTCUSDT с Bybit API.
- Рассчитывает скользящую среднюю на основе последних N закрытий свечей.
- Сравнивает текущую цену с SMA и определяет тренд.
- Выводит результаты в реальном времени с обновлением каждые несколько секунд.
📡 Подключение к 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. Его можно расширить, добавив торговые сигналы, более сложные индикаторы или интеграцию с ботом для автоматической торговли.
Пока нет комментариев. Будьте первым!