官术网_书友最值得收藏!

1.2 收益

所有金融投資都是為了獲得利潤,即收益(Return),又稱回報。更嚴謹地說,收益是指在一段時期內投資所獲得的利潤。

風險和收益之間存在這樣一種權衡:假設的風險越高,實現的收益就越大。由于在這方面很難得出最佳解決方案,所以這種權衡是金融學中最具爭議的問題之一。然而,Markowitz(1952)對這個問題提出了一個直觀的、令人興奮的解決方案。他定義風險的方式精致、清晰,從而改變了金融研究的格局,因為在此之前對風險的定義是模糊不清的。Markowitz用標準差來量化風險。這個直觀的定義使研究人員能夠在金融領域中運用數學和統計學。該標準差定義如下(Hull,2012):

其中,R分別指的是年收益率和預期收益(又稱期望收益)。本書將在多處使用符號來表示預期收益。涉及投資組合方差時,引入協方差,公式變為:

其中,w表示權重,表示方差,Cov表示協方差。

取得方差平方根后,得到投資組合標準差為:

換句話說,投資組合預期收益是個體收益的加權平均值,表示為:

接下來,將通過可視化來探索風險和收益的關系。我們將使用Python構建一個假定的投資組合以計算必要的統計值:

In [1]: import statsmodels.api as sm
        import numpy as np         
        import plotly.graph_objs as go
        import matplotlib.pyplot as plt
        import plotly         
        import warnings         
        warnings.filterwarnings('ignore')
 
In [2]: n_assets = 5?
        n_simulation = 500 ?
 
In [3]: returns = np.random.randn(n_assets, n_simulation) ?
 
In [4]: rand = np.random.rand(n_assets) ?
        weights = rand/sum(rand) ?
 
        def port_return(returns):
            rets = np.mean(returns, axis=1)
            cov = np.cov(rets.T, aweights=weights, ddof=1)
            portfolio_returns = np.dot(weights, rets.T)
            portfolio_std_dev = np.sqrt(np.dot(weights, np.dot(cov, weights)))
            return portfolio_returns, portfolio_std_dev ?
 
In [5]: portfolio_returns, portfolio_std_dev = port_return(returns) ?
 
In [6]: print(portfolio_returns)
        print(portfolio_std_dev) ?
 
        0.012968706503879782
        0.023769932556585847
 
In [7]: portfolio = np.array([port_return(np.random.randn(n_assets, i))
                              for i in range(1, 101)]) ?
 
In [8]: best_fit = sm.OLS(portfolio[:, 1], sm.add_constant(portfolio[:, 0]))\
                   .fit().fittedvalues ?
 
In [9]: fig = go.Figure()
        fig.add_trace(go.Scatter(name='Risk-Return Relationship',
                                 x=portfolio[:, 0],
                                 y=portfolio[:, 1], mode='markers'))
        fig.add_trace(go.Scatter(name='Best Fit Line',
                                 x=portfolio[:, 0],
                                 y=best_fit, mode='lines'))
        fig.update_layout(xaxis_title = 'Return', 
                          yaxis_title = 'Standard Deviation',
                          width=900, height=470)
        fig.show() ?

? 指定資產數量。

? 指定模擬次數。

? 隨機生成正態分布樣本用作收益。

? 生成隨機數并用于計算權重。

? 計算權重。

? 用于計算投資組合預期收益和標準差的函數。

? 調用函數的結果。

? 輸出投資組合預期收益和標準差的結果。

? 重新運行函數100次。

? 通過線性回歸繪制最佳擬合線。

? 繪制交互式圖表。

上述Python代碼所生成的圖表如圖1-1所示,證實了風險和收益是相關的,但這種相關性的具體大小取決于個股和金融市場狀況[2]


[2] 譯者注:代碼使用了隨機數,所以讀者運行代碼的結果可能與圖1-1不一致,但是原理是一樣的。

圖1-1 風險和收益的關系

主站蜘蛛池模板: 天长市| 肃南| 牙克石市| 塘沽区| 平和县| 建水县| 长汀县| 开阳县| 临城县| 陵水| 安康市| 司法| 镇平县| 鹿邑县| 平果县| 新乡县| 荣成市| 安化县| 清丰县| 淳化县| 陵水| 循化| 塘沽区| 集安市| 阿合奇县| 洪泽县| 增城市| 阳信县| 公安县| 罗城| 高陵县| 万源市| 鄢陵县| 临洮县| 康保县| 肥西县| 邓州市| 庄浪县| 礼泉县| 沁水县| 忻城县|