資産のポートフォリオにポジションサイジング分析を適用する関数を作成しようとしていますが、R での基本的なコーディングに行き詰まっています。ポートフォリオの割合の割り当てを決定するための 1 つの資産の基本的なセットアップは簡単です。比:
資産の固定リスク % / 資産のボラティリティ
合計割り当て率が 100% を超えることはできないため、複数のアセットでは注意が必要です。これが私がこれまでに持っているものですが、ポートフォリオ全体のコンテキストで意味をなすようにコードを巧みに処理する方法がわかりません。助言がありますか?前もって感謝します!
# start by downloading 2 assets
library(tseries)
library(TTR)
library(quantmod)
library(PerformanceAnalytics)
symbols = c("SPY","AGG")
getSymbols(symbols, src='yahoo', from='2003-12-31')
spy <-Ad(SPY)
agg <-Ad(AGG)
# calculate daily % return and rolling 100-day volatility (std dev)
spy.ret <-na.omit(ROC(spy,1,"discrete"))
agg.ret <-na.omit(ROC(agg,1,"discrete"))
# calculate annualized volatility
spy.sd <-na.omit(rollapplyr(spy.ret,100,sd))*sqrt(252)
agg.sd <-na.omit(rollapplyr(agg.ret,100,sd))*sqrt(252)
# calculate position size (as %) for each asset with fixed 2% risk factor
# to determine fraction of the account size
spy.pos.size <-.02/spy.sd
agg.pos.size <-.02/agg.sd
# combine position size data and
# sum for aggregate portfolio allocation
spy.agg.pos.size <-cbind(spy.pos.size,agg.pos.size)
port.pos.size <-apply(spy.agg.pos.size,1,sum)
最大割り当て合計を確認します。% が 100% (つまり、1.0) を超えていることを示します。
> max(port.pos.size)
[1] 1.131178
各資産の個々のポジション サイズの計算で割り当ての推奨事項を維持しながら、合計割り当てを 100% 以下に維持する方法に関する推奨事項はありますか? 再度、感謝します!!!