ผลตอบแทนรายปี

การวิเคราะห์พอร์ตโฟลิโอด้วย Python

Charlotte Werger

Data Scientist

การเปรียบเทียบผลตอบแทน

  1. ผลตอบแทนรายปี (Annual Return): ผลตอบแทนรวมในช่วงหนึ่งปีปฏิทิน

  2. ผลตอบแทนที่ปรับเป็นรายปี (Annualized Return): อัตราผลตอบแทน ต่อปีที่คำนวณจากช่วงเวลาใดก็ได้

  3. ผลตอบแทนเฉลี่ย (Average Return): ผลตอบแทนรวมในช่วงเวลายาว หารเฉลี่ยออกเป็นช่วงสั้น ๆ

  4. ผลตอบแทนสะสม (Cumulative/Compounding Return): ผลตอบแทนที่รวมผลของการนำดอกเบี้ย เงินปันผล และกำไรจากทุนกลับไปลงทุนใหม่

การวิเคราะห์พอร์ตโฟลิโอด้วย Python

ทำไมต้องปรับผลตอบแทนเป็นรายปี?

$$ ตารางผลตอบแทนของพอร์ตโฟลิโอ

$$

  • ผลตอบแทนเฉลี่ย = (100 - 50) / 2 = 25%
  • ผลตอบแทนจริง = 0% ดังนั้นผลตอบแทนเฉลี่ยจึงไม่ใช่ตัวชี้วัดที่ดี!
  • จะเปรียบเทียบพอร์ตโฟลิโอที่มีช่วงเวลาต่างกันได้อย่างไร?
  • จะคำนึงถึงผลของดอกเบี้ยทบต้นตามเวลาได้อย่างไร?
การวิเคราะห์พอร์ตโฟลิโอด้วย Python

การคำนวณผลตอบแทนที่ปรับเป็นรายปี

$$

  • N เป็นปี: $rate= (1 +Return)^{1/N} -1$

  • N เป็นเดือน: $rate= (1+Return)^{12/N} -1$

  • แปลงช่วงเวลาใดก็ได้เป็นอัตรารายปี:

  • Return คือผลตอบแทนรวมที่ต้องการปรับเป็นรายปี
  • N คือจำนวนงวดที่ผ่านมา
การวิเคราะห์พอร์ตโฟลิโอด้วย Python

ผลตอบแทนที่ปรับเป็นรายปีด้วย Python

# Check the start and end of timeseries
apple_price.head(1)
date
2015-01-06    105.05
Name: AAPL, dtype: float64
apple_price.tail(1)
date
2018-03-29    99.75
Name: AAPL, dtype: float64
# Assign the number of months
months = 38
การวิเคราะห์พอร์ตโฟลิโอด้วย Python

ผลตอบแทนที่ปรับเป็นรายปีด้วย Python

# Calculate the total return
total_return = (apple_price[-1] - apple_price[0]) / 
                apple_price[0]

print (total_return)
0.5397420653068692
การวิเคราะห์พอร์ตโฟลิโอด้วย Python

ผลตอบแทนที่ปรับเป็นรายปีด้วย Python

# Calculate the annualized returns over months
annualized_return=((1 + total_return)**(12/months))-1
print (annualized_return)
0.14602501482708763
# Select three year period
apple_price = apple_price.loc['2015-01-01':'2017-12-31']
apple_price.tail(3)
date
2017-12-27    170.60
2017-12-28    171.08
2017-12-29    169.23
Name: AAPL, dtype: float64
การวิเคราะห์พอร์ตโฟลิโอด้วย Python

ผลตอบแทนที่ปรับเป็นรายปีด้วย Python

# Calculate annualized return over 3 years
annualized_return = ((1 + total_return)**(1/3))-1

print (annualized_return)
0.1567672968419047
การวิเคราะห์พอร์ตโฟลิโอด้วย Python

มาฝึกกันเถอะ!

การวิเคราะห์พอร์ตโฟลิโอด้วย Python

Preparing Video For Download...