From e1f5a3721a920338f6e1ca51c1c2432cbeeb641e Mon Sep 17 00:00:00 2001 From: fredmaloggia Date: Tue, 3 Feb 2026 17:23:09 +0100 Subject: [PATCH] adeguati limiti a benchmark --- Ottimizzatore UK.py | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) 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()