開始使用免費開始

歷史回檔

股市長期而言傾向上漲,但這並不代表你不會經歷一段段的回檔(drawdown)

回檔可量化為自歷史累積報酬高點起算的百分比跌幅。

在 Python 中,你可以用 .accumulate().maximum() 來計算滾動最大值,並用下列簡單公式計算回檔:

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

  • $r_t$:時間 t 的累積報酬
  • $RM$:滾動最大值

追蹤油價的 ETF——USO——其累積報酬已存於變數 cum_rets

本練習屬於課程

Python 投資組合風險管理入門

檢視課程

練習說明

  • 使用 np.maximum.accumulate() 計算 USO 石油 ETF(cum_rets)的累積報酬之滾動最大值。
  • 當滾動最大值(running_max)低於 1 時,將其設為 1。
  • 使用上方的簡單公式,搭配 cum_retsrunning_max 計算 drawdown
  • 檢視圖表。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# 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()
編輯並執行程式碼