Skip to content

Latest commit

 

History

History
197 lines (139 loc) · 6.49 KB

File metadata and controls

197 lines (139 loc) · 6.49 KB

Визуализация Результатов Бэктеста

Способы визуализации результатов бэктеста с графиками входов/выходов

1. Через UI Dashboard (Рекомендуется)

Самый простой способ - использовать веб-интерфейс:

  1. Запустите бэктест для генерации CSV файлов:
# Через Docker
docker compose exec bot python3 backtest_comprehensive.py

# Или локально
python3 backtest_comprehensive.py
  1. Откройте UI в браузере:
http://localhost:5000
  1. Перейдите на вкладку 🧪 Бэктест

  2. Нажмите кнопку "📊 Загрузить результаты"

  3. Выберите тип бэктеста из выпадающего списка:

    • Comprehensive Backtest - полный бэктест
    • Simple Backtest - простой бэктест

Что вы увидите:

  • 📊 Статистика: всего сделок, win rate, прибыль, max drawdown
  • 📈 График с точками входа (зеленые) и выхода (красные/синие)
  • 💰 Equity curve - изменение баланса
  • 📊 Распределение PnL по сделкам
  • 📋 Таблица всех сделок с деталями

2. Через Jupyter Notebook (Для детального анализа)

Используйте готовый notebook backtest_visualization.ipynb:

  1. Установите зависимости:
pip install jupyter matplotlib seaborn pandas
  1. Запустите Jupyter:
jupyter notebook backtest_visualization.ipynb
  1. Выполните ячейки по порядку (Cell → Run All)

Что вы получите:

  • Детальную статистику бэктеста
  • Equity curve с заливкой
  • График сделок с точками входа/выхода и соединяющими линиями
  • Распределение PnL (гистограмма + распределение)
  • Временной анализ (время удержания vs PnL)
  • Кумулятивная прибыль
  • Текстовый отчет (экспорт в файл)

3. Структура CSV файлов

После запуска бэктеста создаются файлы:

Сделки (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,120

Equity Curve (data/backtest_equity.csv или data/backtest_equity_simple.csv):

index,balance
0,10000.0
1,10015.2
2,10032.5

4. Запуск бэктеста через Docker

Для генерации данных:

# Comprehensive backtest
docker compose exec bot python3 backtest_comprehensive.py

# Simple backtest
docker compose exec bot python3 backtest_simple.py

После выполнения CSV файлы появятся в data/ и будут доступны в UI.


5. Быстрый старт

Один контейнер для всего:

# Запуск бота и UI
docker compose up -d --build

# Запуск бэктеста
docker compose exec bot python3 backtest_comprehensive.py

# Открыть UI в браузере
firefox http://localhost:5000
# или
firefox http://<IP_СЕРВЕРА>:5000

# Перейти на вкладку "Бэктест" → Загрузить результаты

6. SSH туннелинг для удаленного доступа к UI

Если бот запущен на сервере:

# На локальной машине
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, опционально)

Troubleshooting

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 и детальной статистикой.