diff --git a/Ottimizzatore UK.py b/Ottimizzatore UK.py index 341232f..9e7529a 100644 --- a/Ottimizzatore UK.py +++ b/Ottimizzatore UK.py @@ -120,13 +120,30 @@ for (years, target_vol), name in volatility_targets.items(): # Aggiunta dei vincoli per le categorie e le asset class categories_limits = df.groupby('Categoria')['PesoMax'].max().to_dict() - asset_class_limits = { - 'Azionari': 0.75, - 'Obbligazionari': 0.75, - 'Metalli Preziosi': 0.20, - 'Materie Prime': 0.05, - 'Immobiliare': 0.05 + asset_class_limits_by_portfolio = { + 'VAR3_GBP': { + 'Azionari': 0.30, + 'Obbligazionari': 0.70, + 'Metalli Preziosi': 0.10, + 'Materie Prime': 0.0, + 'Immobiliare': 0.0 + }, + 'VAR6_GBP': { + 'Azionari': 0.50, + 'Obbligazionari': 0.50, + 'Metalli Preziosi': 0.15, + 'Materie Prime': 0.0, + 'Immobiliare': 0.0 + }, + 'VAR9_GBP': { + 'Azionari': 0.65, + 'Obbligazionari': 0.25, + 'Metalli Preziosi': 0.20, + 'Materie Prime': 0.0, + 'Immobiliare': 0.0 + } } + asset_class_limits = asset_class_limits_by_portfolio[name] for category, max_weight in categories_limits.items(): isin_list = df[df['Categoria'] == category]['ISIN'].tolist()