รวม DataFrame ของหุ้นและคำนวณผลตอบแทน
ขั้นตอนแรกในการคำนวณพอร์ตโฟลิโอตามทฤษฎีพอร์ตโฟลิโอสมัยใหม่ (MPT) คือการหาผลตอบแทนรายวันและรายเดือน เป้าหมายของเราคือค้นหาพอร์ตโฟลิโอที่ดีที่สุดในแต่ละเดือนโดยอิงจาก Sharpe ratio วิธีที่สะดวกที่สุดคือนำราคาหุ้นทั้งหมดมารวมไว้ใน DataFrame เดียว แล้วจึง resample ให้อยู่ในกรอบเวลารายวันและรายเดือน เราต้องการการเปลี่ยนแปลงราคารายวันเพื่อคำนวณความผันผวน ซึ่งจะใช้เป็นตัวชี้วัดความเสี่ยง
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning สำหรับการเงินด้วย Python
คำแนะนำการฝึกหัด
- รวม
lng_df,spy_dfและsmlv_dfเข้าด้วยกันโดยใช้pd.concat()แล้วเก็บผลลัพธ์ไว้ใน DataFrame ชื่อfull_df - Resample
full_dfให้อยู่ในความถี่ Business Month Start ('BMS') - คำนวณอัตราการเปลี่ยนแปลงรายวันของ
full_dfด้วย.pct_change()
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Join 3 stock dataframes together
full_df = pd.concat(____, axis=1).dropna()
# Resample the full dataframe to monthly timeframe
monthly_df = full_df.resample(____).first()
# Calculate daily returns of stocks
returns_daily = ____
# Calculate monthly returns of the stocks
returns_monthly = monthly_df.pct_change().dropna()
print(returns_monthly.tail())