शुरू करेंमुफ़्त में शुरू करें

Constraints और Objectives को refine करें

यहाँ हमारा मानना है कि constraints और/या objectives को refine करने से परफॉर्मेंस बेहतर होगी। आइए एक risk budget objective जोड़ते हैं ताकि हर एसेट के लिए जोखिम में न्यूनतम और अधिकतम प्रतिशत योगदान तय किया जा सके। हम उसी पोर्टफोलियो स्पेसिफिकेशन पर आगे काम करेंगे जो आपने बनाया था। यह एक अधिक जटिल ऑप्टिमाइज़ेशन समस्या है और इसमें एक global solver की ज़रूरत पड़ेगी, इसलिए हम ऑप्टिमाइज़ेशन मेथड के रूप में random portfolios का उपयोग करेंगे.

यह अभ्यास पाठ्यक्रम का हिस्सा है

R में इंटरमीडिएट पोर्टफोलियो विश्लेषण

पाठ्यक्रम देखें

अभ्यास निर्देश

  • port_spec में risk_budget objective जोड़ें जहाँ जोखिम को standard deviation के रूप में परिभाषित किया गया है। न्यूनतम प्रतिशत जोखिम 5% और अधिकतम प्रतिशत जोखिम 10% सेट करें.
  • क्वार्टरली rebalancing के साथ ऑप्टिमाइज़ेशन चलाएँ। training period और rolling window को 5 वर्षों के डेटा पर सेट करें। परिणामों को opt_rebal_rb नाम के वैरिएबल में असाइन करें.
  • वेट्स का चार्ट बनाइए.
  • जोखिम में कंपोनेंट प्रतिशत योगदान का चार्ट बनाइए.
  • Return.portfolio() का उपयोग करके पोर्टफोलियो रिटर्न compute करें। रिटर्न को returns_rb नाम के वैरिएबल में असाइन करें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।


# Add a risk budge objective
port_spec <- add.objective(portfolio = ___, 
                           type = ___, 
                           name = ___, 
                           min_prisk = ___, 
                           max_prisk = ___)

# Run the optimization
opt_rebal_rb <- optimize.portfolio.rebalancing(R = ___, 
                                               portfolio = ___, 
                                               optimize_method = "random", rp = rp,
                                               trace = TRUE,
                                               rebalance_on = ___, 
                                               training_period = ___,
                                               rolling_window = ___)

# Chart the weights


# Chart the percentage contribution to risk
chart.RiskBudget(___, match.col = "StdDev", risk.type = ___)

# Compute the portfolio returns
returns_rb <- Return.portfolio(R = ___, weights = ___)
colnames(returns_rb) <- "risk_budget"
कोड संपादित करें और चलाएँ