Личный дневник Льгов - shoumq/bybit_scalp GitHub Wiki
Личный дневник ФИО: Льгов Иван Тема проекта: Создание скальпингового трейдингового бота с использованием машинного обучения для предсказания цен на криптовалюты
Неделя 1 20 апреля: Сегодня начал курс по машинному обучению, а также курс Kanban на платформе Stepik. Изучил основные методы классификации и регрессии. Задался вопросом: какие модели лучше подходят для прогнозирования краткосрочных движений цены. Отметил, что особое внимание стоит уделить обработке временных рядов. Также я понял как важно иметь четкую структуру для эффективного управления проекта. 22 апреля: Начал изучать API Bybit для получения исторических данных по криптовалютам. Удалось скачать минутные котировки BTC/USDT. Обнаружил, что данные часто содержат выбросы, и необходимо предварительно их очищать. Решил реализовать функцию агрегации данных в свечи. 24 апреля: Ознакомился с архитектурой типичного трейдингового бота: модуль сбора данных → предсказание → отправка ордера → логирование. Начал прорабатывать структуру проекта. В Trello зафиксировал задачи на ближайшие 2 недели: подготовка датасета, построение базовой модели, тестирование сигналов.
Неделя 2 26 апреля: Обучил первую простую модель на основе RandomForestClassifier. Использовал технические индикаторы: скользящие средние, RSI, волатильность. Результаты пока нестабильные. Начал разбираться с LSTM-моделями, так как они лучше подходят для временных рядов. Завершил изучение курса по Канбан и понял, насколько важно регулярно проводить встречи для оценки прогресса и выявления узких мест в процессе. Это вдохновило меня предложить команде внедрить такие встречи в нашу работу.
https://stepik.org/course/230630/syllabus 28 апреля: Прочитал статьи по применению ML в трейдинге, в частности: Гарсиа М., Ли Т. «Влияние машинного обучения на высокочастотную торговлю». Авторы подчеркивают важность оценки латентных факторов и реального рыночного шума, а также возможные риски переобучения. Сделал вывод, что нужно использовать валидацию на разрывах данных и избегать "слияния будущего". 2 мая: Собрал финальный набор признаков и обучил LSTM-модель на фреймах с размером окна в 30 минут. Использовал Keras. Потребовалось нормализовать данные. Визуализировал график обучения — при определённых параметрах наблюдается переобучение. Добавил регуляризацию и Dropout. 4 мая: Провёл первый запуск симуляции стратегии. Сигналы анализируются и фильтруются по уровню объёма и волатильности. Прибыль пока небольшая, но положительная. Решил ввести порог фильтрации по ATR, чтобы исключить «шумовые» сигналы. Начал разрабатывать Telegram-уведомления для реальных запусков.
Неделя 3 12 мая: Собрал обратную связь от одногруппников по логике стратегии. Получил предложения учесть время суток и резкие скачки. Добавил в модель признаки времени (час, день недели). Стал фиксировать задержки между генерацией сигнала и возможным исполнением — это важный фактор для скальпинга. Завершил курс «Введение в Data Science и машинное обучение». Курс дал мне целостное представление о том, как устроены проекты в области анализа данных — от сбора и очистки данных до построения моделей и интерпретации результатов. Я научился использовать ключевые инструменты и библиотеки Python (pandas, scikit-learn, matplotlib), познакомился с основами регрессии, классификации и кластеризации, а также понял, как важно правильно готовить данные и оценивать модели. Эти знания я уже начал применять в своём проекте — при построении модели предсказания краткосрочных цен на криптовалюту.
https://stepik.org/cert/2862717
14 мая: Подключил симулятор торгов. Реализовал правила входа и выхода из позиции с заданными take-profit и stop-loss. Ввёл метрики: cumulative return, Sharpe ratio, precision по сигналам. Результаты улучшились после фильтрации по EMA и объёму. 16 мая: Создал систему логирования сигналов и их результата. Теперь можно отслеживать успешность каждой отдельной сделки. Провёл серию тестов на исторических данных с марта 2024. Бот показал precision около 70% на трендовых отрезках. Начал формировать блок отчётности по результатам. 18 мая: Изучил возможности применения reinforcement learning в торговле, но пока решил отложить — ресурсоёмко и требует отдельного симулятора. Вместо этого оптимизировал LSTM: уменьшил количество нейронов, добавил BatchNormalization. Прирост точности составил +3%.
Неделя 4 19 мая: Разработал графическую панель для визуализации сделок и сигналов на matplotlib. Это помогло наглядно увидеть, как работает стратегия. Внёс корректировки в правила выхода: теперь учитывается trailing-stop. Это повысило прибыльность стратегии на 5%. 20 мая: Произвёл окончательное тестирование модели. Интегрировал все модули в единый проект: сбор данных, обучение модели, генерация сигналов, симуляция сделок, логирование и визуализация. Подготовил итоговую документацию и презентацию для демонстрации. Precision составил 0.742, Sharpe ratio = 1.18 — хороший результат для MVP.