[Quant Investing] Portfolio Backtesting Program (Python Tool)

                            [Quant Investing] Permanent Portfolio Backtest Analysis            
       

[Quant Investing] Permanent Portfolio | 20-Year Backtest with Stocks/Bonds/Gold/Cash

       

The 'Permanent Portfolio,' often called a classic asset allocation strategy, aims for consistent performance regardless of market conditions. But does it truly work in reality? In this post, we'll use a Python program I developed to conduct a 20-year backtest of the Permanent Portfolio and confirm the true power of asset allocation through the results.

   
   
   

Permanent Portfolio Backtest: Surprising Results

   

1. What is the Permanent Portfolio?

   

The Permanent Portfolio is an asset allocation strategy proposed by investment philosopher Harry Browne. The core principle is to diversify assets into four categories to prepare for all economic situations. Each asset is designed to perform its role during a major phase of the economic cycle (prosperity, recession, inflation, and deflation).

   
           
  • Prosperity: Stocks (25%)
  •        
  • Recession: Long-Term Bonds (25%)
  •        
  • Inflation: Gold (25%)
  •        
  • Deflation: Cash (25%)
  •    
   

By investing evenly in these assets with low correlations, the goal is to minimize overall portfolio volatility, as a loss in one asset is offset by gains in another.

   
   

2. Essential Prerequisites for Using the Program

   

To run this program, you need to install Python and a few essential libraries. If Python is not yet installed, please download and install it from the official website via the link below.

   

                    👉 Go to Python Download            

   

Once Python is installed, open Command Prompt (CMD) or a terminal and enter the command below to install the necessary libraries at once.

   
        pip install yfinance PySide6 pandas numpy matplotlib certifi    
   
   

3. How to Download and Run the Code File

   

The full code for the analysis program can be downloaded from the link below. After downloading the file, you can run the GUI program immediately with Python without any additional installation steps.

   

        📋 Download Program Code    

   
   

4. Simulation Method and Conditions

   

In my Python program, selecting the 'Portfolio Simulation' tab will bring up a screen where you can input the tickers and weights. I used US ETFs (Exchange Traded Funds) that represent each asset class to construct the Permanent Portfolio.

   
                             Initial screen of portfolio simulation        

▲ Initial screen of the 'Portfolio Simulation' tab

   
   

I entered the tickers, weights, and period according to the Permanent Portfolio strategy.

   
           
  • Stocks (25%): SPY, an S&P 500 ETF
  •        
  • Long-Term Bonds (25%): TLT, a US long-term government bond ETF
  •        
  • Gold (25%): GLD, a gold ETF
  •        
  • Cash (25%): SHY, a short-term bond ETF
  •        
  • Period: September 1, 2005, to September 1, 2025
  •        
  • Rebalancing: Set to no rebalancing (Buy & Hold)
  •    
   

The screen with all the information entered is as follows. After entering the data, clicking the 'Start Simulation' button will automatically fetch the data and run the simulation.

   
                                    Permanent Portfolio simulation input screen        

▲ Permanent Portfolio simulation input screen

   
   
   

5. Simulation Results Analysis

   

Once the simulation is complete, the program displays a graph of the portfolio's cumulative return along with key performance indicators in text.

   
                               Permanent Portfolio simulation result graph and metrics        

▲ Permanent Portfolio simulation results

   
   

Looking at the graph, you can see that the Permanent Portfolio's return curve rises smoothly and consistently compared to a single asset like SPY (stocks). The key metrics shown in the text box are:

   
           
  • Final Return: 350.80%
  •        
  • Maximum Drawdown (MDD): -19.78%
  •        
  • Compound Annual Growth Rate (CAGR): 7.82%
  •    
   

The most notable point is the **Maximum Drawdown (MDD)**. While a 100% stock portfolio like SPY experienced sharp declines, the Permanent Portfolio maintained a relatively small loss and stable performance. This demonstrates that the **risk diversification effect**—the core of asset allocation—is proven by the simulation results. Furthermore, by clicking the 'Save as CSV' button, you can save the daily return data to an Excel file for additional analysis.

   
                      CSV file containing simulation results        

▲ Simulation results saved in an Excel file

   
   
   

6. Final Conclusion

   

The Permanent Portfolio simulation clearly shows how an asset allocation strategy manages risk and generates consistent returns. This program will be a great help to investors who want to quickly and objectively validate their investment ideas with real data. Use it to make smart investment decisions based on data and statistics, rather than relying on intuition alone.

   
       

The content of this blog is for reference only for investment decisions, and investment decisions should be made based on individual judgment and responsibility. Under no circumstances can the information in this blog be used as evidence of legal liability for investment outcomes.

   

댓글

이 블로그의 인기 게시물

스테그플레이션 뜻, 경제 위기 속 생존 전략: 원인, 영향, 대처법 완벽 분석

원/달러 환율 2025년 하반기 전망(1부): 환율 전망, 환율 상승 주요 원인 분

부동산 규제 강화: 627 대책이 내 집 마련에 미치는 영향