Интерактивная модель стратегического распределения активов на основе индексов полной доходности акций MCFTRR, государственных облигаций RGBITR и индекса потребительских цен.
Сайт: https://amchercashin.github.io/asset-allocation/
- MCFTRR и RGBITR загружаются в браузере через API Московской биржи.
- Месячный ИПЦ по Российской Федерации берётся из официального раздела Росстата «Цены, инфляция».
- Накопленный официальный ряд хранится в
data/inflation-monthly.json. ipc_data.jsгенерируется из канонического JSON и остаётся статическим: посетитель сайта не зависит от доступности Росстата и CORS.
Обновитель находит актуальный файл Росстата вида ipc_mes_MM-YYYY.xlsx, проверяет всю сохранённую историю и добавляет только новые последовательные месяцы. Исторические пересмотры, пропуски, неверная структура или аномальные значения останавливают обновление до ручной проверки. При ошибке уже опубликованный сайт не меняется.
python3 -m http.server 8000Откройте http://127.0.0.1:8000/.
python3 -m pip install -r requirements.txt
python3 scripts/update_inflation.py
python3 -m unittest discover -s tests -vПовторный запуск без новой публикации не изменяет файлы. В JSON сохраняются URL фактического XLSX, момент получения и SHA-256 исходного файла.
На момент реализации сервер Росстата не передаёт intermediate своей TLS-цепочки. Для строгой проверки соединения в репозитории хранится только необходимый Russian Trusted Sub CA:
- файл:
certs/russian-trusted-sub-ca-2024.pem; - SHA-256:
2155785036c900dbb5f1bb2a1569c80c55595bd6bf94867a29bbddbc7d88a3f2; - срок действия: до 19 июля 2029 года.
Обновитель по-прежнему требует валидный сертификат и проверяет имя rosstat.gov.ru; отключение TLS-проверки не используется. Сертификат следует заменить до истечения срока, сверив новый fingerprint с официальной публикацией Национального удостоверяющего центра.
GitHub Actions запускает проверку ежедневно и вручную через workflow_dispatch. После 20-го числа обновитель также требует, чтобы источник содержал данные как минимум за предыдущий месяц: устаревший, но формально доступный файл больше не может дать ложный зелёный результат. При появлении нового месяца workflow:
- обновляет JSON и
ipc_data.js; - запускает тесты совместимости и целостности;
- фиксирует новые данные в
master; - публикует тот же проверенный набор файлов в GitHub Pages.
Commit, созданный GITHUB_TOKEN, сам не инициирует Pages build, поэтому обновление и публикация выполняются в одном workflow.