📖 Термины этого урока — простыми словами
Проскальзывание (slippage) — разница между ценой в бэктесте и реальной ценой исполнения. В бэктесте ты покупаешь ровно по Close. В реале — чуть хуже, потому что рынок движется пока ордер доходит до биржи.
Out-of-sample тест — проверка стратегии на данных которые она не видела при обучении. Если WR в обучающей выборке 70% а на новых данных 42% — стратегия подогнана под прошлое.
Watchdog (сторожевой пёс) — процесс который следит за другим процессом. Если основной процесс молчит дольше N минут — watchdog поднимает тревогу.
Таймаут данных — максимальное время после которого входящие данные считаются устаревшими. Если биржа не ответила за 30 секунд — свежих цен нет, торговать нельзя.
Кейс #6
Мираж бэктеста
История
Стратегия прошла бэктест с WR 70%, Calmar ratio 4.2. Три месяца оптимизации. Запустили на реальные деньги — WR 41% за первый месяц. Стратегия «работала» только потому что бэктест видел будущее: индикаторы считались по тем же свечам на которых принималось решение о входе.
Диагноз
Классический lookahead bias — подглядывание в будущее. Свеча закрывается → бот берёт Close этой свечи → считает RSI → решает войти по Close той же свечи. В реале: пока свеча не закрылась ты не знаешь её Close. К моменту когда ты знаешь Close — цена уже другая. Плюс реальный рынок добавляет проскальзывание и задержку ордера.
⚠️ Самая дорогая ошибка
Lookahead bias и переобучение на истории — причина №1 почему стратегии с отличным бэктестом проваливаются в реале. Это не баг кода — это системная ловушка. Её не видно пока не запустишь на реальные деньги.
Промпт для Claude Code
👤 Ты
Проверь бэктест на lookahead bias. Убедись что сигнал на вход рассчитывается только после закрытия свечи, а цена входа — это Open следующей свечи (не Close текущей). Также добавь в бэктест реалистичное проскальзывание: 0.05% на вход и 0.05% на выход. Запусти бэктест заново и покажи как изменился WR и итоговый PnL после этих правок.
Как проверить
- WR после правки стал ниже чем был — это нормально, это реальность
- Если WR упал больше чем на 15% — стратегия сильно зависела от lookahead
- Запусти бэктест на данных за последние 3 месяца которые не использовались при оптимизации
- Если out-of-sample результат близок к основному — стратегия реальная
Кейс #7
Слепой сканер
История
Бот перестал торговать на 18 часов. Systemd — active. Логи — пустые. Владелец решил что рынок тихий. Утром обнаружил: биржа ввела временное ограничение на WebSocket соединения. Бот потерял поток данных, код не обработал ошибку, просто молча остановил цикл сканирования. Ни ошибки, ни алерта, ни ордера.
Диагноз
Бот проверял рынок — но не проверял что он сам получает данные. Разница критическая. Код мог получить пустой ответ, устаревшие данные, ошибку соединения — и просто пропустить итерацию без шума. Тихо. Молча. 18 часов.
Промпт для Claude Code
👤 Ты
Добавь валидацию входящего потока данных. Перед каждым циклом сканирования проверять: данные пришли, они не пустые, временная метка последней свечи не старше 2 минут. Если что-то из этого нарушено — не торговать в этот цикл и записать в лог «ДАННЫЕ УСТАРЕЛИ: последнее обновление X минут назад». Если данные не обновлялись больше 5 минут подряд — отправить алерт в Telegram: «Бот слепой — нет данных от биржи».
Как проверить
- Временно отключи интернет на сервере на 1 минуту — должен появиться алерт
- В логах: записи «ДАННЫЕ УСТАРЕЛИ» при проблемах с соединением
- После восстановления соединения — бот возобновляет торговлю автоматически
- В нормальном режиме: в каждом цикле в логе отметка о свежести данных
❌ До этого урока
- Бэктест показывает Sharpe 3 и ты уверен что станешь миллионером
- Веришь результатам сканера без проверки
- Не знаешь про подводные камни исторических данных
✅ После этого урока
- Знаешь 3 дыры бэктеста: overfitting, slippage, look-ahead bias
- Умеешь делать "честный" бэктест с учётом комиссий и проскальзывания
- Понимаешь почему сканер на короткой истории даёт мусорные пары
Чеклист выживания — 7 вопросов перед сном
Каждый вечер — один взгляд на эти 7 пунктов. Занимает 2 минуты. Экономит деньги.
💸
Комиссии учтены?
PnL в панели — это чистая прибыль после комиссий биржи?
🔄
Cool-down работает?
Нет повторных входов в одну монету подряд без паузы?
❤️
Heartbeat свежий?
Файл heartbeat.txt обновился в последние 10 минут?
💾
Стопы сохранены?
SQLite база содержит актуальные уровни трейлинг-стопов?
⚖️
Сверка с биржей?
«По боту» и «По бирже» в панели совпадают?
📊
Бэктест честный?
Последний бэктест был с проскальзыванием и без lookahead?
👁️
Данные свежие?
Последнее обновление рыночных данных — не более 2 минут назад?
Ты прошёл весь курс.
10 модулей, 25 уроков + 1 бонус, живой бот на живом рынке. Ты умеешь строить, тестировать, запускать и выживать. Это не конец — это старт.
Большинство людей читают про ботов. Ты своего построил.
Присоединиться к сообществу
На главную
🔄 Курс живой
Новые кейсы будут добавляться — рынок всегда придумывает новые способы убить бота. Как покупатель ты получаешь все обновления бесплатно навсегда.