Skip to content

Торговый робот на пересечении скользящих средних для акций Сбербанка с доходностью +18.38% (2018 г.)

Notifications You must be signed in to change notification settings

Vladislav0802/Trading-robot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

💹 Торговый робот на основе пересечения скользящих средних

📘 Цель проекта

Целью проекта является разработка и тестирование автоматизированной торговой системы для акций Сбербанка на основе классической стратегии пересечения скользящих средних.
Основная задача — реализовать корректную генерацию и исполнение торговых сигналов, а также провести оптимизацию параметров для максимизации годовой доходности.

📊 Описание данных

Использованы часовые котировки акций Сбербанка за период с 1 января по 31 декабря 2018 года.

Данные представлены в формате pandas.DataFrame со следующими колонками:

  • Open — цена открытия часа
  • High — максимальная цена за час
  • Low — минимальная цена за час
  • Close — цена закрытия часа
  • Индекс — временная метка (datetime)

⚙️ Параметры стратегии

  • Начальный капитал: 100 000 руб.
  • Таймфрейм: 1 час
  • Stop-loss: 5% от цены покупки
  • Базовые окна: fast_window = 30, slow_window = 90

Логика сигналов

  • Сигнал покупки: быстрая скользящая средняя пересекает медленную снизу вверх
  • Сигнал продажи: быстрая скользящая средняя пересекает медленную сверху вниз
  • Исполнение ордеров: по цене открытия следующего часа (без look-ahead bias)
  • Stop-loss: срабатывает при падении цены на 5% от цены покупки

🧠 Реализация

Торговый робот реализован с использованием фреймворка VectorBT — высокопроизводительной библиотеки для векторизованного бэктестинга.

Возможности реализации:

  • Генерация торговых сигналов на основе скользящих средних
  • Учёт stop-loss и управления позициями
  • Визуализация результатов

Визуализация включает:

  • Свечной график с наложенными скользящими средними
  • Маркеры сигналов:
    • 🟢 Зелёный — покупка
    • 🔴 Красный — продажа
    • ⚫ Чёрный — срабатывание stop-loss
  • График состояния позиции (1 — в позиции, 0 — вне позиции)

🔍 Оптимизация параметров

Проведён перебор комбинаций окон скользящих средних для максимизации доходности.
Наилучший результат показала комбинация:

Параметр Значение
Быстрая скользящая 2
Медленная скользящая 14

💰 Результаты

  • Инструмент: акции Сбербанка
  • Период тестирования: 2018 год
  • Итоговая доходность: +18.38% годовых
  • Система корректно обрабатывает все торговые сигналы, включая stop-loss, без использования будущих данных

📈 Выводы

  • Реализована и протестирована классическая трендовая стратегия на пересечении скользящих средних
  • Использование VectorBT позволило обеспечить высокую производительность и визуальную интерпретируемость
  • Оптимизация параметров повысила доходность до 18.38% за год
  • Проект демонстрирует практическое применение количественного анализа и backtesting в Python

⚙️ Используемые технологии

  • Python 3.10+
  • Pandas, NumPy — обработка временных рядов
  • VectorBT — генерация сигналов, управление портфелем, визуализация
  • Plotly — интерактивные графики (встроено в VectorBT)
  • Jupyter Notebook — среда разработки

About

Торговый робот на пересечении скользящих средних для акций Сбербанка с доходностью +18.38% (2018 г.)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published