Skip to content

Реализация стратегии дивергенций цены и RSI: живой сканер и торговля через MetaTrader 5, бэктест на Backtrader, HTML-отчёты QuantStats, утилиты для выгрузки данных и списка инструментов. Поддержка риск-менеджмента: риск в % от депозита, TP = SL × R, авто-подбор объёма с учётом маржи.

Notifications You must be signed in to change notification settings

AlexToday111/MT5-Divergence-Bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DivergenceBot

Набор скриптов для торговли и бэктестов стратегии дивергенций цены и RSI на рынке Forex (MetaTrader 5, Backtrader).

Возможности

  • Поиск дивергенций по RSI и экстремумам цены
  • Управление риском: риск в % от депозита, TP = SL * R
  • Авто-расчёт объёма сделки с проверкой доступной маржи (MT5)
  • Бэктест в Backtrader и HTML-отчёт через QuantStats
  • Утилиты для выгрузки исторических данных и списка инструментов

Требования

  • Python 3.10+
  • Установленный MetaTrader 5 (терминал)
  • Демо/реальный счёт и доступ к серверу брокера
  • Пакеты из requirements.txt

Установка

pip install -r requirements.txt

Убедитесь, что путь к терминалу MT5 корректен для вашей системы (см. конфиг ниже).

Конфигурация (utils/keys.py)

Файл utils/keys.py хранит параметры подключения к MT5:

class Keys:
    name = "<LOGIN>"
    key = "<PASSWORD>"
    serv = "<SERVER>"
    path = r"C:\\Program Files\\MetaTrader 5\\terminal64.exe"
  • name: логин счёта (число)
  • key: пароль
  • serv: сервер (например, "MetaQuotes-Demo")
  • path: путь к исполняемому файлу терминала MT5

Подготовка данных

  • Выгрузка истории по инструменту в CSV: utils/bars.py
    • Настройте symbol, timeframe, bars и запустите файл
    • CSV сохраняется в utils/datasets/<SYMBOL>_<TF>.csv
  • Выгрузка списка доступных инструментов: utils/symbols.py
    • Сохранит all_symbols.csv и currency_pairs.csv в utils/datasets/

Запуск бэктеста (Backtrader)

Скрипт: strats/DivergenceStratBT.py

  • Использует датасет из utils/datasets/EURUSD_M5.csv (по умолчанию)
  • Параметры стратегии настраиваются в блоке cerebro.addstrategy(...)
  • По завершении создаётся HTML-отчёт QuantStats рядом с файлом стратегии

Запуск:

python strats/DivergenceStratBT.py | cat

Запуск «живого» сканера/торговли (MT5)

Скрипт: run_bot/DivergenceStratPANDA.py

  • Подключается к MT5, скачивает последние бары, считает RSI
  • Ищет дивергенции на последних барах, считает SL/TP и размер лота
  • Отправляет маркет-ордера при наличии сигнала

Запуск:

python run_bot/DivergenceStratPANDA.py | cat

Ключевые параметры в начале файла:

  • order: ширина окна для локальных экстремумов
  • RSI_PERIOD: период RSI
  • DIV_LOOKBACK: глубина поиска дивергенций
  • SIGNAL_EXPIRY: «срок годности» сигнала, баров
  • RISK_RATIO: отношение TP к SL
  • RISK_PERCENT: риск в % от депозита
  • SYMBOLS: список тикеров для мониторинга

Структура проекта

  • run_bot/
    • DivergenceStratPANDA.py — рабочий сканер/торговый бот под MT5
  • strats/
    • DivergenceStratBT.py — стратегия для Backtrader + отчёт QuantStats
  • utils/
    • bars.py — выгрузка исторических данных в CSV
    • symbols.py — выгрузка списка инструментов в CSV
    • loging.py — примеры открытия/закрытия позиций (MT5)
    • keys.py — параметры подключения к MT5
    • datasets/ — CSV-файлы с данными

Частые проблемы и решения

  • Не удалось авторизоваться: проверьте utils/keys.py (логин/пароль/сервер/путь к MT5)
  • Нет данных/пустой DataFrame: убедитесь, что символ и таймфрейм доступны у брокера
  • Ошибка открытия ордера (retcode): возможно, недостаточно маржи или объём вне допустимого диапазона
  • HTML-отчёт не создаётся: проверьте наличие quantstats и корректность индекса дат (без таймзоны)

Дисклеймер

Данный проект предоставлен в образовательных целях. Торговля на финансовых рынках сопряжена с рисками. Используйте на демо-счёте и на свой страх и риск.

About

Реализация стратегии дивергенций цены и RSI: живой сканер и торговля через MetaTrader 5, бэктест на Backtrader, HTML-отчёты QuantStats, утилиты для выгрузки данных и списка инструментов. Поддержка риск-менеджмента: риск в % от депозита, TP = SL × R, авто-подбор объёма с учётом маржи.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors