Backtest พร้อมการปรับสมดุลเป็นระยะ
ในขั้นตอนนี้ เราจะรัน backtest โดยใช้ข้อกำหนดพอร์ตโฟลิโอที่สร้างไว้ในแบบฝึกหัดก่อนหน้า พร้อมกำหนดให้ปรับสมดุลทุกไตรมาส เพื่อประเมินประสิทธิภาพแบบ out-of-sample พารามิเตอร์อื่นที่ต้องกำหนดสำหรับ backtest ได้แก่ ช่วงฝึกฝน (training period) และขนาดหน้าต่างแบบเลื่อน (rolling window) โดย training period กำหนดจำนวนจุดข้อมูลที่ใช้สำหรับการ optimization รอบแรก ส่วน rolling window กำหนดจำนวนงวดที่ใช้ในแต่ละช่วง โจทย์นี้สามารถแก้ได้ด้วย quadratic programming solver จึงใช้ "ROI" เป็นวิธีการ optimization
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์พอร์ตโฟลิโอระดับกลางใน R
คำแนะนำการฝึกหัด
- รัน optimization โดยกำหนดให้ปรับสมดุลทุกไตรมาส ตั้งค่า training period และ rolling window ให้ใช้ข้อมูล 5 ปี แล้วกำหนดผลลัพธ์ให้กับตัวแปรชื่อ
opt_rebal_base - แสดงผลลัพธ์ของการ optimization
- สร้างกราฟแสดงค่าน้ำหนัก
- คำนวณผลตอบแทนของพอร์ตโฟลิโอโดยใช้
Return.portfolioแล้วกำหนดผลตอบแทนให้กับตัวแปรชื่อreturns_base
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Run the optimization
opt_rebal_base <- optimize.portfolio.rebalancing(R = ___,
portfolio = ___,
optimize_method = "ROI",
rebalance_on = ___,
training_period = ___,
rolling_window = ___)
# Print the results
# Chart the weights
# Compute the portfolio returns
returns_base <- Return.portfolio(R = ___, weights = ___)
colnames(returns_base) <- "base"