Самый простой способ - использовать веб-интерфейс:
- Запустите бэктест для генерации CSV файлов:
# Через Docker
docker compose exec bot python3 backtest_comprehensive.py
# Или локально
python3 backtest_comprehensive.py- Откройте UI в браузере:
http://localhost:5000
-
Перейдите на вкладку 🧪 Бэктест
-
Нажмите кнопку "📊 Загрузить результаты"
-
Выберите тип бэктеста из выпадающего списка:
Comprehensive Backtest- полный бэктестSimple Backtest- простой бэктест
Что вы увидите:
- 📊 Статистика: всего сделок, win rate, прибыль, max drawdown
- 📈 График с точками входа (зеленые) и выхода (красные/синие)
- 💰 Equity curve - изменение баланса
- 📊 Распределение PnL по сделкам
- 📋 Таблица всех сделок с деталями
Используйте готовый notebook backtest_visualization.ipynb:
- Установите зависимости:
pip install jupyter matplotlib seaborn pandas- Запустите Jupyter:
jupyter notebook backtest_visualization.ipynb- Выполните ячейки по порядку (Cell → Run All)
Что вы получите:
- Детальную статистику бэктеста
- Equity curve с заливкой
- График сделок с точками входа/выхода и соединяющими линиями
- Распределение PnL (гистограмма + распределение)
- Временной анализ (время удержания vs PnL)
- Кумулятивная прибыль
- Текстовый отчет (экспорт в файл)
После запуска бэктеста создаются файлы:
Сделки (data/backtest_trades.csv или data/backtest_trades_simple.csv):
entry_time,exit_time,entry_bybit,entry_kucoin,exit_bybit,exit_kucoin,pnl,pnl_pct,reason,time_held
2024-06-01 10:00:00,2024-06-01 12:00:00,1000.5,1001.2,1015.3,1016.1,15.2,1.5,Profit Target,120Equity Curve (data/backtest_equity.csv или data/backtest_equity_simple.csv):
index,balance
0,10000.0
1,10015.2
2,10032.5Для генерации данных:
# Comprehensive backtest
docker compose exec bot python3 backtest_comprehensive.py
# Simple backtest
docker compose exec bot python3 backtest_simple.pyПосле выполнения CSV файлы появятся в data/ и будут доступны в UI.
Один контейнер для всего:
# Запуск бота и UI
docker compose up -d --build
# Запуск бэктеста
docker compose exec bot python3 backtest_comprehensive.py
# Открыть UI в браузере
firefox http://localhost:5000
# или
firefox http://<IP_СЕРВЕРА>:5000
# Перейти на вкладку "Бэктест" → Загрузить результатыЕсли бот запущен на сервере:
# На локальной машине
ssh -L 5000:localhost:5000 user@server_ip
# Затем откройте в браузере
http://localhost:5000График входов/выходов:
- Зеленые треугольники вверх (▲) = вход в позицию
- Синие треугольники вниз (▼) = выход с прибылью
- Красные треугольники вниз (▼) = выход с убытком
- Линии соединяют вход и выход каждой сделки
Equity Curve:
- Показывает изменение баланса после каждой сделки
- Зеленая заливка под кривой
- Позволяет визуально оценить просадки
Распределение PnL:
- Столбчатая диаграмма: зеленые = прибыль, красные = убыток
- Гистограмма распределения для анализа риска
- Python 3.11+
- Pandas (для обработки CSV)
- Flask + Chart.js (для UI, уже включено)
- Matplotlib + Seaborn (для Jupyter, опционально)
CSV файлы не создаются:
- Проверьте, что бэктест завершился успешно
- Проверьте права на папку
data/ - Убедитесь, что в логах нет ошибок
UI не показывает данные:
- Обновите страницу (F5)
- Проверьте консоль браузера (F12 → Console)
- Убедитесь, что CSV файлы существуют в
data/
Jupyter не запускается:
- Установите зависимости:
pip install jupyter matplotlib seaborn - Запустите из корня проекта:
jupyter notebook
Все графики интерактивные (в UI):
- Наведите курсор на точку для деталей
- Масштабируйте колесиком мыши
- Перетаскивайте график для навигации
Экспорт данных:
- Из UI: скриншот графика (браузер)
- Из Jupyter:
plt.savefig('chart.png') - Таблица сделок: копируйте прямо из UI
Готово! Теперь у вас есть полная визуализация результатов бэктеста с графиками входов, выходов, equity curve и детальной статистикой.