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

เพิ่ม Objective

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

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

  • return: objective ประเภทนี้มุ่งเพิ่มค่า objective ให้สูงสุด
  • risk: objective ประเภทนี้มุ่งลดค่า objective ให้ต่ำสุด
  • risk_budget: objective ประเภทนี้มุ่งลดการกระจุกตัวของความเสี่ยง หรือกำหนดบทลงโทษสำหรับการมีส่วนร่วมต่อความเสี่ยงที่เกินขีดสูงสุดหรือต่ำกว่าขีดต่ำสุดที่อนุญาต

นอกจากประเภท objective ที่กล่าวมาแล้ว PortfolioAnalytics ยังรองรับ objective แบบ quadratic utility และ weight concentration อีกด้วย หากสนใจประเภท constraint อื่น ๆ สามารถดูรายละเอียดได้ในไฟล์ help ของ constraint constructors ซึ่งอธิบายประเภท constraint พร้อมตัวอย่างโค้ดประกอบ

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

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

ดูคอร์ส

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

  • เพิ่ม return objective ลงใน portfolio specification object port_spec ที่สร้างไว้ในแบบฝึกหัดก่อนหน้า
  • เพิ่ม risk objective เพื่อลด standard deviation ของพอร์ตโฟลิโอให้น้อยที่สุดใน port_spec
  • เพิ่ม risk budget objective โดยกำหนดความเสี่ยงเป็น component standard deviation ใน port_spec ตั้งค่าเปอร์เซ็นต์ความเสี่ยงขั้นต่ำที่ 5% และสูงสุดที่ 10%
  • แสดงผลลัพธ์ของ object port_spec

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

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

# Add a return objective to maximize mean return
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)

# Add a risk objective to minimize portfolio standard deviation
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)

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

# Print the portfolio specification object

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