File size: 1,057 Bytes
f4f3f95
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
def fetch_metrics(portfolio_id: str) -> dict | None:
    try:
        url = f"https://api.tradelink.pro/portfolio/get?portfolioId={portfolio_id}&extended=1&declaration=1&step=day&lang=en&incViews=1"
        response = requests.get(url)
        response.raise_for_status()
        extended = response.json().get("data", {}).get("extended", {})
        keys = [
            # 🔹 Доходность и риск
            "alphaRatio", "betaRatio", "cagr", "sharpe", "sortino", "volatility",
            "kSortino", "kCalmar", "kSharpe",

            # 🔹 Просадки
            "maxDD", "mddDuration", "maxBalance",

            # 🔹 Поведение стратегии
            "losingDays", "winningDays", "selfProfitRate",

            # 🔹 Актуальные показатели доходности
            "lastWeekNetProfit", "lastMonthNetProfit", "lastQuarterGrowth", "lastYearNetGrowth"
        ]

        return {k: extended[k] for k in keys if isinstance(extended.get(k), (int, float))}
    except:
        return None