📖 Термины этого урока — простыми словами
Комиссия (fee) — биржа берёт плату за каждую сделку: около 0.1% с суммы. На 100 сделках это незаметно. На 10 000 — убивает стратегию.
Cool-down (пауза) — принудительная задержка между повторными входами в одну и ту же позицию. Защита от петли перезахода.
systemd / сервис — система управления процессами на сервере. Поднимает бота при падении — иногда это скрывает проблему вместо того чтобы её показать.
Health-check — проверка что бот не просто "запущен" а действительно работает: сканирует рынок, получает данные, отправляет сигналы.
❌ До этого урока
- Думаешь что главная угроза боту — плохая стратегия или чёрный лебедь
- Не замечаешь как комиссии едят прибыль
- Веришь что "усреднение убытка" спасёт позицию
✅ После этого урока
- Знаешь ловушку комиссий: как fee-drag съедает даже прибыльную стратегию
- Понимаешь "петлю гибели" — почему усреднение убыточных сделок топит аккаунт
- Видишь "тихий суицид" — микроубытки по $0.50 которые выносят счёт за месяц
Ты дошёл до конца. Теперь — правда
9 модулей позади. Бот написан, протестирован, запущен на реальные деньги. Ты всё сделал правильно.
Этот модуль — про то что происходит дальше. Когда бот работает неделями. Когда что-то идёт не так — и это не сразу видно. Это не ошибки новичков. Это ловушки которые убивают ботов у людей которые уже торгуют.
Каждый кейс — реальная история. Диагноз. И промпт которым это чинится.
Кейс #1
Ловушка комиссий
История
Бот показывает +$34 за месяц. 27 из 40 сделок — прибыльные. WR 67% — отличный результат. Но на реальном счёте — минус $11. Без объяснений, без ошибок в логах.
Диагноз
Код считает прибыль как: цена выхода − цена входа. Биржа считает иначе: (цена выхода − цена входа) − комиссия входа − комиссия выхода. На каждой сделке 0.1%+0.1% = 0.2% уходит бирже. Если средняя прибыль сделки 0.15% — бот торгует в минус даже при WR 70%.
⚠️ Числа которые убивают
Если твой бот делает 10 сделок в день с размером позиции $500 — комиссия $1 в день, $30 в месяц, $365 в год. Это не мелочь — это порог безубыточности.
Промпт для Claude Code
👤 Ты
Проверь как бот считает прибыль сделки. Убедись что в расчёт включена комиссия биржи — 0.1% на вход и 0.1% на выход. Если комиссия не учитывается — добавь её. Также добавь в статистику: «чистая прибыль после комиссий» отдельной строкой. Хочу видеть реальный результат а не иллюзию.
Как проверить
- Открой логи — найди любую прибыльную сделку
- Посчитай вручную: (выход − вход) − 0.2% от суммы
- Сравни с тем что показывает бот — числа должны совпасть
- Суммарная статистика в панели теперь показывает «после комиссий»
Кейс #2
Петля гибели
История
Бот открыл SHORT на BTC. Цена пошла против него — стоп не сработал из-за проскальзывания. Бот закрыл позицию и сразу открыл новую в ту же сторону. Снова закрыл с убытком. Снова вошёл. За 40 минут — 6 входов подряд, депозит минус $180.
Диагноз
Когда сделка закрывается с убытком — сигнал на вход может всё ещё быть активным. Бот видит: «условие выполнено → войти». Он не знает что только что вышел. Нет памяти. Нет паузы. Результат — 6 входов за 40 минут в падающий рынок.
Промпт для Claude Code
👤 Ты
Добавь в бота cool-down после закрытия позиции. После каждого выхода из сделки — запретить повторный вход в ту же монету минимум на 15 минут. Если позиция закрылась с убытком — запретить на 30 минут. Хочу чтобы бот не входил подряд несколько раз в одну монету без паузы.
Как проверить
- Попроси Claude Code показать логику cool-down в коде
- Проверь: время последнего выхода записывается в словарь/базу
- Перед каждым входом — проверяется прошедшее время
- В логах должны появиться записи: «BTCUSDT — cool-down активен, пропускаем»
Кейс #3
Тихий суицид
История
«Мой бот работает уже 2 недели — ни одной сделки». Владелец думал что рынок просто тихий. Потом заглянул в логи и нашёл 8 000 строк «ERROR: connection reset». Сервис поднимался каждые 3 секунды, падал, снова поднимался. Systemd считал его «запущенным».
Диагноз
systemd перезапускает сервис при падении — это его работа. Но он не знает торгует ли бот, получает ли данные, в порядке ли соединение. С его точки зрения: процесс есть → статус «active». Бот «работает» но ничего не делает — и никто не знает.
💡 Правило живого бота
«Active» в systemd = процесс не упал. Это не то же самое что «бот торгует». Нужен отдельный слой проверки — health-check.
Промпт для Claude Code
👤 Ты
Добавь в бота health-check: раз в 5 минут записывать в файл heartbeat.txt текущее время и количество успешных сканирований. Также создай отдельный скрипт watchdog.sh который проверяет: если heartbeat.txt не обновлялся больше 10 минут — отправить мне сообщение в Telegram с текстом «Бот завис — проверь». Cron задачу для watchdog тоже добавь — каждые 5 минут.
Как проверить
- Проверь что файл heartbeat.txt обновляется каждые 5 минут
- Останови бота вручную на 11 минут — должен прийти Telegram алерт
- Запусти снова — алерты должны прекратиться
📍 Три из семи
Комиссии — деньги утекают молча. Петля — одна плохая ночь и депозит улетел. Тихий суицид — бот «работает» но не торгует. Следующие кейсы — о том что бот забывает и о том как цифры в логах расходятся с реальностью.