Skip to content

CharaZhu/Dynamic_Asset_Allocation

Repository files navigation

Dynamic Asset Allocation Project

Implement financial optimization algorithm using CPLEX and IPOPT. Re-balance portfolio according to an investment strategy at the first trading day of each 2-month holding period (up to 12 re-balances for 2 years): given a current portfolio, the market prices on that day, and the estimates of the mean and covariance of the daily returns. These estimates are based on the previous two-month data and are updated every second month. Need to take into account the effect of trading costs.

  1. "Buy and hold"
  2. "Equally weighted" (also known as ) portfolio
  3. "Minimum variance" portfolio
  4. "Maximum Sharpe ratio" portfolio
  5. "Equal risk contributions" portfolio
  6. "Leveraged equal risk contributions" portfolio
  7. "Robust mean-variance optimization" portfolio

Data Files

Daily_closing_prices.csv: daily closing prices (quoted in US dollars) of 20 stocks from 2019 to 2020

Daily_closing_prices20082009.csv: daily closing prices (quoted in US dollars) of 20 stocks from 2008 to 2009

Python Implementations: Main.ipynb

  • Implement financial optimization algorithm using CPLEX and IPOTO
  • Re-balance portfoli according to an investment strategy
  • Design rounding procedure (round the number of shares traded to integer values)
  • Design validation procedure (Verify cash account are non-negative, have enough budget to re-balance portfolio)
  • Result Visualization & Analysis

Report:

Summarize the key stepes in IPython Notebook, present the results of analysis.

Background

20 Stocks: MSFT, F, JPM, GOOG, HPQ, C, HOG, VZ, AAPL, IBM, T, CSCO, BAC, INTC, AMD, SNE, NVDA, AMZN, MS, BK

Each transaction has a cost composed of a variable portion only. The variable fee is due to the difference between the selling and bidding price of a stock, and is 0.5% of the traded volume.

The initial portfolio: IBM = 980 shares, BK = 20000 shares.

The value of the initial portfolio is about one million dollars. The initial cash account is zero USD. The cash account must be nonnegative at all times. If the value of your portfolio after re-balancing plus the transaction fees are smaller than the portfolio value before re-balancing, the remaining funds are accumulated in the cash account. Cash account does not pay any interest, but cash funds should be used toward stock purchases when portfolio is re-balanced next time.

Note that for buying and selling asset shares, you need to optimize over asset weights. Current weight of asset i in a portfolio is , where V is the current portfolio value, is current price of asset i and is the number of units (shares) of asset i in your portfolio.

About

Portfolio Optimization (CPLEX & IPOPT), Rebalancing

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published