| weight_by_risk_parity | R Documentation |
Collection of risk-based weighting methods for portfolio construction. Each method allocates capital based on risk characteristics rather than market capitalization or equal weights.
weight_by_risk_parity(
selected_df,
prices_df,
method = c("inverse_vol", "equal_risk", "max_div"),
lookback_periods = 252,
min_periods = 60
)
selected_df |
Binary selection matrix (data.frame with Date column). |
prices_df |
Price data for risk calculations (typically daily). Returns are calculated internally from prices. |
method |
Optimization method for risk parity. |
lookback_periods |
Number of periods for risk estimation (default: 252). |
min_periods |
Minimum periods required (default: 60). |
Methods
inverse_volWeights proportional to 1 / volatility
(e.g., 1 / sd of returns over lookback_periods). Lower volatility
stocks receive higher weights.
equal_riskEqual Risk Contribution (ERC): finds weights so each position contributes equally to total portfolio risk (iterative optimization).
max_divMaximum Diversification: maximizes the ratio of weighted average volatility to portfolio volatility.
The function accepts price data and calculates returns internally, ensuring consistency with other library functions. Daily prices are recommended for accurate volatility estimation.
Weight matrix with the same dates as selected_df; each row sums to 1.
data("sample_prices_daily")
data("sample_prices_weekly")
momentum <- calc_momentum(sample_prices_weekly, lookback = 12)
selected <- filter_top_n(momentum, n = 10)
weight_by_risk_parity(selected, sample_prices_daily, method = "inverse_vol")
weight_by_risk_parity(selected, sample_prices_daily, method = "equal_risk")
weight_by_risk_parity(selected, sample_prices_daily, method = "max_div")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.