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

Historical Drawdown

ตลาดหุ้นมีแนวโน้มปรับตัวสูงขึ้นในระยะยาว แต่นั่นไม่ได้หมายความว่าจะไม่มีช่วง drawdown เกิดขึ้น

Drawdown วัดได้จากเปอร์เซ็นต์การสูญเสียเทียบกับจุดสูงสุดสะสมในประวัติศาสตร์

ใน Python สามารถใช้ฟังก์ชัน .accumulate() และ .maximum() เพื่อคำนวณค่าสูงสุดสะสม (running maximum) และใช้สูตรด้านล่างเพื่อคำนวณ drawdown:

$$ \text{Drawdown} = \frac{r_t}{RM} - 1$$

  • \(r_t\): ผลตอบแทนสะสม ณ เวลา t
  • \(RM\): Running maximum

ผลตอบแทนสะสมของ USO ซึ่งเป็น ETF ที่ติดตามราคาน้ำมัน ถูกเก็บไว้ในตัวแปร cum_rets

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

Python เบื้องต้นสำหรับการบริหารความเสี่ยงพอร์ตการลงทุน

ดูคอร์ส

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

  • คำนวณ running maximum ของผลตอบแทนสะสมของ USO oil ETF (cum_rets) โดยใช้ np.maximum.accumulate()
  • ในกรณีที่ running maximum (running_max) ต่ำกว่า 1 ให้กำหนดค่า running maximum เท่ากับ 1
  • คำนวณ drawdown โดยใช้สูตรด้านบนร่วมกับ cum_rets และ running_max
  • ตรวจสอบกราฟที่แสดงผล

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

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

# Calculate the running maximum
running_max = ____(cum_rets)

# Ensure the value never drops below 1
running_max[____] = 1

# Calculate the percentage drawdown
drawdown = (____)/____ - 1

# Plot the results
drawdown.plot()
plt.show()
แก้ไขและรันโค้ด