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

การ Optimization ด้วย Objective Function แบบกำหนดเอง

แบบฝึกหัดนี้ต่อเนื่องจากแบบฝึกหัดก่อนหน้า โดยจะรัน optimization ด้วย objective function แบบกำหนดเองที่คำนวณค่าส่วนเบี่ยงเบนมาตรฐานรายปีของพอร์ตโฟลิโอ เนื่องจาก objective function สามารถเป็นฟังก์ชัน R ที่ถูกต้องใดก็ได้ เราจึงเพิ่ม risk objective สำหรับฟังก์ชัน pasd() อย่างไรก็ตาม ฟังก์ชัน set.portfolio.moments() จะไม่รู้จักชื่อ objective pasd() ดังนั้นจึงต้องสร้าง moment function แบบกำหนดเองขึ้นมาเพื่อคำนวณ moment อันดับสอง ได้แก่ sigma และจะแก้ปัญหานี้โดยใช้ random portfolios เป็นวิธี optimization

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

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

ดูคอร์ส

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

  • เพิ่ม objective function แบบกำหนดเองที่สร้างไว้ในแบบฝึกหัดก่อนหน้าลงใน portfolio specification object
  • Print portfolio specification object เพื่อดู constraints และ objective
  • รัน optimization โดยชื่อของ moment function แบบกำหนดเองคือ set_sigma
  • Print ผลลัพธ์ของการ optimization

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

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


# Add custom objective to portfolio specification
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)

# Print the portfolio specificaton object


# Run the optimization
opt <- optimize.portfolio(R = ___, portfolio = ___, momentFUN = ___, optimize_method = "random", rp = rp)

# Print the results of the optimization

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