This notebook provides the code for the case study in the CFA Institute Research and Policy Center paper on Reframing Financial Markets as Complex Systems, with further details provided in the paper. The Reframing Financial Markets as Complex Systems report shows how viewing financial markets as complex, interconnected systems can reveal new ways to understand risk, strengthen portfolios, and navigate an increasingly dynamic global economy. The case study considers how network analysis can be used to inform asset allocation in a portfolio using a spanning tree approach, where data on European 10Y sovereign bond yields are used.
- Demonstrate how network theory can be applied to portfolio allocation.
- Implement and visualise a spanning tree network using European sovereign bond yield data.
- Categorise portfolio allocation based on eigenvector centrality in the spanning tree.
- Graph Representation: A set of nodes and edges represented by a correlation matrix (nodes are assets and edges are represented by correlations between assets).
- Spanning Tree: A subgraph where all nodes are connected, undirected, without any cycles.
- Maximum Spanning Tree: A spanning tree where the total edge weight is maximised.
- Eigenvector Centrality: A measure of influence for one node relative to all other nodes in the network.
Ensure the following Python libraries are installed:
pip install eikon pandas sklearn matplotlib seaborn networkx-
Open the notebook:
jupyter notebook "Spanning tree notebook.ipynb" -
Add API key for LSEG data
-
Run cells sequentially.
-
Extra: Experiment with different centrality measures and network construction methods