Bybit API узнаем баланс (часть 1)

Bybit API узнаем баланс (часть 1)

Автоматизация финансовых процессов — одна из самых востребованных задач среди трейдеров и инвесторов. В этой статье мы рассмотрим, как создать Python-скрипт для автоматического отслеживания баланса криптовалют на бирже Bybit с использованием их API. Скрипт считывает баланс с биржи, выводит его на экран и сохраняет данные в файл. Такой инструмент пригодится для мониторинга вашего портфеля в реальном времени.

Для работы с биржей вам нужно иметь там аккаунт или зарегистрироваться на ней: перейти. После авторизации на бирже наводим на свой аккаунт и в самом низу выбираем «Демо трейдинг». Теперь мы не будем рисковать реальными средствами и будем использовать демо счет. В демо режиме повторно наводим на значок аккаунта и выбираем раздел API. Создаем новый API обязательно записываем APIКлюч и API секрет.

Создание конфигурационного файла

Первый шаг — создать файл config.json, который будет хранить ключи API и параметры подключения. Этот файл необходим для безопасного хранения конфиденциальной информации.

Пример содержимого файла config.json:

{
    "api_key": "Ваш ключ", 
    "api_secret": "Ваш секретный ключ", 
    "account_type": "UNIFIED",
    "demo_mode": true
}

Что здесь важно:

  • api_key — это ваш публичный ключ API, который вы получаете на бирже Bybit.
  • api_secret — это секретный ключ, используемый для подписи запросов.
  • account_type — тип аккаунта на бирже. В данном случае используется объединенный аккаунт (UNIFIED).
  • demo_mode — параметр, указывающий, используется ли демонстрационный режим.

Основной код скрипта

Теперь перейдём к написанию основного скрипта balance.py, который будет подключаться к API и запрашивать баланс.

import json
from datetime import datetime
from pybit.unified_trading import HTTP

# Загрузка конфигурации из файла config.json
with open("config.json") as config_file:
    config = json.load(config_file)

api_key = config["api_key"]
api_secret = config["api_secret"]
demo_mode = config["demo_mode"]

# Инициализация сессии
session = HTTP(
    api_key=api_key,
    api_secret=api_secret,
    testnet=False,  # Демо-счёт через реальный API
    demo=True
)

# Запрос баланса
try:
    response = session.get_wallet_balance(accountType="UNIFIED")

    # Проверка успешности запроса
    if response["retCode"] == 0:
        # Извлечение списка балансов
        coins = response["result"]["list"][0]["coin"]
        balance_data = []  # Список для хранения данных о балансе
        timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")  # Время в формате YYYY-MM-DD HH:MM:SS

        for coin_data in coins:
            coin = coin_data["coin"]
            balance = coin_data["walletBalance"]
            balance_data.append({"coin": coin, "balance": balance, "timestamp": timestamp})  # Добавляем данные с временем
            print(f"Монета: {coin}, Баланс: {balance}, Время: {timestamp}")

        # Сохранение данных в файл balance.json
        with open("balance.json", "w") as outfile:
            json.dump(balance_data, outfile, indent=4)
        print("Данные о балансе сохранены в файл balance.json")

    else:
        print(f"Ошибка: {response['retMsg']}")
except Exception as e:
    print(f"Произошла ошибка: {e}")

Пояснение по коду

  1. Загрузка конфигурации
    В начале скрипта загружается файл config.json, из которого извлекаются ключи API и другие параметры. Это позволяет легко переключаться между разными учетными записями, просто изменяя конфигурационный файл.
  2. Инициализация сессии
    С помощью библиотеки pybit создаётся сессия для взаимодействия с API Bybit. Здесь важно правильно задать параметры api_keyapi_secret и режим подключения.
  3. Запрос баланса
    Сессия отправляет запрос на получение баланса. Если запрос успешен (код возврата retCode == 0), извлекаются данные о балансе всех криптовалют.
  4. Вывод и сохранение данных
    После успешного получения баланса данные выводятся на экран и сохраняются в файл balance.json. В каждом объекте сохраняется:

     

    • Название монеты (coin)
    • Баланс (walletBalance)
    • Метка времени запроса (timestamp)

Использование скрипта

Создайте файл config.json и заполните его своими ключами API.

Установите библиотеку pybit с помощью команды:

pip install pybit

Запустите скрипт командой:

python balance.py

После выполнения скрипта в файле balance.json появятся актуальные данные о вашем балансе, например:

[
    {
        "coin": "BTC",
        "balance": 0.001,
        "timestamp": "2025-01-14 12:00:00"
    },
    {
        "coin": "ETH",
        "balance": 0.05,
        "timestamp": "2025-01-14 12:00:00"
    }
]

Или вот такой вывод в pyhcarm

Заключение

Этот простой скрипт позволяет вам автоматически отслеживать баланс на бирже Bybit. Вы можете расширить его функциональность, добавив, например, уведомления по email или Telegram при изменении баланса. Благодаря использованию конфигурационного файла обеспечивается удобство и безопасность работы со скриптом.

Если вы хотите добавить больше возможностей, таких как автоматическое обновление данных или интеграция с другими сервисами, напишите об этом в комментариях, и мы подготовим продолжение!

Комментарии

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

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

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