← Torna agli articoli
May 22, 2026
5 min di lettura

12 Algoritmi di Ottimizzazione del Portafoglio a Confronto: HRP, Black-Litterman, NCO e Oltre

12 Algoritmi di Ottimizzazione del Portafoglio a Confronto: HRP, Black-Litterman, NCO e Oltre
#ottimizzazione del portafoglio
#hierarchical risk parity
#HRP
#media-varianza
#Black-Litterman
#NCO
#risk parity
#Rust
#finanza quantitativa
#allocazione degli asset

Ogni ottimizzatore di portafoglio risponde alla stessa domanda: date le serie storiche dei prezzi di un gruppo di asset, quale frazione del capitale dovrebbe essere allocata in ciascuno? Il problema è che non esiste una risposta unica e corretta — esiste una famiglia di risposte, ognuna frutto di un'assunzione diversa su come si comportano i mercati e quanto ci si fida delle proprie stime.

Invece di puntare su un solo metodo, abbiamo costruito uno strumento che esegue dodici di essi fianco a fianco, tutti attraverso un'unica interfaccia, e permette di osservare come divergono su dati reali. È open source, scritto in Rust, e disponibile su portfolio-optimizer.marketmaker.cc. Questo articolo è la mappa: cosa crede ogni algoritmo, da dove viene la matematica, e cosa succede quando si puntano tutti e dodici sullo stesso paniere di criptovalute.

Un'interfaccia, dodici opinioni

Ogni algoritmo nel progetto espone esattamente la stessa firma di funzione:

pub fn optimize(prices: &[Vec<f64>]) -> Vec<f64>

Prezzi in ingresso, pesi in uscita. I pesi sono long-only, non negativi e sommano a 1.0. Questa uniformità è il punto centrale — significa che si può sostituire Hierarchical Risk Parity con Mean-Variance Optimization senza toccare una sola riga del codice chiamante, e si possono confrontare tutti su input identici. Ogni algoritmo vive nel proprio crate (portfolio-hrp, portfolio-mvo, portfolio-nco, …) così si può dipendere solo da quello di cui si ha bisogno.

Internamente non potrebbero essere più diversi. Esploriamo le famiglie.

Il classico: Mean-Variance Optimization (MVO)

È qui che è iniziata la moderna teoria del portafoglio — Harry Markowitz, 1952. MVO tratta l'allocazione come un'ottimizzazione vincolata: massimizzare il rendimento atteso per un dato livello di rischio. Formalmente si risolve

maxwwμγ2wΣw\max_{w} \quad w^\top \mu - \frac{\gamma}{2}\, w^\top \Sigma w

s.t.iwi=1,wi0\text{s.t.} \quad \sum_i w_i = 1, \quad w_i \ge 0

dove μ\mu è il vettore dei rendimenti attesi, Σ\Sigma è la matrice di covarianza e γ\gamma è la vostra avversione al rischio. Quando gli input sono buoni, MVO è imbattibile: è, per costruzione, la frontiera efficiente.

Il problema è che gli input non sono mai buoni. I rendimenti attesi μ\mu sono stimati da una storia rumorosa, e MVO è estremamente sensibile a loro — una piccola variazione in una stima può spostare l'allocazione dall'80% in un asset all'80% in un altro. I professionisti lo chiamano "massimizzazione degli errori": l'ottimizzatore riversa felicemente il capitale nell'asset il cui rendimento è stato più sovrastimato. MVO è il benchmark con cui tutti si misurano e l'ammonimento che tutti citano.

La famiglia gerarchica: HRP, HERC, GHRP, MHRP

Nel 2016 Marcos López de Prado ha proposto un'idea diversa: non invertire affatto la matrice di covarianza. Hierarchical Risk Parity (HRP) aggira l'instabilità di MVO non risolvendo mai direttamente il problema di ottimizzazione. Funziona in tre fasi:

  1. Clustering ad albero — converte la matrice di correlazione in una metrica di distanza, dij=12(1ρij)d_{ij} = \sqrt{\tfrac{1}{2}(1 - \rho_{ij})}, e costruisce una gerarchia di asset in modo che asset simili si trovino sullo stesso ramo.
  2. Quasi-diagonalizzazione — riordina la matrice di covarianza in modo che gli asset correlati siano adiacenti, concentrando i valori grandi lungo la diagonale.
  3. Bisezione ricorsiva — divide l'albero dall'alto verso il basso, allocando il capitale tra le due metà in proporzione inversa alla loro varianza.

Il risultato è un portafoglio che rispetta la struttura del mercato — gli asset correlati competono tra loro per il peso, non con tutto il resto in una volta. HRP è notevolmente più stabile fuori campione rispetto a MVO proprio perché non inverte mai una matrice mal condizionata.

