Цель: Через 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 минут)
- Зайдите в Binance → Профиль → Управление API
- Нажмите "Создать API"
- Включите:Чтение информации
Торговля - Сохраните: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
- Откройте testnet.binance.vision
- Войдите через GitHub
- Перейдите в Spot Trading
- Увидите свои ордера!
За 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 час
Улучшите стратегию
Торгуйте умно. Автоматизируйте всё.