1 Подготовка и изучение основ
Необходимые знания:
- Python: базовый синтаксис, переменные, функции, циклы
- REST API и WebSockets: основы взаимодействия с биржей
- Криптобиржи: регистрация, типы ордеров, комиссии
Настройка среды разработки:
- Установите Python (последнюю стабильную версию)
- Установите среду разработки (рекомендуется VS Code)
- Создайте папку для проекта
Установка необходимых библиотек:
pip install python-binance
pip install pandas
pip install numpy
pip install ta
2 Получение API-ключей от биржи
Для примера используем Binance:
- Войдите в аккаунт на Binance
- Перейдите в раздел управления API
- Создайте новый API-ключ
- ВАЖНО: Снимите галочку с "Enable Withdrawals" (Разрешить вывод)
- Оставьте только "Enable Reading" и "Enable Spot & Margin Trading"
- Сохраните API Key и Secret Key в надежном месте
API_KEY = 'ВАШ_API_KEY_ЗДЕСЬ'
API_SECRET = 'ВАШ_API_SECRET_ЗДЕСЬ'
3 Написание кода бота
Создайте файл crypto_bot.py и добавьте следующий код:
import pandas as pd
from binance.client import Client
from binance.enums import *
import time
import config
client = Client(config.API_KEY, config.API_SECRET)
TRADE_SYMBOL = 'BTCUSDT'
TRADE_QUANTITY = 0.001
PROFIT_TARGET = 1.0
STOP_LOSS = 2.0
in_position = False
buy_price = 0.0
def get_price(symbol):
try:
ticker = client.get_symbol_ticker(symbol=symbol)
return float(ticker['price'])
except Exception as e:
print(f"Ошибка получения цены: {e}")
return None
def create_order(symbol, side, quantity):
try:
current_price = get_price(symbol)
if not current_price:
return None
if side == SIDE_BUY:
price = round(current_price * 0.995, 2)
elif side == SIDE_SELL:
price = round(current_price * 1.005, 2)
else:
return None
order = client.create_order(
symbol=symbol,
side=side,
type=ORDER_TYPE_LIMIT,
timeInForce=TIME_IN_FORCE_GTC,
quantity=quantity,
price=str(price)
)
print(f"Ордер размещен: {side} {quantity} {symbol} по цене {price}")
return order
except Exception as e:
print(f"Ошибка размещения ордера: {e}")
return None
Это базовая структура бота. Полный код с торговой стратегией и главным циклом доступен в исходной инструкции.