Nifty 50 Graph-Constrained Portfolio Optimization
Abstract
Asset co-movement can be summarized as a sparse network — a minimum spanning tree (MST) or a triangulated maximally filtered graph (TMFG) — rather than a dense correlation matrix. Hierarchical allocation rules such as HRP use dendrograms built from that structure, but they are not classical constrained optimizers: adding a hard risk budget, return floor, or sector tilt is awkward.
This India study follows the constraint-based route. We estimate correlation networks on Nifty 50 NSE equities, then fold graph information into long-only minimum-variance programs in two ways: (i) a linear average-centrality constraint that targets peripheral nodes, and (ii) a neighborhood restriction that discourages simultaneous investment in graph-adjacent names (mixed-integer selection and a continuous SDP-style penalty). Results are compared with unconstrained minimum variance and with HRP, HERC, and nested clustered optimization (NCO).
The report is research output for education and methodology discussion — not investment advice. Key empirical takeaways from the latest run appear first.
- Study covers 49 Nifty 50 NSE equities with daily returns from 2019-01-01; filtered correlation networks are the MST and TMFG.
- On the MST, the average-degree constraint target = 1 places 100% of capital in degree-1 (peripheral) names, versus 54% for unconstrained minimum variance.
- MST neighborhood MIP drives connected-asset share to 0.00% versus 5.46% for minimum variance.
- Out-of-sample expanding-window backtest: highest Sharpe is Equal Weight (SR=0.92, ann. vol=14.5%).
- Hypothesis battery: 5/7 supported at the stated criterion; 5 tests reject the null at 5%.
- Classical baselines (equal-weight, inverse-vol, max-Sharpe, min-variance) and hierarchical HRP/HERC/NCO are compared against graph centrality and neighborhood constraints on the same NSE panel.
Introduction
Three broad strands appear in network-aware allocation. Centrality screening ranks stocks by graph influence and then optimizes on a reduced universe — simple, but selection and optimization are split (Pozzi et al., 2013; Li et al., 2019; Peralta and Zareei, 2016). Mixed-integer graph models encode edges as discrete constraints inside the optimizer — flexible, but scale poorly (Puerto et al., 2020; Ricca and Scozzari, 2024). Hierarchical clustering methods — hierarchical risk parity (HRP), hierarchical equal risk contribution (HERC), and nested clustered optimization (NCO) — exploit dendrograms for diversification (López de Prado, 2016; Raffinot, 2018; Prado, 2019), yet they do not natively accept arbitrary convex constraints such as maximum risk or minimum return.
We implement the middle ground emphasized in recent graph-constraint research: keep a standard convex (or MIP-augmented) return–risk program and add centrality or neighborhood structure as explicit constraints. The empirical laboratory is Indian large caps rather than the US panel in the source literature, so conclusions speak to NSE correlation geometry.
Theoretical background
Why graphs for portfolios? Sample covariance matrices are dense and noisy. Filtering to an MST or TMFG retains the strongest co-movement links while discarding weak edges, yielding an interpretable skeleton of the market (Mantegna, 1999; Massara et al., 2017). Nodes on the periphery (low degree) are weakly tied to the rest of the network; hubs (high degree) sit near the center. Empirically, concentrating weight on peripheral names has been associated with better diversification in crisis periods (Pozzi et al., 2013).
Classical mean–variance. For expected-return vector and covariance , the long-only minimum-variance problem is
This program ignores graph structure: two highly connected neighbors can both receive large weights if that lowers variance. Hierarchical methods (HRP/HERC/NCO) use clustering on a distance transform of correlations, but the allocation step is recursive reweighting — not an optimizer with user-chosen linear or integer constraints.
Constraint philosophy. Let be any convex risk (or concave utility) and a convex feasible set. Graph information enters either as a linear average-centrality equality , or as neighborhood restrictions on which pairs may be jointly positive. Both keep the outer return–risk trade-off recognizable to portfolio construction engines.
Graph representation and portfolio measures
An undirected graph on assets has adjacency matrix with if and (no loops). The matrix power counts walks of length : entry is the number of length- walks from to .
Connection matrices. For graphs without loops, define the non-closed walk indicator at length by
where acts elementwise and is the identity. Cumulating lengths up to gives
With , (direct neighbors). Larger forbids investment in assets linked by longer paths.
Centrality vectors. Node influence is summarized by a vector . Three common choices:
- Degree: — number of incident edges. - Eigenvector centrality: if and are the leading eigenpair of , - Subgraph centrality: , measuring closed-walk participation (Estrada, 2011).
Portfolio-level graph scores. For weights with , the average centrality is the linear map
The connected-asset share measures the fraction of pairwise absolute weight products that sit on connected pairs:
where is the Hadamard (elementwise) product. If , then for every edge (or walk) in at least one endpoint has weight zero — the book does not co-invest in connected names.
The degree histograms below show how MST and TMFG distribute node degrees on the Nifty panel; those distributions motivate the numerical targets used later.
Network size: MST 48 edges · TMFG 141 edges on 49 nodes.
Node-degree histogram (MST vs TMFG)
MST leaves concentrate at degree 1; TMFG is a planar triangulation so the periphery starts at degree 3. These histograms motivate the average-degree targets used in the constrained programs.
MST and TMFG on Nifty 50
From the Pearson correlation matrix we build Mantegna distances
then extract the MST: a spanning tree of nodes and edges with minimum total distance (Kruskal/Prim). Leaves have degree one and sit on the periphery; hubs have higher degree.
The TMFG (Massara, Di Matteo & Aste) grows a planar triangulation that greedily retains high-correlation edges while preserving a tetrahedral face structure. Peripheral TMFG nodes have degree three; interior nodes accumulate higher degree. In both filters, tilting toward the periphery is a structural diversification device.
The table below lists per-name MST/TMFG degrees and MST eigenvector/subgraph scores used when forming and diagnosing portfolios.
Per-name centrality snapshot
Degree from the unweighted MST/TMFG adjacency; eigenvector and subgraph centralities use the MST adjacency. Low-degree names are natural candidates when targeting peripheral average centrality.
| Ticker | MST deg | TMFG deg | Eigenvector | Subgraph |
|---|---|---|---|---|
| ADANIENT | 1 | 3 | 0.0150 | 1.598 |
| APOLLOHOSP | 1 | 3 | 0.0180 | 1.648 |
| BAJAJ-AUTO | 1 | 3 | 0.0000 | 1.594 |
| BEL | 1 | 4 | 0.0150 | 1.598 |
| BHARTIARTL | 1 | 4 | 0.0400 | 1.822 |
| BPCL | 1 | 3 | 0.0400 | 1.824 |
| BRITANNIA | 1 | 3 | 0.0030 | 1.640 |
| DRREDDY | 1 | 3 | 0.0060 | 1.591 |
| EICHERMOT | 1 | 5 | 0.0010 | 1.694 |
| INDUSINDBK | 1 | 3 | 0.0220 | 1.701 |
| ITC | 1 | 3 | 0.0400 | 1.824 |
| KOTAKBANK | 1 | 4 | 0.0020 | 1.696 |
| NESTLEIND | 1 | 5 | 0.0030 | 1.640 |
| ONGC | 1 | 5 | 0.0040 | 1.645 |
| POWERGRID | 1 | 3 | 0.0020 | 1.592 |
| RELIANCE | 1 | 3 | 0.0020 | 1.696 |
| SBILIFE | 1 | 3 | 0.0010 | 1.594 |
| SHRIRAMFIN | 1 | 3 | 0.0220 | 1.701 |
| TATACONSUM | 1 | 4 | 0.0400 | 1.822 |
| TECHM | 1 | 7 | 0.0010 | 1.641 |
| TITAN | 1 | 6 | 0.0010 | 1.694 |
| TRENT | 1 | 3 | 0.0040 | 1.645 |
| WIPRO | 1 | 3 | 0.0000 | 1.592 |
| ADANIPORTS | 2 | 5 | 0.0460 | 2.475 |
| ASIANPAINT | 2 | 6 | 0.0210 | 2.390 |
| BAJAJFINSV | 2 | 7 | 0.0260 | 2.451 |
| CIPLA | 2 | 4 | 0.0170 | 2.236 |
| HCLTECH | 2 | 5 | 0.0040 | 2.335 |
| HDFCLIFE | 2 | 4 | 0.0020 | 2.339 |
| HEROMOTOCO | 2 | 4 | 0.0010 | 2.337 |
| HINDALCO | 2 | 11 | 0.0110 | 2.395 |
| JSWSTEEL | 2 | 8 | 0.0490 | 2.637 |
| LT | 2 | 11 | 0.0460 | 2.475 |
| M&M | 2 | 6 | 0.0050 | 2.391 |
| NTPC | 2 | 4 | 0.0050 | 2.285 |
| SUNPHARMA | 2 | 5 | 0.0460 | 2.522 |
| TCS | 2 | 4 | 0.0010 | 2.281 |
| TMPV | 2 | 3 | 0.0110 | 2.396 |
| BAJFINANCE | 3 | 9 | 0.0120 | 3.141 |
| COALINDIA | 3 | 6 | 0.0130 | 3.140 |
Average centrality constraint — equations and results
Let be a convex risk objective — here portfolio variance — and . The centrality-constrained program is
Equation details. The equality is linear in , so the feasible set remains convex when is convex and the problem stays a convex QP for variance. We take (unweighted degree of the MST or TMFG). On the MST, peripheral targeting uses (all weight on degree-1 leaves when feasible) and a milder . On the TMFG, the planar periphery starts at degree 3, so we use .
The charts and table immediately below report realized , , volatility, and weight-by-degree composition for MST portfolios under these targets, versus unconstrained minimum variance.
Average centrality CM(x) by portfolio (MST)
Realized average node degree CM(x) = C′x. Targeting Deg=1 or applying the neighborhood MIP pins the book near the MST periphery; HRP/HERC/NCO remain closer to unconstrained min-variance.
Connected-asset share CA(x) by portfolio (MST)
Share of pairwise weight mass on graph-adjacent pairs. Zero means no two positive weights share an MST edge.
Table — MST portfolios (Eq. CM / CA diagnostics)
| Portfolio | Std % | Avg degree CM(x) | CA(x) % | Holdings | Deg 1 | Deg 2 | Deg 3 | Deg 4 | Deg 6 |
|---|---|---|---|---|---|---|---|---|---|
| Equal Weight | 1.112 | 1.96 | 4.00 | 49 | 46.9% | 30.6% | 10.2% | 8.2% | 4.1% |
| Inverse Vol | 1.062 | 1.96 | 4.07 | 49 | 46.7% | 30.4% | 10.8% | 8.0% | 4.0% |
| Max Sharpe | 1.308 | 1.11 | 0.00 | 9 | 88.8% | 11.2% | 0.0% | 0.0% | 0.0% |
| Min Variance | 0.856 | 1.70 | 5.46 | 18 | 53.6% | 28.8% | 11.2% | 6.4% | 0.0% |
| Degree target = 1 | 0.898 | 1.00 | 0.00 | 14 | 100.0% | 0.0% | 0.0% | 0.0% | 0.0% |
| Degree target = 2 | 0.861 | 2.00 | 7.01 | 17 | 40.2% | 30.1% | 19.2% | 10.5% | 0.0% |
| MIP Neighborhood | 0.907 | 1.00 | 0.00 | 13 | 100.0% | 0.0% | 0.0% | 0.0% | 0.0% |
| SDP-style Neighborhood | 0.885 | 1.19 | 0.00 | 16 | 80.6% | 19.4% | 0.0% | 0.0% | 0.0% |
| HRP | 1.014 | 1.85 | 3.71 | 49 | 49.5% | 30.9% | 10.2% | 6.7% | 2.7% |
| HERC | 1.075 | 1.92 | 3.86 | 49 | 48.5% | 28.4% | 12.4% | 7.4% | 3.4% |
| NCO | 0.881 | 1.59 | 6.07 | 31 | 57.0% | 29.6% | 10.3% | 3.1% | 0.0% |
Figure — MST weight by node degree
Stacked bars show the share of portfolio weight on each node-degree class. Peripheral constraints push mass into the lowest-degree colors; unconstrained and hierarchical methods spread weight across more tiers.
Neighborhood constraints — MIP, SDP-style, and equations
Mixed-integer form (Ricca–Scozzari generalized). Binary indicators mark selected names. With connection matrix and box bounds on weights,
Equation details (MIP). The block is an independent-set constraint: if asset is selected (), no neighbor under walks of length may be selected. Linking to forces zero weight on deselected names. We use so . Implementation: solve a MILP for a high-score independent set (preferring low diagonal variance), then run minimum variance on the selected subset.
Semidefinite idea. Writing , a natural SDP asks
The Hadamard constraint drives products of connected weights to zero. Without a commercial SDP solver we use the long-only quadratic penalty surrogate
with penalty factor (default ). This shrinks adjacent weight products and approximates the same diversification intent.
Compare MIP and SDP-style columns to minimum variance in the MST diagnostics above: both drive toward zero while the degree-target forces full peripheral allocation.
Comparison with other portfolio methods
We benchmark graph constraints against two families of alternatives on the same Nifty 50 return panel:
- Classical optimizers: equal-weight (); inverse-volatility (); long-only max Sharpe ; unconstrained minimum variance.
- Hierarchical / clustering: HRP (single-linkage + recursive bisection), HERC-style (ward + equal-risk splits), and NCO (cluster MV then across-cluster MV).
In-sample weight diagnostics (average degree , connected-asset share , degree stacks) appear in the table and figure below. Out-of-sample performance is reported in the next section.
Table — All methods on MST graph diagnostics (in-sample weights)
| Portfolio | Std % | Avg degree CM(x) | CA(x) % | Holdings | Deg 1 | Deg 2 | Deg 3 | Deg 4 | Deg 6 |
|---|---|---|---|---|---|---|---|---|---|
| Equal Weight | 1.112 | 1.96 | 4.00 | 49 | 46.9% | 30.6% | 10.2% | 8.2% | 4.1% |
| Inverse Vol | 1.062 | 1.96 | 4.07 | 49 | 46.7% | 30.4% | 10.8% | 8.0% | 4.0% |
| Max Sharpe | 1.308 | 1.11 | 0.00 | 9 | 88.8% | 11.2% | 0.0% | 0.0% | 0.0% |
| Min Variance | 0.856 | 1.70 | 5.46 | 18 | 53.6% | 28.8% | 11.2% | 6.4% | 0.0% |
| Degree target = 1 | 0.898 | 1.00 | 0.00 | 14 | 100.0% | 0.0% | 0.0% | 0.0% | 0.0% |
| Degree target = 2 | 0.861 | 2.00 | 7.01 | 17 | 40.2% | 30.1% | 19.2% | 10.5% | 0.0% |
| MIP Neighborhood | 0.907 | 1.00 | 0.00 | 13 | 100.0% | 0.0% | 0.0% | 0.0% | 0.0% |
| SDP-style Neighborhood | 0.885 | 1.19 | 0.00 | 16 | 80.6% | 19.4% | 0.0% | 0.0% | 0.0% |
| HRP | 1.014 | 1.85 | 3.71 | 49 | 49.5% | 30.9% | 10.2% | 6.7% | 2.7% |
| HERC | 1.075 | 1.92 | 3.86 | 49 | 48.5% | 28.4% | 12.4% | 7.4% | 3.4% |
| NCO | 0.881 | 1.59 | 6.07 | 31 | 57.0% | 29.6% | 10.3% | 3.1% | 0.0% |
Figure — Degree mix across classical, graph, and hierarchical methods
Stacked bars show the share of portfolio weight on each node-degree class. Peripheral constraints push mass into the lowest-degree colors; unconstrained and hierarchical methods spread weight across more tiers.
Out-of-sample method comparison
To compare methods under realistic information constraints we run an expanding-window monthly rebalance. At each month-end with sufficient history we (i) estimate correlations and the MST on returns up to , (ii) solve every optimizer, and (iii) hold weights through the next month. This produces aligned daily OOS return series for each strategy .
Reported metrics: annualized mean , annualized volatility , Sharpe , maximum drawdown, hit rate, plus final-rebalance and . Equity curves for a representative subset (EW, Max Sharpe, Min Variance, Deg=1, MIP, HRP) are plotted below.
Out-of-sample performance (expanding-window monthly rebalance)
Each month-end the MST and all optimizers are re-estimated on history to date; portfolios are held through the next month. Metrics use daily OOS returns (ann. = ×√252).
| Method | Ann. return | Ann. vol | Sharpe | Max DD | Hit rate | Final CM | Final CA% |
|---|---|---|---|---|---|---|---|
| Equal Weight | 19.80% | 14.50% | 0.92 | -18.2% | 57.0% | 1.96 | 4.00 |
| Inverse Vol | 18.80% | 13.80% | 0.89 | -18.1% | 56.8% | 1.96 | 4.07 |
| Max Sharpe | 20.90% | 19.90% | 0.72 | -36.9% | 55.6% | 1.14 | 0.68 |
| Min Variance | 13.60% | 11.60% | 0.61 | -21.6% | 54.0% | 1.71 | 5.51 |
| Degree target = 1 | 14.50% | 12.30% | 0.66 | -21.8% | 53.5% | 1.00 | 0.00 |
| MIP Neighborhood | 13.80% | 12.40% | 0.58 | -21.1% | 53.5% | 1.00 | 0.00 |
| SDP-style Neighborhood | 14.90% | 12.10% | 0.69 | -21.5% | 53.8% | 1.20 | 0.00 |
| HRP | 18.10% | 13.00% | 0.89 | -18.5% | 56.6% | 1.85 | 3.71 |
| HERC | 18.30% | 13.80% | 0.86 | -17.0% | 57.0% | 1.92 | 3.86 |
| NCO | 15.50% | 11.70% | 0.77 | -20.5% | 55.7% | 1.60 | 6.09 |
OOS cumulative wealth (selected methods)
Wealth indexed from the first overlapping OOS day. Graph constraints (Deg=1, MIP) are plotted against equal-weight, max-Sharpe, min-variance, and HRP.
Hypothesis tests
We pre-specify seven hypotheses that link graph structure to risk and relative performance. Unless noted as structural, tests use the OOS daily return series.
- H1 (Levene): Deg=1 has lower volatility than equal-weight — ; supported only if and .
- H2 (Levene): MIP has lower volatility than max-Sharpe.
- H3 (Jobson–Korkie / Memmel): Sharpe of Deg=1 differs from HRP — .
- H4 (paired t): mean of is zero.
- H5 (Levene): SDP-style has lower volatility than inverse-vol.
- H6 (structural): final-rebalance .
- H7 (Welch): MIP mean return differs from equal-weight.
Verdicts distinguish Supported (reject null in the hypothesized direction) from mere null rejection without the directional claim. Results refresh with each pipeline run.
Hypothesis tests
5/7 hypotheses supported; 5 reject the null at 5%. Tests use OOS daily returns unless noted as structural.
| ID | Hypothesis | Test | Stat | p-value | Verdict |
|---|---|---|---|---|---|
| H1 | Peripheral degree constraint (Deg=1) has lower OOS volatility than equal-weight. H₀: Var(r_Deg1) = Var(r_EW) Deg=1 vs Equal Weight | Levene test of equal variances | 11.747 | <0.001 | Supported (p < 0.05) |
| H2 | MIP neighborhood portfolio has lower OOS volatility than max-Sharpe. H₀: Var(r_MIP) = Var(r_MaxSharpe) MIP vs Max Sharpe | Levene test of equal variances | 93.715 | <0.001 | Supported (p < 0.05) |
| H3 | OOS Sharpe of Deg=1 differs from HRP (two-sided). H₀: SR(Deg=1) = SR(HRP) Deg=1 vs HRP | Jobson–Korkie / Memmel Sharpe test | -1589.209 | <0.001 | Supported (p < 0.05) |
| H4 | OOS daily return differential Deg=1 − Min Variance has non-zero mean. H₀: E[r_Deg1 − r_MV] = 0 Deg=1 − Min Variance | Paired one-sample t-test | 0.766 | 0.444 | Not supported (p >= 0.05) |
| H5 | SDP-style neighborhood portfolio has lower OOS volatility than inverse-volatility. H₀: Var(r_SDP) = Var(r_InvVol) SDP-style vs Inverse Vol | Levene test of equal variances | 7.205 | 0.007 | Supported (p < 0.05) |
| H6 | At the final rebalance, Deg=1 average MST degree is below the mean of HRP/HERC/NCO. H₀: CM(Deg=1) ≥ mean CM(hierarchical) Deg=1 vs mean(HRP, HERC, NCO) | Structural comparison of final CM(x) | -0.790 | — | Supported (inequality holds) |
| H7 | MIP neighborhood mean OOS return differs from equal-weight. H₀: E[r_MIP] = E[r_EW] MIP vs Equal Weight | Welch t-test | -0.749 | 0.454 | Not supported (p >= 0.05) |
Data and empirical design
Universe: current Nifty 50 constituents (NSE, *.NS via Yahoo Finance), daily adjusted closes from 2019-01-01, names with insufficient history dropped. Returns are simple daily percentage changes; is the sample covariance with a small ridge for numerical stability. Correlation uses light shrinkage toward the identity before network construction.
In-sample diagnostics use the full-window . OOS uses expanding history with a minimum training length of about two years of daily bars before the first rebalance.
Empirical results — frontiers and TMFG
The unconstrained mean–variance frontier does not encode periphery or neighborhood: as the target return rises, degree composition drifts but connected pairs can remain jointly invested. The stacked frontier charts below illustrate that pattern for MST and TMFG degree labels.
TMFG-constrained portfolios mirror the MST story with a shifted degree scale (periphery at degree 3). Full TMFG diagnostics follow the frontier figures.
Figure — MV frontier composition by MST degree
Each column is a long-only mean–variance frontier point (left = lower risk / more risk-averse). Heights are weight shares by graph degree — classical frontiers do not target periphery explicitly, so composition drifts as return targets rise.
Figure — MV frontier composition by TMFG degree
Each column is a long-only mean–variance frontier point (left = lower risk / more risk-averse). Heights are weight shares by graph degree — classical frontiers do not target periphery explicitly, so composition drifts as return targets rise.
Table — TMFG portfolios (Eq. CM / CA diagnostics)
| Portfolio | Std % | Avg degree CM(x) | CA(x) % | Holdings | Deg 3 | Deg 4 | Deg 5 | Deg 6 | Deg 7 | Deg 8 | Deg 9 | Deg 10 | Deg 11 | Deg 12 | Deg 16 | Deg 22 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Equal Weight | 1.112 | 5.75 | 11.74 | 49 | 30.6% | 20.4% | 14.3% | 8.2% | 6.1% | 2.0% | 6.1% | 2.0% | 4.1% | 2.0% | 2.0% | 2.0% |
| Inverse Vol | 1.062 | 5.71 | 11.64 | 49 | 29.2% | 22.1% | 14.8% | 8.5% | 6.3% | 1.8% | 5.6% | 2.1% | 3.8% | 1.8% | 1.9% | 2.1% |
| Max Sharpe | 1.308 | 3.78 | 5.14 | 9 | 40.3% | 44.9% | 11.2% | 3.6% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% |
| Min Variance | 0.856 | 4.10 | 9.99 | 18 | 39.5% | 31.3% | 15.1% | 7.8% | 6.4% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% |
| Degree target = 3 | 0.925 | 3.00 | 0.00 | 9 | 100.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% |
| Degree target = 6 | 0.890 | 6.00 | 17.93 | 18 | 25.1% | 27.0% | 20.1% | 10.0% | 7.5% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% | 3.7% | 6.6% |
| MIP Neighborhood | 0.938 | 3.42 | 0.00 | 7 | 57.8% | 42.2% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% |
| SDP-style Neighborhood | 0.909 | 3.33 | 0.00 | 12 | 79.9% | 10.3% | 7.1% | 2.7% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% |
| HRP | 1.014 | 5.30 | 10.09 | 49 | 31.8% | 23.4% | 15.8% | 8.1% | 5.7% | 1.4% | 5.2% | 1.7% | 2.8% | 1.3% | 1.5% | 1.3% |
| HERC | 1.075 | 5.65 | 11.34 | 49 | 30.5% | 20.4% | 15.6% | 8.5% | 4.9% | 2.5% | 6.9% | 1.7% | 3.2% | 2.4% | 1.6% | 1.8% |
| NCO | 0.881 | 4.15 | 12.05 | 31 | 38.7% | 28.1% | 20.1% | 7.5% | 4.2% | 1.4% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% |
Figure — TMFG weight by node degree
Stacked bars show the share of portfolio weight on each node-degree class. Peripheral constraints push mass into the lowest-degree colors; unconstrained and hierarchical methods spread weight across more tiers.
Generated 2026-07-16T15:20:20.830327+00:00 · data as of 2026-07-15 · 2019-01-02 → 2026-07-15 · Yahoo Finance (yfinance) · OOS rebalances ≈ 65
Limitations
Networks are estimated in-sample on the full window; rolling re-estimation would better capture regime shifts. The SDP path is a penalty surrogate, not a certified MOSEK/CVXPY SDP. TMFG implementation follows the tetrahedral growth heuristic and may differ numerically from Riskfolio-Lib. Transaction costs, shorting, and turnover limits are omitted. Yahoo Finance adjustments and index membership are point-in-time approximations.
Results illustrate methodology on NSE data. They are not a live trading signal.
Conclusion
Embedding MST/TMFG information as linear centrality or neighborhood constraints / keeps the discipline of classical portfolio optimization while making graph periphery and non-adjacency explicit. On Nifty 50, those constraints materially change degree composition relative to minimum variance and relative to HRP/HERC/NCO, which still spray weight across the hierarchy.
For practitioners, the useful takeaway is operational: if the investment mandate already lives inside a convex optimizer, graph structure need not force a switch to pure hierarchical heuristics — it can enter as one more constraint block alongside sectors, turnover, and risk budgets.
References
Cajas, D. (2023). Portfolio optimization with graph constraints. SSRN Working Paper 4602019. [https://ssrn.com/abstract=4602019](https://ssrn.com/abstract=4602019)
Estrada, E. (2011). Centrality measures. In *The Structure of Complex Networks*. Oxford University Press.
López de Prado, M. (2016). Building diversified portfolios that outperform out of sample. *Journal of Portfolio Management*, 42(4), 59–69.
Mantegna, R. N. (1999). Hierarchical structure in financial markets. *European Physical Journal B*, 11, 193–197.
Massara, G. P., Di Matteo, T., & Aste, T. (2017). Network filtering for big data: Triangulated maximally filtered graph. *Journal of Complex Networks*, 5, 161–178.
Prado, M. (2019). A robust estimator of the efficient frontier. SSRN Working Paper.
Raffinot, T. (2018). Hierarchical equal risk contribution of assets. *Journal of Investing*.
Ricca, F., & Scozzari, A. (2024). Portfolio optimization through a network approach. *European Journal of Operational Research*, 312(2), 700–717.
Pozzi, F., Di Matteo, T., & Aste, T. (2013). Spread of risk across financial markets: better to invest in the peripheries. *Scientific Reports*, 3.
Puerto, J., Rodríguez-Madrena, M., & Scozzari, A. (2020). Clustering and portfolio selection problems: A unified framework. *Computers & Operations Research*, 117, 104891.