投資報酬

Python 投資組合風險管理入門

Dakota Wixom

Quantitative Analyst | QuantCourse.com

課程概觀

學習分析投資報酬分配、建構投資組合並降低風險,找出驅動投資組合報酬的關鍵因子。

  • 單變量投資風險
  • 投資組合
  • 因子投資
  • 預測與降風險
Python 投資組合風險管理入門

投資風險

什麼是風險?

  • 金融市場的風險是對不確定性的衡量
  • 報酬的離散程度或變異

常見的風險衡量方式?

  • 日報酬的標準差或變異數
  • 日報酬分配的峰度
  • 日報酬分配的偏度
  • 歷史回撤
Python 投資組合風險管理入門

金融風險

報酬

機率

Python 投資組合風險管理入門

兩種報酬的比較

  • 報酬源自股價
  • 離散報酬(簡單報酬)最常用,表示定期(例如每日、每週、每月等)價格變動
  • 對數報酬常用於學術研究與財務建模,假設連續複利。

Python 投資組合風險管理入門

計算股票報酬

  • 離散報酬=本期價格變動占前一期價格的百分比

Python 投資組合風險管理入門

計算對數報酬

  • 對數報酬=兩個價格取對數後的差
  • 對數報酬會「隨時間可加總」,而離散報酬則「跨資產可加總」

 

$$ Rl = \ln(\frac{P_{t_2}}{P_{t_1}}) $$

或等價為

$$ Rl = \ln(P_{t_2}) - \ln(P_{t_1}) $$

Python 投資組合風險管理入門

用 Python 計算股票報酬

步驟 1:

載入股價資料,並存為以日期編排的 pandas DataFrame:

import pandas as pd 
StockPrices = pd.read_csv('StockData.csv', parse_dates=['Date'])
StockPrices = StockPrices.sort_values(by='Date')
StockPrices.set_index('Date', inplace=True)
Python 投資組合風險管理入門

用 Python 計算股票報酬

步驟 2:

計算調整收盤價的日報酬,並將報酬新增為 DataFrame 的一欄。

StockPrices["Returns"] = StockPrices["Adj Close"].pct_change()
StockPrices["Returns"].head()

Python 投資組合風險管理入門

視覺化報酬分配

import matplotlib.pyplot as plt
plt.hist(StockPrices["Returns"].dropna(), bins=75, density=False)
plt.show()

Python 投資組合風險管理入門

一起來練習吧!

Python 投資組合風險管理入門

Preparing Video For Download...