Il progetto include quattro membri di questa famiglia:

  • HRP — l'algoritmo originale di López de Prado.
  • HERC (Hierarchical Equal Risk Contribution) — sostituisce la divisione per varianza inversa con una regola di contributo al rischio uguale ad ogni nodo, in modo che ogni cluster contribuisca equamente al rischio totale.
  • GHRP (Generalized HRP) — una generalizzazione parametrizzata che consente di regolare i passi di clustering e allocazione.
  • MHRP (Modified HRP) — una variante che adatta la ponderazione della bisezione per distribuzioni di rendimento con code più pesanti.

Sono cugini stretti, ma su dati reali divergono in modo significativo — ed è esattamente per questo che avere tutti e quattro è utile.

Incorporare una visione: Black-Litterman

Il modello Black-Litterman (Goldman Sachs, anni '90) è stato costruito per risolvere il difetto più pratico di MVO: costringe a fornire rendimenti attesi per ogni asset, anche quelli su cui non si ha alcuna opinione. Black-Litterman invece parte da un equilibrio di mercato neutrale implicito e consente di integrare le proprie opinioni, ponderate per il grado di confidenza.

E[R]=[(τΣ)1+PΩ1P]1[(τΣ)1Π+PΩ1Q]E[R] = \big[(\tau\Sigma)^{-1} + P^\top \Omega^{-1} P\big]^{-1} \big[(\tau\Sigma)^{-1}\Pi + P^\top \Omega^{-1} Q\big]

Qui Π\Pi è il rendimento di equilibrio, PP e QQ codificano le vostre opinioni ("l'asset A sovraperformerà l'asset B del 2%") e Ω\Omega è l'incertezza di quelle opinioni. Quando non si hanno opinioni, collassa al portafoglio di mercato; quando si è certi, inclina fortemente verso le proprie scommesse. È il più consapevole delle opinioni dei dodici.

L'ibrido: Nested Clustered Optimization (NCO)

NCO, anch'esso di López de Prado, è un matrimonio intelligente dei due mondi precedenti. Raggruppa gli asset come HRP, poi esegue una piccola Mean-Variance Optimization ben condizionata all'interno di ogni cluster e di nuovo tra i cluster. Invertendo solo piccole sotto-matrici stabili, NCO cattura l'ottimalità di MVO dove è sicuro usarlo, evitando l'instabilità di invertire un'unica gigantesca matrice di covarianza. È spesso il meglio di entrambi i comportamenti.

Il resto della formazione

  • Entropy Pooling (Meucci) — un framework probabilistico che trova la distribuzione più vicina al proprio prior (per entropia relativa) soddisfacendo un insieme di opinioni come vincoli. Elegante quando si vuole esprimere incertezza piuttosto che previsioni puntuali.
  • OLPS (Online Portfolio Selection) — una famiglia di strategie sequenziali (portafogli universali, follow-the-winner, mean-reversion) che ribilanciano all'arrivo di nuovi prezzi, con limiti di rimpianto dimostrabili. L'unico metodo genuinamente online nell'insieme.
  • RBA (Robust Bayesian Allocation) — avvolge l'allocazione in un layer di shrinkage bayesiano, avvicinando le stime rumorose a un prior ragionevole in modo che un singolo mese anomalo non possa dominare i pesi.
  • TIC (Theory-Implied Correlation) — sostituisce la matrice di correlazione campionaria grezza con una denoisata rispetto a una struttura teorica (spesso una tassonomia economica), che può migliorare notevolmente i metodi gerarchici che si alimentano di correlazioni.
  • Pipeline — il nostro algoritmo composito "di casa": una struttura HRP con un overlay long/short opzionale e un vincolo CVaR (rischio di coda). Attraverso il punto di ingresso optimize() long-only uniforme si comporta come HRP; il suo meccanismo long/short e di rischio di coda si attiva quando viene guidato con segnali espliciti. Lo analizziamo in dettaglio in un approfondimento dedicato: Dentro il Nostro Algoritmo di Casa: HRP + Long/Short + CVaR con Hull-White.

Cosa succede quando si fanno gareggiare tutti e dodici

Ecco la parte divertente. Abbiamo puntato tutti e dodici su un paniere deliberatamente misto — tre forti vincitori (ZEC, Tether Gold, 1000RATS) e tre pesanti perdenti (FLOW, KAVA, LINEA) — nel periodo da settembre 2025 a febbraio 2026, e abbiamo lasciato che ciascuno allocasse.

Algoritmo Rendimento annualizzato Sharpe
RBA +149%
MVO +74% 2.52
Entropy Pooling +57% 1.93
NCO +44%
HERC +30%
Black-Litterman +7%
OLPS −74%
MHRP −78%
GHRP −95%
HRP / Pipeline −103% −2.45
TIC −131%

Una doverosa avvertenza prima di trarre qualsiasi conclusione: questi numeri provengono da un paniere su una finestra temporale, e il paniere è stato costruito appositamente per contenere vincitori e perdenti estremi. Non si tratta di un'affermazione sulle performance e assolutamente non è un consiglio — è una dimostrazione di divergenza comportamentale. Eseguitelo sui vostri asset e la classifica si riordinerà completamente.

Ma la forma del risultato è la lezione. I metodi orientati al rendimento — MVO, RBA, Entropy Pooling, NCO — hanno concentrato il capitale sui vincitori e ottenuto forti rendimenti positivi. I metodi di pura risk parity — HRP, TIC, MHRP, GHRP — hanno distribuito il peso in modo uniforme per la diversificazione, il che significava detenere anche i perdenti, e sono andati in negativo. Nessun comportamento è "sbagliato". La risk parity è costruita per sopravvivere quando non si riesce a distinguere i vincitori dai perdenti in anticipo; su un paniere dove il futuro era costruito per essere conoscibile, paga il prezzo della propria umiltà. Quella tensione — concentrazione versus diversificazione, convinzione versus robustezza — è l'intero settore in una sola tabella.

Open source e live

Il tutto è aperto: dodici crate Rust con algoritmi come sottomoduli git, un backend HTTP Axum che li distribuisce tutti e un frontend Next.js con un grafico interattivo della frontiera efficiente e una tabella di confronto fianco a fianco. È possibile:

  • provarlo live su portfolio-optimizer.marketmaker.cc — scegliere asset, un intervallo di date e un algoritmo, e osservare l'aggiornamento dei pesi e della frontiera;
  • aprire la scheda Compare Methods per eseguire tutti e dodici su prezzi identici contemporaneamente;
  • dipendere da un singolo crate (portfolio-hrp, portfolio-nco, …) nel proprio progetto Rust.

Conclusioni

  1. Non esiste un ottimizzatore universalmente migliore. La scelta giusta dipende da quanto ci si fida delle proprie stime di rendimento. Ci si fida → MVO/Black-Litterman. Non ci si fida → HRP e affini.
  2. MVO è ottimale e fragile. Definisce la frontiera efficiente ma massimizza l'errore di stima. Trattare i suoi pesi con sospetto a meno che gli input non siano genuinamente affidabili.
  3. I metodi gerarchici scambiano le performance di picco con la stabilità. Raramente dominano un singolo backtest ma raramente crollano — ed è questo che conta davvero quando il futuro è ignoto.
  4. Un'interfaccia uniforme è un superpotere. Una volta che ogni algoritmo è prezzi -> pesi, confrontarli onestamente non costa nulla e passare da uno all'altro è gratuito.

Il modo migliore per capire dodici algoritmi è osservarli mentre discutono. Andate a eseguire il confronto sugli asset che vi interessano davvero.

Riferimenti

  1. Markowitz, H. (1952). Portfolio Selection. The Journal of Finance.
  2. López de Prado, M. (2016). Building Diversified Portfolios that Outperform Out of Sample. The Journal of Portfolio Management.
  3. López de Prado, M. (2020). Machine Learning for Asset Managers. Cambridge University Press.
  4. Black, F., & Litterman, R. (1992). Global Portfolio Optimization. Financial Analysts Journal.
  5. Meucci, A. (2008). Fully Flexible Views: Theory and Practice. Risk.
  6. Marketmaker.cc: marketmaker.cc

Citazione

@article{soloviov2026portfoliooptimization,
  author = {Soloviov, Eugen and Zhuravleva, Marina and Kiselev, Kirill},
  title = {12 Portfolio Optimization Algorithms, Compared: HRP, Black-Litterman, NCO and Beyond},
  year = {2026},
  url = {https://marketmaker.cc/it/blog/post/portfolio-optimization-algorithms-compared},
  description = {Una panoramica di dodici algoritmi di allocazione del portafoglio — MVO, la famiglia gerarchica (HRP, HERC, GHRP, MHRP), Black-Litterman, NCO, Entropy Pooling, OLPS, RBA, TIC e una pipeline composita — dietro un'unica interfaccia Rust, con un confronto onesto fianco a fianco su un paniere misto di criptovalute.}
}
Disclaimer: le informazioni fornite in questo articolo hanno solo scopo didattico e informativo e non costituiscono consulenza finanziaria, di investimento o di trading. Il trading di criptovalute comporta un rischio significativo di perdita.

Autori

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Marina Zhuravleva
Marina Zhuravleva

Financial mathematics

Fifth-year student at Bauman Moscow State Technical University (Automatic Control Systems), specializing in financial mathematics. Background in calibrating stochastic-volatility (Heston) and local-volatility (Dupire) models, fair pricing of options including exotics via both Monte-Carlo and analytic formulas, hedging-error reduction, and exposure to LSV models.

Kirill Kiselev
Kirill Kiselev

Portfolio optimization

Fourth-year student at the Faculty of Mechanics and Mathematics, Novosibirsk State University (NSU); thesis on Heston-model calibration and delta-hedging within the same model. Works on portfolio optimization.

Newsletter

Resta un Passo Avanti al Mercato

Iscriviti alla nostra newsletter per approfondimenti esclusivi sul trading con IA, analisi di mercato e aggiornamenti sulla piattaforma.

Rispettiamo la tua privacy. Annulla l'iscrizione in qualsiasi momento.