-
Provide input into the Excel file input.xlsx
-
Run the program:
# Format python3 PortfolioBuilder.py [path to input file] [--time] # Example python3 PortfolioBuilder.py .\input\input.xlsx --time
Optional Flags:
- '--time': Displays the time tracking report
This video should help you understand how this program works. It explains the basics of modern portfolio theory.
This Python program helps you construct an optimal investment portfolio based on historical returns of different asset classes. It uses portfolio optimization techniques to maximize expected returns while minimizing "risk" (standard deviation of returns).
These drafts (will be improved eventually) can also help you understand:
-
TickerLootLlama:
Helps users gather historical returns using ticker symbols (with automated API calls through yfinance.)
-
TagHeuer:
Measures the performance of functions within the program. Gives users a rough idea of the time complexity as inputs get larger. To use it, simply run the program with the flag: --time
This project is under development
All images shown on this page are drafts and will be replaced with better ones soon.
TODO:
- Show % as $ for composition implementation
- Let users highlight any portfolio on the curve (from input)
- Extend Capital Allocation Line beyond 100% into optimal portfolio (for investors with leverage)
- Output a PDF report
- Provide better, more complete explanations of the theory on this page
- Given a desired standard deviation, show users the required percentage of their holdings must be composed of:
- The optimal portfolio
- Risk free assets (AAA government bonds)
- Implement the option to use target downside deviation to measure risk
- Show historical returns distribution (skewness graph)