Чему вы научитесь
- Получать цены, свечи и стаканы криптобирж через HTTP, CCXT и WebSocket.
- Проверять рыночные данные: замечать пропуски, устаревшие цены и неожиданные ответы биржи.
- Разбираться в ордерах, позициях, комиссиях, плече и ликвидации.
- Подготавливать заявки с учётом точности рынка, минимального количества и ограничений биржи.
- Обрабатывать частичные исполнения, потерянные ответы и повторные события без повторной покупки.
- Превращать торговую идею в проверяемое правило и испытывать её на исторических данных.
- Собирать бота из связанных компонентов: сборщика данных, скринера, торгового счёта и управляющего цикла.
- Сохранять состояние в SQLite, восстанавливаться после перезапуска и запускать бота на сервере через Docker.
О курсе
Написать скрипт, который по сигналу покупает монету - дело нехитрое: взяли библиотеку, вызвали метод, улетел buy. На бумаге или в Jupyter Notebook на исторических данных всё выглядит идеально: стрелочка на графике, виртуальный ордер открыт, кривая доходности красиво ползёт вверх.
А теперь представьте реальный бой.
Вы отправляете на биржу ордер на покупку. Запрос дошёл, биржа радостно исполнила сделку и списала маржу. Но на обратном пути сетевой пакет застрял где-то на магистральном узле, и в Python прилетает обычный TimeoutError. Что в этот момент делает простенький код в блоке except? «Ответа нет - значит, ничего не купили, надо повторить!» Через секунду улетает второй ордер. Потом третий. А если сигнал залип ночью на минутном таймфрейме? К утру вместо одной аккуратной сделки вы рискуете обнаружить набитую под завязку позицию с плечом, висящую в паре центов от ликвидации. Если баланс вообще уцелеет.
Или другой сценарий. Бот держит открытые сделки просто в питоновском словарике positions = {} прямо в оперативной памяти. В три часа ночи провайдер перезагружает ваш VPS ради обновления ядра (или Linux тихо прибивает скрипт через OOM Killer за утечку памяти). Сервис перезапускается через systemd, создаёт чистый пустой словарь и искренне считает, что никаких сделок нет. А на бирже тем временем болтается реальная позиция с 20-м плечом. Стоп-лосс на биржу не выставлялся — вы же планировали закрыть её программно из кода! В итоге рынок разворачивается, присматривать за сделкой некому, а бот по новому сигналу радостно открывает следующую.
На бумаге стратегия всегда выглядит гладко. Ровно до тех пор, пока мы не упираемся в суровую реальность сетевых задержек, перезагрузок и рассинхрона состояния.
В этом курсе мы постепенно соберём своего бота и разберём, как он должен вести себя в таких ситуациях. Сначала освежим Python и механику рынка: откуда берутся цены, как исполняются ордера, что делают комиссии и почему плечо может закончиться ликвидацией. Затем начнём проект my_bot с запроса публичной цены BTC.
Дальше этот же проект будет расти от урока к уроку. Научим его получать свечи, проверять свежесть данных, находить сигнал и выполнять бумажную сделку. Подключим потоки WebSocket, разберём потерянные ответы и повторные события, сохраним состояние в SQLite. В конце запустим бота через Docker, чтобы он продолжал работать после закрытия терминала.
Каждое усложнение появляется по конкретной причине. Пришли старые данные - бот должен остановить новые входы. Потерялось соединение - нужно восстановить состояние. Сработал сигнал - ещё предстоит проверить, хватает ли средств и подходит ли заявка под правила рынка. Вы увидите эти ситуации в коде и проверочных запусках.
Основной бот использует живые публичные данные и учебный счёт: покупки, продажи, комиссии и остатки рассчитываются внутри программы. Отдельные сценарии помогут разобраться с сеткой тейк-профитов, стопами, таймерами и добором позиции.
Задача курса - научить вас собирать и проверять торговую систему. Доходность стратегии придётся исследовать отдельно; для этого мы разберём бэктест, расходы на сделки и ошибки, из-за которых красивая история превращается в неудачный запуск.
Для кого этот курс
Начальные требования
Вы умеете пользоваться переменными, условиями, циклами и функциями Python, а также запускать скрипт. Остальные необходимые темы повторим и разберём на примерах курса.
Понадобятся компьютер с Windows, macOS или Linux, доступ в интернет и возможность установить Python и редактор кода. Команды для запуска проекта и установки зависимостей будут в уроках.
Для основного учебного маршрута достаточно публичных данных биржи. Пополнять торговый счёт не требуется: сделки бот выполняет на бумажном балансе.
Запуск на VPS рассматривается в заключительной части. Аренда сервера оплачивается отдельно; до этого проект можно собирать и проверять на своём компьютере.
Как проходит обучение
Курс текстовый: 54 урока, 279 тестовых вопросов с объяснениями и 7 задач с автоматической проверкой кода. Вы читаете в своём темпе, запускаете примеры и сравниваете результат с тем, что ожидали получить.
В разделе об API начинаем один проект my_bot и дальше развиваем его. В уроках указано, какой файл создать, какую функцию добавить или заменить и какой командой проверить результат. К каждому этапу есть архив полных файлов: можно сверить свою сборку или вернуться к работающей версии.
Сначала разбираем ситуацию и механизм на небольшом примере, затем переносим нужную часть в проект. Для проверки сбоев используем учебные сценарии: потерянный ответ, устаревшие данные, частичное исполнение, разрыв потока. Так можно увидеть поведение бота, не дожидаясь настоящей аварии на бирже.
Основной запуск получает живые публичные данные. Для повторяемых проверок есть режим с учебными значениями: результат можно сравнить с уроком даже тогда, когда рынок уже изменился.
Планируйте 4-5 часов в неделю на чтение и работу с кодом. Календарный срок зависит от вашего опыта и времени на самостоятельные эксперименты; проходить курс можно в удобном темпе.
Программа курса
В курс входят
- 54 урока
- 279 тестов
- 7 интерактивных задач
Наши преподаватели
Отзывы прошедших курс
Что вы получаете
- Свой проект my_bot, который получает живые рыночные данные, проверяет сигнал и выполняет бумажные сделки с учётом комиссий и баланса.
- Полные архивы 36 последовательных этапов и итоговой сборки, чтобы сверять код и возвращаться к работающей версии.
- Проверочные сценарии для сетевых сбоев, повторных событий, потерянных ответов и восстановления после перезапуска.
- Исторический режим для проверки торгового правила на свечах с учётом момента входа и расходов.
- Серверную сборку с Docker, сохранением состояния и журналом работы.
- Возможность подключить Telegram и отправлять себе уведомления о работе бота.