เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

เพิ่ม Constraints

การเพิ่ม constraint ลงใน portfolio specification object ทำได้ด้วยฟังก์ชัน add.constraint() โดย constraint แต่ละรายการจะถูกเก็บไว้เป็น object แยกกันใน slot constraints ของ portfolio object วิธีนี้ทำให้ constraint มีความเป็นโมดูล สามารถเพิ่ม ลบ หรือแก้ไขได้อย่างยืดหยุ่น อาร์กิวเมนต์ที่จำเป็นสำหรับ add.constraint() ได้แก่ portfolio ที่ต้องการเพิ่ม constraint, ประเภท type ของ constraint และอาร์กิวเมนต์ที่มีชื่อซึ่งส่งผ่าน ... ไปยัง constructor ของ constraint นั้น

ประเภท constraint พื้นฐาน:

  • กำหนด constraint บนผลรวมของน้ำหนัก
    • weight_sum, weight, leverage
    • full_investment เป็นกรณีพิเศษที่กำหนด min_sum = max_sum = 1
    • dollar_neutral เป็นกรณีพิเศษที่กำหนด min_sum = max_sum = 0
  • กำหนด constraint สำหรับน้ำหนักของสินทรัพย์แต่ละรายการ
    • box
    • long_only เป็นกรณีพิเศษที่กำหนด min = 0 และ max = 1
  • กำหนด constraint สำหรับผลรวมน้ำหนักของสินทรัพย์ตามกลุ่ม (เซกเตอร์ ภูมิภาค ประเภทสินทรัพย์ ฯลฯ)
    • group
  • กำหนด constraint บน target mean return
    • return

ในแบบฝึกหัดนี้ จะได้เพิ่ม constraint ประเภทที่ใช้บ่อยที่สุดบางส่วน นอกจาก constraint พื้นฐานที่ระบุไว้ข้างต้น PortfolioAnalytics ยังรองรับ constraint ประเภท position limit, turnover, diversification, factor exposure และ leverage exposure ด้วย หากสนใจ constraint ประเภทอื่น สามารถดูรายละเอียดได้จากไฟล์ help ของ constraint constructor ซึ่งมีทั้งคำอธิบายและโค้ดตัวอย่าง

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การวิเคราะห์พอร์ตโฟลิโอระดับกลางใน R

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เพิ่ม constraint ประเภท weight_sum โดยกำหนดให้ผลรวมขั้นต่ำและขั้นสูงของน้ำหนักเท่ากับ 1
  • เพิ่ม constraint ประเภท box โดยให้สินทรัพย์ 5 รายการแรกมีน้ำหนักขั้นต่ำ 10% และสินทรัพย์ที่เหลือมีน้ำหนักขั้นต่ำ 5% ทั้งนี้ สินทรัพย์ทุกรายการมีน้ำหนักสูงสุดไม่เกิน 40%
  • เพิ่ม constraint ประเภท group โดยให้สินทรัพย์ลำดับที่ 1, 5, 7, 9, 10 และ 11 เป็นกลุ่มแรก และสินทรัพย์ลำดับที่ 2, 3, 4, 6, 8 และ 12 เป็นกลุ่มที่สอง กำหนดน้ำหนักขั้นต่ำ 40% และน้ำหนักสูงสุด 60% สำหรับแต่ละกลุ่ม

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Add the weight sum constraint
port_spec <- add.constraint(portfolio = ___, type = ___, min_sum = ___, max_sum = ___)

# Add the box constraint
port_spec <- add.constraint(portfolio = ___, type = ___, min = c(___), max = ___)

# Add the group constraint
port_spec <- add.constraint(portfolio = ___, type = ___, groups = list(c(___), c(___)), group_min = ___, group_max = ___)


# Print the portfolio specification object

แก้ไขและรันโค้ด