Приложение для загрузки данных свечей (candles) с Московской биржи (MOEX) с использованием графического интерфейса PyQt6.
- Python 3.12 или выше
- UV (менеджер пакетов Python)
UV — это современный и быстрый менеджер пакетов Python. Установите его одним из способов:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"curl -LsSf https://astral.sh/uv/install.sh | shИли через pip (если UV уже установлен):
pip install uvПроверьте установку:
uv --versionuv run moex_downloader.pyUV автоматически создаст виртуальное окружение и установит все зависимости из pyproject.toml:
httpx-moex— для работы с API MOEXpandas— для работы с даннымиpyqt6— для графического интерфейсаqasync— для асинхронного программирования в PyQt6
- "Обновить список" — обновляет данные для выбранного тикера
- Сохранить — сохраняет конфигурацию таблицы в CSV файл
- Загрузить — загружает данные свечей (candles) для выбранных инструментов
- Stocks (акции)
- Futures (фьючерсы)
-
Start — начальная дата, с которой приложение будет скачивать свечные данные.
-
End — конечная дата. Если поле пустое, данные будут скачаны до последнего доступного момента.
Формат дат: YYYY-MM-DD
Если вы повторно запускаете скачивание с теми же параметрами:
- и End не заполнен, то приложение не перекачивает весь диапазон заново;
- приложение докачивает только новые свечные данные и добавляет их в конец файла.
Это удобно, чтобы поддерживать базу истории в актуальном состоянии без лишних операций.
Данные сохраняются в CSV-файлах в формате:
Datetime;Open;High;Low;Close;Volume
2015-01-05 10:00:00;11.15;11.95;11.15;11.45;840600
Каждый CSV файл автоматически сжимается в ZIP и сохраняется как, например: AFKS_M30.csv.zip
- данные занимают гораздо меньше места на диске;
- Pandas отлично читает ZIP-архивы напрямую, без предварительной распаковки
moex_downloader/
├── moex_downloader.py # Основной файл приложения
├── pyproject.toml # Конфигурация проекта и зависимости
├── README.md # Этот файл
├── stocks_config.csv # Конфигурация акций (создаётся при запуске)
├── futures_config.csv # Конфигурация фьючерсов (создаётся при запуске)
└── DATA/ # Директория для сохранения данных
Убедитесь, что вы запустили uv sync в директории проекта.
Если вы используете PowerShell и получаете ошибку выполнения скриптов, выполните:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserУбедитесь, что UV установлен и добавлен в PATH, переустановите если необходимо.
Все зависимости автоматически устанавливаются при запуске uv sync. Список зависимостей:
- httpx-moex (>=0.1.0) — API клиент для MOEX
- pandas (>=2.0.0) — обработка данных
- pyqt6 (>=6.8.0) — графический интерфейс
- qasync (>=0.27.0) — асинхронное программирование для PyQt6
