Team Ai
Apppublic

Deepvest/ProfilingAI

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
risk_manager.py27 linesDownload Raw Back to core
1# src/core/risk_manager.py2 3import pandas as pd4from typing import Dict, List, Optional5import numpy as np6 7class RiskManager:8    def __init__(self, risk_tolerance: float, max_drawdown: float):9        self.risk_tolerance = risk_tolerance10        self.max_drawdown = max_drawdown11        self.position_limits = {}12        self.var_limits = {}13        14    def calculate_position_size(self, asset: str, volatility: float) -> float:15        max_position = self.risk_tolerance / volatility16        return min(max_position, self.position_limits.get(asset, 0.2))17        18    def check_risk_limits(self, portfolio: pd.DataFrame) -> bool:19        current_drawdown = self.calculate_drawdown(portfolio)20        return current_drawdown <= self.max_drawdown21        22    def calculate_drawdown(self, portfolio: pd.DataFrame) -> float:23        """Calcule le drawdown actuel du portefeuille"""24        cumulative_returns = (1 + portfolio.pct_change()).cumprod()25        rolling_max = cumulative_returns.expanding().max()26        drawdowns = (cumulative_returns - rolling_max) / rolling_max27        return drawdowns.min()