什麼是收益波動率?
收益波動率是衡量金融資産收益的波動程度,反映金融資産的風險水平。
波動率越高,說明金融資産的收益波動越劇烈,其收益率的不确定越強。
舉個例子,有A和B兩隻基金,A和B的年化收益率都是10%,但是A的波動率是0.1,B的波動率是0.2。這就意味着,B在這個期間收益不穩定性更高,如果你在這期間的某幾個時間點買入賣出,收益存在更大的不确定性。因此,在相同年化收益率的情況下,一般都去選擇A,也就是波動率更小的基金産品。
怎麼計算年化收益波動率?
具體計算方法為股票或基金每日收益的年化标準差
利用Python計算某隻基金的年化收益波動率
1、讀取數據
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 繪圖設置
%matplotlib inline
%config InlineBackend.figure_format = 'retina'
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
plt.style.use('fivethirtyeight’)
# 讀取數據
df = pd.read_csv('data/000001.csv')
df.head()
2、計算每日收益率
我們使用Pandas庫中的pct_change函數,針對時間序列的金融數據十分方便地計算出日收益率。這裡要注意pct_change函數的參數-1,用來控制函數計算順序,表示第n行與第n 1行的差異率。
如果數據是按照時間從前往後重新排序,pct_change函數的參數需要設置為1,或者不傳參,默認是1。
# 計算每日收益率
df['RETURNS'] = df['DWJZ'].pct_change(-1)
df.head()
3、計算年化波動率
波動率是針對某一個時間段來說的,我們這裡選擇100天,也就是說針對第N天,往前推100天,取這段時間的日收益率計算它的标準差,就得到了波動率,之後再年化。
# 計算波動率,然後根據均方根法進行年化
df['DEVIATION'] = df.sort_values(by='FSRQ')['RETURNS'].rolling(window=100).std() * np.sqrt(252)
df.head()
4、最後,我們畫圖更直觀地展示這隻基金的波動率
# 畫圖觀察基金單位淨值的變化趨勢
df.plot(x='FSRQ', y='DEVIATION', title='基金波動率變化趨勢', label='波動率')
plt.xlabel("時間")
plt.ylabel("波動率")
plt.show()
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!