投資組合管理

給定個人持股的歷史數據,確定 R 中的投資組合風險回報?

  • December 30, 2012

目前,我們通過自己的 C# 程序計算投資組合風險和回報。歷史數據儲存在 SQL 數據庫中。我們想要計算風險和回報參數——給定一個投資組合(即不計算有效邊界)。這是我們不熟悉的 R 語法(與計算風險回報的理論相比)。

那麼,如何在 R 中計算投資組合風險回報呢?

Eric Zivots 最近的計算金融課程中有很多程式碼。

  1. http://spark-public.s3.amazonaws.com/compfinance/R%20code/portfolio.r
  2. http://spark-public.s3.amazonaws.com/compfinance/R%20code/testport.r
  3. http://spark-public.s3.amazonaws.com/compfinance/R%20code/rollingPortfolios.r

此外,您可以在他的課堂上搜尋一些幻燈片,他提供了很多範例:

http://spark-public.s3.amazonaws.com/compfinance/Lecture%20Notes/PortfolioTheoryMatrixPowerpoint.pdf

範常式式碼:

返回系列的標準差:

sd(x)  #where x = portfolio return series

滾動分析

rollapplyr(x,days,function) #rolling analysis given function

計算回報

require(PerformanceAnalytics)    #heaps of functions for portfolio analytics
require(TTR)     #package with indicator functions
ROC(x,days)      #given equity series, get log return
ROC(x,days,type="discrete") #given equity series, get discrete return series
findDrawdowns(R) #find drawdown for time series
Return.annualized(R,n)   #R = return series, N = number of periods in year

引用自:https://quant.stackexchange.com/questions/4867