Найти в Дзене

Пишем торгового бота для Binance за 1 час

Цель: Через 60 минут у вас будет рабочий бот, который:Подключается к Binance
Читает цены в реальном времени
Торгует по стратегии SMA Crossover
Работает на Testnet (без риска)
ЧтоКакPython 3.9+python.orgАккаунт Binancebinance.comТекстовый редакторVS Code / PyCharm / Notepad++ Получить готового бота для Binance https://bitcoin-private-keys.store/bot-trader/ bash # Создаём папку
mkdir binance_bot && cd binance_bot
# Виртуальное окружение
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
# Устанавливаем библиотеки
pip install python-binance python-dotenv pandas Для безопасности: используйте Testnet
→ testnet.binance.vision
→ Создайте ключи там же env BINANCE_API_KEY=your_testnet_api_key
BINANCE_API_SECRET=your_testnet_secret_key
SYMBOL=BTCUSDT
QUANTITY=0.001 Добавьте .env в .gitignore, если используете Git python # bot.py
from binance.client import Client
from binance import ThreadedWebsocketManager
import time
from dotenv import load_dote
Оглавление
Цель: Через 60 минут у вас будет рабочий бот, который:Подключается к Binance
Читает цены в реальном времени
Торгует по стратегии
SMA Crossover
Работает на Testnet (без риска)

Что понадобится (5 минут)

ЧтоКакPython 3.9+python.orgАккаунт Binancebinance.comТекстовый редакторVS Code / PyCharm / Notepad++

Получить готового бота для Binance https://bitcoin-private-keys.store/bot-trader/

Шаг 1: Установка (3 минуты)

bash

# Создаём папку
mkdir binance_bot && cd binance_bot

# Виртуальное окружение
python -m venv venv
source venv/bin/activate
# Linux/Mac
venv\Scripts\activate
# Windows

# Устанавливаем библиотеки
pip install python-binance python-dotenv pandas

Шаг 2: API-ключи Binance (5 минут)

  1. Нажмите "Создать API"
  2. Включите:Чтение информации
    Торговля
  3. Сохраните:API Key
    Secret Key
Для безопасности: используйте Testnet
testnet.binance.vision
→ Создайте ключи
там же

Шаг 3: Файл .env (1 минута)

env

BINANCE_API_KEY=your_testnet_api_key
BINANCE_API_SECRET=your_testnet_secret_key
SYMBOL=BTCUSDT
QUANTITY=0.001

Добавьте .env в .gitignore, если используете Git

Шаг 4: Код бота — всего 1 файл (bot.py) (15 минут)

python

# bot.py
from binance.client import Client
from binance import ThreadedWebsocketManager
import time
from dotenv import load_dotenv
import os
import pandas as pd

# Загружаем ключи
load_dotenv()
API_KEY = os.getenv('BINANCE_API_KEY')
API_SECRET = os.getenv('BINANCE_API_SECRET')
SYMBOL = os.getenv('SYMBOL', 'BTCUSDT')
QUANTITY = float(os.getenv('QUANTITY', 0.001))

# Подключаемся к Testnet
client = Client(API_KEY, API_SECRET, testnet=True)
twm = ThreadedWebsocketManager(api_key=API_KEY, api_secret=API_SECRET, testnet=True)
twm.start()

# Хранилище данных
prices = []

def sma(values, period):
return pd.Series(values).rolling(window=period).mean().iloc[-1] if len(values) >= period else None

def handle_message(msg):
global prices
if msg['e'] == 'error':
print("Ошибка WebSocket:", msg['m'])
return

close_price = float(msg['k']['c'])
prices.append(close_price)
if len(prices) > 50:
prices.pop(0)

print(f"Цена {SYMBOL}: {close_price:.2f} | В буфере: {len(prices)}")

# === Стратегия: SMA 9 и SMA 21 ===
if len(prices) >= 21:
sma9 = sma(prices[-9:], 9)
sma21 = sma(prices[-21:], 21)

if sma9 and sma21:
prev_sma9 = sma(prices[:-1][-9:], 9)
prev_sma21 = sma(prices[:-1][-21:], 21)

# Покупка
if prev_sma9 <= prev_sma21 and sma9 > sma21:
try:
order = client.order_market_buy(symbol=SYMBOL, quantity=QUANTITY)
print(f"КУПЛЕНО {QUANTITY} {SYMBOL} по рынку")
except Exception as e:
print("Ошибка покупки:", e)

# Продажа
elif prev_sma9 >= prev_sma21 and sma9 < sma21:
try:
order = client.order_market_sell(symbol=SYMBOL, quantity=QUANTITY)
print(f"ПРОДАНО {QUANTITY} {SYMBOL} по рынку")
except Exception as e:
print("Ошибка продажи:", e)

# Запуск WebSocket (1-минутные свечи)
twm.start_kline_socket(
callback=handle_message,
symbol=SYMBOL,
interval=Client.KLINE_INTERVAL_1MINUTE
)

print(f"Бот запущен! Отслеживание {SYMBOL} на Testnet...")
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
print("\nБот остановлен.")
twm.stop()

Шаг 5: Запуск! (1 минута)

bash

python bot.py

Вы увидите:

text

Бот запущен! Отслеживание BTCUSDT на Testnet...
Цена BTCUSDT: 63245.10 | В буфере: 1
Цена BTCUSDT: 63250.00 | В буфере: 2
...
КУПЛЕНО 0.001 BTCUSDT по рынку

Что делает бот?

ФункцияКак работаетWebSocketПолучает цену в реальном времениSMA 9 / SMA 21Считает скользящие средниеСигналПокупает/продаёт при пересеченииTestnetБез реальных денег

Проверьте сделки в Testnet

  1. Откройте testnet.binance.vision
  2. Войдите через GitHub
  3. Перейдите в Spot Trading
  4. Увидите свои ордера!

За 1 час вы сделали:

ЗадачаСтатусУстановили PythonDoneПодключили Binance APIDoneНаписали стратегиюDoneЗапустили ботаDoneТоргуете на TestnetDone

Что дальше? (следующие 60 минут)

УлучшениеКакЛогированиеlogging в файлStop-Losscreate_oco_orderTelegram-уведомленияpython-telegram-botБэктестингbacktraderЗапуск на VPSDigitalOcean + screen

Полезные ссылки

РесурсСсылкаBinance Testnettestnet.binance.visionpython-binancegithub.com/sammchardy/python-binanceДокументация APIbinance-docs.github.io

Готовый репозиторий (скопируйте за 10 сек)

bash

git clone https://github.com/grok-ai/binance-bot-1hour
cd binance-bot-1hour
pip install -r requirements.txt
# Добавьте .env
python bot.py

(репозиторий вымышленный — создайте сами по шаблону выше)

Заключение

За 1 час вы:

  • Подключились к Binance
  • Написали живого бота
  • Запустили без риска на Testnet
Теперь ваша очередь:Запустите бота
Понаблюдайте 1 час
Улучшите стратегию

Торгуйте умно. Автоматизируйте всё.