Инициализация публичного репозитория

This commit is contained in:
Dmitry
2026-04-24 20:30:33 +03:00
commit 0c6e1591d6
15 changed files with 1082 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
import yaml
from decimal import Decimal
from typing import Dict, Any
def load_config(config_path: str = "config/target.yaml") -> Dict[str, Any]:
with open(config_path, "r", encoding="utf-8") as f:
data = yaml.safe_load(f)
# Результирующий словарь для портфеля
portfolio = {}
corridor = Decimal(str(data.get("corridor", 0)))
# Проходим по всем инструментам в блоке portfolio
for ticker, info in data.get("portfolio", {}).items():
# Важно: переводим weight в Decimal сразу при чтении
portfolio[ticker] = {
"name": info.get("name"),
"figi": info.get("figi"),
"uid": info.get("uid"),
"weight": Decimal(str(info.get("weight", 0))),
}
# Проверка суммы весов
total_weight = sum(item["weight"] for item in portfolio.values())
if abs(total_weight - Decimal("1.0")) > Decimal("0.0001"):
print(
f"⚠️ ВНИМАНИЕ: Сумма весов в конфиге = {total_weight}. Проверьте коэффициенты!"
)
return portfolio, corridor # type: ignore
if __name__ == "__main__":
config, corridor = load_config()
for ticker, info in config.items(): # type: ignore
print(f"{ticker}: {info}")
print(f"Corridor: {corridor}")