Реализация адаптивного фильтра Джона Элерса AutoTune Filter (TASC 05/2026) в Backtrader и торговая стратегия на его основе. Проект включает сам индикатор, стратегию с bracket-выходом, инфраструктуру для оптимизации параметров на данных MOEX и готовые результаты прогонов по акции SBER и фьючерсу SBRF.
Проект описан в статье на backtarder.ru. Код не предназначен для торговли на реальном счёте без дополнительной проверки.
| Файл | Назначение |
|---|---|
atf_indicator.py |
Индикатор AutoTuneFilter (линии bp, filt, mincorr, dc) + демо-стратегия для сверки значений с TradingView |
atf_strategy.py |
Две стратегии: AutoTuneFilterStrategy (bracket-выход) и AutoTuneFilterEhlersStrategy (оригинальная always-in-the-market логика Элерса) |
moex_setup.py |
Загрузка данных MOEX и расчёт комиссий для акций и фьючерсов |
params_tools.py |
Утилиты для подготовки сетки параметров под оптимизацию |
reporting.py |
Анализатор SmartAnalyzer, сбор метрик и агрегация результатов (PNL, PF, PROM и др.) |
runners.py |
Управляющий слой: сборка Cerebro, запуск одиночного прогона или оптимизации |
run_optimization.py |
Точка входа для оптимизации (перебор сетки параметров) |
run_single_plot.py |
Точка входа для одиночного прогона с графиком |
opt_results_*.xlsx |
Готовые результаты оптимизации (SBER и SBRF) для проверки цифр из статьи |
Проект разрабатывался и тестировался на Python 3.9.
Зависимости:
backtrader— движок бэктестингаmoex-store— загрузка котировок MOEX (PyPI)pandas,numpy— обработка данныхxlsxwriter— запись Excel-отчётовtqdm— прогресс-бар оптимизацииcerebroview— построение графика (нужен только дляrun_single_plot.py)
Про
cerebroview: это отдельный модуль для интерактивного графика. Он нужен только при запускеrun_single_plot.py. Оптимизация (run_optimization.py) работает без него.
Про
backtraderна Python 3.9: официальный пакет с PyPI на свежих версиях Python может выдавать ошибку импорта (collections/Iterable). Если столкнётесь — используйте форкbacktrader2(pip install backtrader2) либо более раннюю версию Python.
Версия кода к статье — в релизе: https://github.com/Celeevo/AutoTuneFilter/releases/tag/v1.0 Архив можно скачать там же (раздел Assets → Source code (zip)) либо склонировать репозиторий целиком:
# 1. Склонировать репозиторий
git clone https://github.com/Celeevo/AutoTuneFilter.git
cd AutoTuneFilter
# 2. (рекомендуется) создать виртуальное окружение
python -m venv .venv
# Windows:
.venv\Scripts\activate
# macOS/Linux:
source .venv/bin/activate
# 3. Установить зависимости
pip install -r requirements.txtОдиночный прогон с графиком — параметры задаются в словарях STRATEGY_PARAMS и RUN_SETTINGS внутри файла:
python run_single_plot.pyОптимизация (перебор сетки параметров, результат в XLSX):
python run_optimization.pyНастройки прогона (инструмент, период, режим выхода, диапазоны параметров) меняются прямо в верхней части соответствующего скрипта.
MIT