{
  "slug": "energia-tech-batte-mercato",
  "title": "Mix Energy + Tech batte il mercato?",
  "strategy_name": "QQQ 70 / XLE 30",
  "benchmark_name": "SPY 100%",
  "period": {
    "start": "1999-03-10",
    "end": "2025-12-30",
    "n_days": 6745
  },
  "params": {
    "tickers": [
      "SPY",
      "QQQ",
      "XLE"
    ],
    "portfolios": {
      "SPY 100%": {
        "SPY": 1.0,
        "QQQ": 0.0,
        "XLE": 0.0
      },
      "QQQ 70 / XLE 30": {
        "SPY": 0.0,
        "QQQ": 0.7,
        "XLE": 0.3
      },
      "QQQ 50 / XLE 50": {
        "SPY": 0.0,
        "QQQ": 0.5,
        "XLE": 0.5
      },
      "QQQ 100%": {
        "SPY": 0.0,
        "QQQ": 1.0,
        "XLE": 0.0
      }
    },
    "rolling_step_months": 6,
    "windows_months": {
      "5y": 60,
      "10y": 120
    },
    "rebalancing": "none (buy & hold puro)",
    "risk_free_annual": 0.02,
    "win_rate_threshold": 0.6,
    "vol_tolerance": 1.1,
    "mdd_tolerance": 1.1
  },
  "full_sample": {
    "SPY 100%": {
      "cagr_full": 0.08339406227611224,
      "mdd_full": -0.5518945230013407,
      "vol_annual_full": 0.1933751330021727,
      "sharpe_full": 0.40761963854750366,
      "sortino_full": 0.5754031027237748,
      "calmar_full": 0.15110507316252103
    },
    "QQQ 70 / XLE 30": {
      "cagr_full": 0.09828000535965775,
      "mdd_full": -0.7233793719130306,
      "vol_annual_full": 0.24546033540929132,
      "sharpe_full": 0.42344175655393307,
      "sortino_full": 0.5968710781698096,
      "calmar_full": 0.13586232781251276
    },
    "QQQ 50 / XLE 50": {
      "cagr_full": 0.09341161645489104,
      "mdd_full": -0.6297271783568332,
      "vol_annual_full": 0.24399551343130257,
      "sharpe_full": 0.40651762584857476,
      "sortino_full": 0.5685563907468671,
      "calmar_full": 0.14833664428877422
    },
    "QQQ 100%": {
      "cagr_full": 0.10467658146558834,
      "mdd_full": -0.8296390725948735,
      "vol_annual_full": 0.2704518089736143,
      "sharpe_full": 0.42923735889854603,
      "sortino_full": 0.6146297070165236,
      "calmar_full": 0.12617122906011402
    }
  },
  "rolling_percentiles": {
    "5y": {
      "SPY 100%": {
        "n_windows": 44,
        "cagr": {
          "p5": -0.021709589056831787,
          "p25": 0.020745628795375504,
          "p50": 0.10560269472671624,
          "p75": 0.14629231362488587,
          "p95": 0.17124146645837532
        },
        "mdd": {
          "p5": -0.5518945230013408,
          "p25": -0.47515867247976046,
          "p50": -0.3371727629838724,
          "p75": -0.18605445999795722,
          "p95": -0.13022925202300606
        },
        "sharpe": {
          "p5": -0.08442235588502574,
          "p25": 0.11288080492655554,
          "p50": 0.5632702393168165,
          "p75": 0.7722886894652298,
          "p95": 0.9918704998536445
        },
        "sortino": {
          "p5": -0.12042937861066036,
          "p25": 0.15900532603708306,
          "p50": 0.7746180174696702,
          "p75": 1.099369387020661,
          "p95": 1.407402804357569
        },
        "calmar": {
          "p5": -0.04568913568078993,
          "p25": 0.04355010300500454,
          "p50": 0.4337889214264712,
          "p75": 0.6276293874240895,
          "p95": 1.1165041482187479
        }
      },
      "QQQ 70 / XLE 30": {
        "n_windows": 44,
        "cagr": {
          "p5": -0.04842045987837598,
          "p25": 0.055841890768258295,
          "p50": 0.1003015810430774,
          "p75": 0.1628151161258667,
          "p95": 0.21288714612553664
        },
        "mdd": {
          "p5": -0.7200168599963802,
          "p25": -0.5342615616391544,
          "p50": -0.3417487768412472,
          "p75": -0.23033119006889893,
          "p95": -0.18132570710779658
        },
        "sharpe": {
          "p5": -0.06438656994643789,
          "p25": 0.2751870383066232,
          "p50": 0.515247204456059,
          "p75": 0.7329552530700635,
          "p95": 0.9680253652014005
        },
        "sortino": {
          "p5": -0.09202338403035201,
          "p25": 0.381695958192494,
          "p50": 0.7321631076520401,
          "p75": 1.0273320077135437,
          "p95": 1.4022324576791254
        },
        "calmar": {
          "p5": -0.06693646758315,
          "p25": 0.13526861153742256,
          "p50": 0.37264757573118423,
          "p75": 0.5433148540454084,
          "p95": 1.0462353138986138
        }
      },
      "QQQ 50 / XLE 50": {
        "n_windows": 44,
        "cagr": {
          "p5": -0.014460018502799795,
          "p25": 0.03890650350742042,
          "p50": 0.08365420276189373,
          "p75": 0.1351087931983394,
          "p95": 0.22159522648886126
        },
        "mdd": {
          "p5": -0.6281376965940677,
          "p25": -0.5520278123021495,
          "p50": -0.3918038678287776,
          "p75": -0.3194339177122799,
          "p95": -0.193857179371842
        },
        "sharpe": {
          "p5": -0.02439560129200959,
          "p25": 0.22554126477443337,
          "p50": 0.3788772966445525,
          "p75": 0.5946644336555978,
          "p95": 0.8999576011883704
        },
        "sortino": {
          "p5": -0.03481478713180951,
          "p25": 0.312542120743871,
          "p50": 0.5288474039101492,
          "p75": 0.8311686090404405,
          "p95": 1.2829675749965985
        },
        "calmar": {
          "p5": -0.023368806759177352,
          "p25": 0.1088796030630583,
          "p50": 0.21908744211086434,
          "p75": 0.3801192458913666,
          "p95": 1.036235410359356
        }
      },
      "QQQ 100%": {
        "n_windows": 44,
        "cagr": {
          "p5": -0.1015945048031597,
          "p25": 0.061835392081952656,
          "p50": 0.14475776932112316,
          "p75": 0.1998287213991204,
          "p95": 0.25368386685193467
        },
        "mdd": {
          "p5": -0.8258728684560875,
          "p25": -0.534039964351775,
          "p50": -0.3511872863827362,
          "p75": -0.2091035408064797,
          "p95": -0.1609927304416387
        },
        "sharpe": {
          "p5": -0.17280538912884771,
          "p25": 0.313917214247993,
          "p50": 0.6355973457017119,
          "p75": 0.9549540325281715,
          "p95": 1.197144046954846
        },
        "sortino": {
          "p5": -0.24098271602348315,
          "p25": 0.44908539375121503,
          "p50": 0.8935377760092471,
          "p75": 1.3677089523104853,
          "p95": 1.6890897107997485
        },
        "calmar": {
          "p5": -0.12553666172169972,
          "p25": 0.12380427726094811,
          "p50": 0.5245113344759514,
          "p75": 0.9098380244934725,
          "p95": 1.3219021109053317
        }
      }
    },
    "10y": {
      "SPY 100%": {
        "n_windows": 34,
        "cagr": {
          "p5": -0.012884451667990786,
          "p25": 0.06872932764834194,
          "p50": 0.08235051344546118,
          "p75": 0.1287427487658297,
          "p95": 0.15401605233522386
        },
        "mdd": {
          "p5": -0.5518945230013412,
          "p25": -0.5518945230013408,
          "p50": -0.5333545531647043,
          "p75": -0.33717276298387255,
          "p95": -0.1934892015814871
        },
        "sharpe": {
          "p5": -0.03221978670243263,
          "p25": 0.314046197254742,
          "p50": 0.38954235770682205,
          "p75": 0.6821891193442349,
          "p95": 0.818284472846092
        },
        "sortino": {
          "p5": -0.0454683498228127,
          "p25": 0.44426597411332486,
          "p50": 0.5503746925047562,
          "p75": 0.9424610886424035,
          "p95": 1.1381442234665715
        },
        "calmar": {
          "p5": -0.023345858911449063,
          "p25": 0.12453344757721942,
          "p50": 0.14921422484430252,
          "p75": 0.3847500016202954,
          "p95": 0.6643307541480318
        }
      },
      "QQQ 70 / XLE 30": {
        "n_windows": 34,
        "cagr": {
          "p5": -0.009358287085356107,
          "p25": 0.0792314350825547,
          "p50": 0.11533308380514207,
          "p75": 0.12916846269394872,
          "p95": 0.1485863732216822
        },
        "mdd": {
          "p5": -0.72337937191303,
          "p25": -0.5342615616391548,
          "p50": -0.5342615616391544,
          "p75": -0.34174877684124716,
          "p95": -0.24973425823636183
        },
        "sharpe": {
          "p5": 0.05443990819097838,
          "p25": 0.35301281586156774,
          "p50": 0.5037809822681074,
          "p75": 0.5878812927871357,
          "p95": 0.6926204341056181
        },
        "sortino": {
          "p5": 0.0766911632193833,
          "p25": 0.4940152469838346,
          "p50": 0.7103658583039366,
          "p75": 0.8139732010754894,
          "p95": 0.965112067530245
        },
        "calmar": {
          "p5": -0.012936900675792593,
          "p25": 0.14830083384525505,
          "p50": 0.23212637259865593,
          "p75": 0.3779632041051938,
          "p95": 0.4757630803203201
        }
      },
      "QQQ 50 / XLE 50": {
        "n_windows": 34,
        "cagr": {
          "p5": 0.019323203702072734,
          "p25": 0.0657465273727168,
          "p50": 0.09187019508691041,
          "p75": 0.10500734623232932,
          "p95": 0.1372750009510391
        },
        "mdd": {
          "p5": -0.6297271783568327,
          "p25": -0.5520278123021499,
          "p50": -0.5520278123021496,
          "p75": -0.3918038678287775,
          "p95": -0.3195131405413904
        },
        "sharpe": {
          "p5": 0.14607722670324416,
          "p25": 0.29868051885354807,
          "p50": 0.4315439513974382,
          "p75": 0.47297698615269357,
          "p95": 0.5471135116416183
        },
        "sortino": {
          "p5": 0.20422471332743908,
          "p25": 0.41685336917772353,
          "p50": 0.5926067128787448,
          "p75": 0.6527614537343325,
          "p95": 0.772496705693327
        },
        "calmar": {
          "p5": 0.03068504007162811,
          "p25": 0.11910002704126568,
          "p50": 0.2239929703636827,
          "p75": 0.2497962995077468,
          "p95": 0.3105330995407658
        }
      },
      "QQQ 100%": {
        "n_windows": 34,
        "cagr": {
          "p5": -0.06582370363713623,
          "p25": 0.10201152021075299,
          "p50": 0.1261464133454978,
          "p75": 0.1807692108237926,
          "p95": 0.2191472848047838
        },
        "mdd": {
          "p5": -0.8296390725948736,
          "p25": -0.5340399643517757,
          "p50": -0.5340399643517748,
          "p75": -0.3511872863827359,
          "p95": -0.2279668119213382
        },
        "sharpe": {
          "p5": -0.0824201761201162,
          "p25": 0.47163663305625536,
          "p50": 0.5687032620453715,
          "p75": 0.8040744234176385,
          "p95": 1.0417049112307495
        },
        "sortino": {
          "p5": -0.11762622915847284,
          "p25": 0.6713535221505675,
          "p50": 0.8087200891256674,
          "p75": 1.130593790891416,
          "p95": 1.473335509743823
        },
        "calmar": {
          "p5": -0.08023565596768124,
          "p25": 0.19101851363235683,
          "p50": 0.2362115604936345,
          "p75": 0.5258251399196138,
          "p95": 0.7948032466387913
        }
      }
    }
  },
  "scorecards": {
    "5y": {
      "window": "5y",
      "criteria": {
        "cagr_mediano": {
          "pass": false,
          "strategy": 0.1003015810430774,
          "benchmark": 0.10560269472671624,
          "rule": "CAGR mediano rolling >= benchmark"
        },
        "win_rate": {
          "pass": true,
          "strategy": 0.6590909090909091,
          "benchmark": 0.6,
          "rule": "Win rate >= 60%"
        },
        "volatility": {
          "pass": false,
          "strategy": 0.24546033540929132,
          "benchmark": 0.1933751330021727,
          "rule": "Volatilita' <= benchmark x 1.1"
        },
        "max_drawdown": {
          "pass": true,
          "strategy": -0.3417487768412472,
          "benchmark": -0.3371727629838724,
          "rule": "|MDD mediano| <= |benchmark| x 1.1"
        },
        "sharpe": {
          "pass": true,
          "strategy": 0.42344175655393307,
          "benchmark": 0.40761963854750366,
          "rule": "Sharpe >= benchmark"
        },
        "calmar": {
          "pass": false,
          "strategy": 0.13586232781251276,
          "benchmark": 0.15110507316252103,
          "rule": "Calmar >= benchmark"
        },
        "sortino": {
          "pass": true,
          "strategy": 0.5968710781698096,
          "benchmark": 0.5754031027237748,
          "rule": "Sortino >= benchmark"
        }
      },
      "verdict": "parziale"
    },
    "10y": {
      "window": "10y",
      "criteria": {
        "cagr_mediano": {
          "pass": true,
          "strategy": 0.11533308380514207,
          "benchmark": 0.08235051344546118,
          "rule": "CAGR mediano rolling >= benchmark"
        },
        "win_rate": {
          "pass": false,
          "strategy": 0.5588235294117647,
          "benchmark": 0.6,
          "rule": "Win rate >= 60%"
        },
        "volatility": {
          "pass": false,
          "strategy": 0.24546033540929132,
          "benchmark": 0.1933751330021727,
          "rule": "Volatilita' <= benchmark x 1.1"
        },
        "max_drawdown": {
          "pass": true,
          "strategy": -0.5342615616391544,
          "benchmark": -0.5333545531647043,
          "rule": "|MDD mediano| <= |benchmark| x 1.1"
        },
        "sharpe": {
          "pass": true,
          "strategy": 0.42344175655393307,
          "benchmark": 0.40761963854750366,
          "rule": "Sharpe >= benchmark"
        },
        "calmar": {
          "pass": false,
          "strategy": 0.13586232781251276,
          "benchmark": 0.15110507316252103,
          "rule": "Calmar >= benchmark"
        },
        "sortino": {
          "pass": true,
          "strategy": 0.5968710781698096,
          "benchmark": 0.5754031027237748,
          "rule": "Sortino >= benchmark"
        }
      },
      "verdict": "parziale"
    }
  },
  "overall_verdict": "parziale"
}