📖 Термины этого урока — простыми словами
Paper Trading — торговля "на бумаге". Бот работает на живом рынке с реальными ценами, но деньги виртуальные. Промежуток между бэктестом (история) и реальной торговлей (деньги).
Ордер — заявка на бирже купить или продать. Рыночный ордер = купи прямо сейчас по любой цене. Лимитный ордер = купи только если цена дойдёт до X.
Открытая позиция — сделка которая ещё не закрыта. Ты купил BTC — позиция открыта. Продал BTC — позиция закрыта, зафиксировал результат.
Лог / Логи — текстовый дневник бота. Записывает каждое действие: открыл позицию, закрыл, ошибка. По логам видно всё что бот делал пока ты не смотрел.
Slippage (Проскальзывание) — разница между ценой которую ты хотел и ценой которую получил. Хотел купить по $100.00 — купили по $100.08. Особенно заметно на быстром рынке или крупных объёмах.
Spread (Спред) — разрыв между лучшей ценой продавца (Ask) и лучшей ценой покупателя (Bid). Покупаешь по Ask, продаёшь по Bid. Разница уходит бирже. Даже до открытия позиции ты уже чуть в минусе.
❌ До этого урока
- Бэктест показал +200%, но не уверен что на живом рынке будет так же
- Страшно запускать бота "в реал" — вдруг он сольёт всё за час
- Не знаешь как проверить бота БЕЗ риска денег
✅ После этого урока
- Бот торгует на реальных ценах виртуальным балансом $1000
- Видишь как он реагирует на живую волатильность
- Знаешь где paper-результаты расходятся с бэктестом и почему
Разница между бэктестом и Paper Trading
Бэктест — это прошлое. Paper Trading — это живой рынок прямо сейчас, но все сделки только записываются локально. Бот видит реальные цены через публичный API (ключи не нужны), принимает реальные решения — просто не отправляет ордера на биржу, а логирует их в файл.
Цель: дать боту поработать минимум 1–2 недели и собрать статистику на живом рынке. Биржевые ключи понадобятся только в следующем модуле — Testnet.
Запускаем Paper Trading — без ключей, без риска
👤 Ты
В файле executor.py реализуй Paper Trading режим. Ключи биржи не нужны — бот получает цены через публичный API Binance (без авторизации).
Когда стратегия даёт сигнал — не отправляй ордер на биржу, а записывай в файл logs/trades.csv: время, символ, направление, цена входа, размер, SL, TP.
Добавь функцию get_stats() которая считает по trades.csv: количество сделок, win rate, итоговый PnL, среднюю прибыль и средний убыток.
👤 Ты
Запусти main.py. Через 5 минут выведи первые сигналы которые нашёл бот и объясни по какой монете и почему.
📊 Первые сигналы бота
14:32:07 → SOL/USDT LONG
RSI: 26.4 (перепродан)
Цена: $141.80 (ниже нижней BB)
Вход: $141.80 | SL: $138.96 | TP: $147.47
14:35:22 → XRP/USDT — нет сигнала
RSI: 42.1 (нейтрально)
✓ Paper Trade записан: SOL LONG $50 → logs/trades.csv
Реализм в Paper Trading — имитируем реальный рынок
Paper Trading без реализма — это мираж. Бэктест показывает +$200, Paper показывает +$180, а реальный бот делает +$120. Разница — спред, проскальзывание, задержки. Заставь Paper Trading учитывать это с самого начала:
👤 Промпт — Market Simulator
В executor.py добавь модуль Market-Simulator для режима Paper Trading.
Он должен имитировать реальный рынок:
— Спред: при покупке цена входа = текущая цена + 0.03% (Ask хуже Bid)
— Проскальзывание: дополнительно +0.05% к цене исполнения (рынок двигается пока идёт ордер)
— Задержка: перед исполнением пауза 150–250мс (сеть + биржа)
— Комиссия: 0.04% за открытие + 0.04% за закрытие (Binance Futures Maker)
Итог: каждая сделка должна сразу показывать "реальную" цену с учётом всех потерь.
В лог пиши: цена сигнала / цена исполнения / потери на спреде и проскальзывании.
Пример лога с симулятором
14:32:07 SIGNAL → SOL LONG @ $141.80
+spread 0.03%: $141.84
+slippage 0.05%: $141.91
delay: 187ms
executed: $141.91 (–$0.11 от сигнала)
commission open: –$0.057
⚠️ Зачем это нужно
Если Paper Trading не учитывает спред и проскальзывание — ты получишь «Мираж бэктеста». Стратегия которая "зарабатывала" $50 в день на симуляции будет терять $10 на реальном рынке. Симулятор показывает правду заранее.
Живой монитор — «центр управления полётами»
Не смотри на чёрную консоль. Попроси Claude сделать нормальный веб-интерфейс:
👤 Промпт — Live Monitor
Добавь к боту лёгкий веб-монитор на Flask. Порт 8080.
В мониторе должно быть 4 вкладки:
— Статус: бот Online/Offline, аптайм, последний сигнал
— Открытые сделки: монета, направление, цена входа, текущий PnL в $%
— Архив: закрытые сделки, Win Rate, общий PnL
— Настройки: текущие параметры бота (RSI пороги, SL, TP) — только просмотр
На вкладке Архив добавь накопительный график PnL — линия роста капитала по всем закрытым сделкам (Chart.js или простой SVG).
На всех вкладках внизу экрана — плавающий виджет: текущий суммарный PnL за сегодня в $ и %, зелёный если плюс, красный если минус. Обновляется каждые 5 секунд.
Монитор должен обновляться каждые 5 секунд без перезагрузки страницы.
Защити монитор паролем — добавь HTTP Basic Auth. Логин: admin, пароль: [придумай любой, например: nexus2024]. Без авторизации — возвращать 401.
Если я открываю адрес и вижу пустую страницу или ошибку — напиши команду для открытия порта 8080 в ufw.
💡 Открыть монитор в браузере
После запуска — открой в браузере: http://[IP сервера]:8080. IP сервера — тот который дал Hetzner при создании. Если пустая страница — попроси Claude проверить порты.
Что делать пока бот работает
Оставь бота работать на несколько дней. Можешь закрыть терминал — бот продолжит работать на сервере. Раз в день заглядывай в статистику:
👤 Ты — проверка через день
Открой logs/trades.csv и выведи статистику за последние 24 часа. Покажи самую прибыльную и самую убыточную сделку.
⏳ Дай боту время
Минимум 50 сделок для статистической значимости. Если торгует 5–10 символов — обычно это 1–2 недели. Не делай выводов по первым 5 сделкам.
✅ Итог урока
Бот работает на Paper Trading. В следующем уроке анализируем результаты. Бэктест остаётся твоим инструментом на всех этапах — если что-то идёт не так, всегда можно вернуться и проверить на истории.