日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python价值算法_第十课-Python金融学基础——夏普比率(Sharpe-ratio)和资产组合价值(portfolio-value)...

發(fā)布時(shí)間:2024/1/8 python 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python价值算法_第十课-Python金融学基础——夏普比率(Sharpe-ratio)和资产组合价值(portfolio-value)... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前面的課程主要是在研究Pandas的時(shí)序分析實(shí)現(xiàn),以及利用statsmodel對時(shí)序數(shù)據(jù)進(jìn)行ARIMA以及有權(quán)重的ARIMA模型的建模,并嘗試預(yù)測未來的走向。從這節(jié)課開始,我們正式進(jìn)入Python金融學(xué)基礎(chǔ),會介紹一些金融學(xué)的概念和實(shí)現(xiàn)方法。

本節(jié)課主要以蘋果、亞馬遜、IBM、思科以及沃爾瑪?shù)墓善笔袌鰞r(jià)格為原始數(shù)據(jù),分析這幾只股票的資產(chǎn)組合的計(jì)算方式和夏普比率的計(jì)算,其中會涉及到日收益率、累積收益率的計(jì)算等等。

本文主要流程:

一、基本概念

1.1 資產(chǎn)組合

我們的資產(chǎn)往往不是單一的,我們會同時(shí)購買好幾支股票或者基金,這樣總資產(chǎn)的收益其實(shí)是每個(gè)資產(chǎn)的按照比例的權(quán)重加和結(jié)果,并且如果購買的資產(chǎn)之間具有對沖,我們還能夠利用這點(diǎn)來降低風(fēng)險(xiǎn),減少總資產(chǎn)損失的不確定性。比如王婆一個(gè)兒子賣傘和一個(gè)兒子賣鞋的故事就是這樣,只要天放晴,賣鞋兒子生意好,但是傘賣不出去;同理,天下雨的時(shí)候賣傘的兒子生意好,鞋子賣不出去。其實(shí)天氣就是波動,或說在這里就是風(fēng)險(xiǎn),但是王婆家兩個(gè)兒子賣的東西其實(shí)有對沖的作用,也就是不管是天晴天陰,家里都會有生意,因此就降低了風(fēng)險(xiǎn)可能帶來的損失。這就是一個(gè)資產(chǎn)組合。

1.2 夏普比率

夏普指數(shù)是一個(gè)用于計(jì)算根據(jù)風(fēng)險(xiǎn)調(diào)整過的回報(bào)率的測量指標(biāo),說白了,就是說我們只要做投資,就肯定會有風(fēng)險(xiǎn),但在相同的回報(bào)率下,風(fēng)險(xiǎn)有可能不一樣,正常人在這個(gè)時(shí)候肯定都會選擇風(fēng)險(xiǎn)小的,那么我們需要一個(gè)指標(biāo)來評判在相同單位風(fēng)險(xiǎn)上,哪個(gè)收益大?或者說在收益相同的情況下,哪些風(fēng)險(xiǎn)不必要冒?所以夏普比率相當(dāng)于是用風(fēng)險(xiǎn)把收益率給平均化了,放到太陽底下去看看每份相同的風(fēng)險(xiǎn)下收益率的大小是多少。

計(jì)算公式如下:

Sharpe Ratio=(Mean of portfolio return – Risk-free return) / standard deviation of portfolio return

這個(gè)公式Mean of portfolio return就是投資組合的收益率的平均值,risk-free return就是當(dāng)?shù)貨]有風(fēng)險(xiǎn)的回報(bào)率,也就是放在銀行當(dāng)中的回報(bào)率,比如美國的銀行利率就接近于0,standard deviation of portfolio return就是投資組合的收益率的標(biāo)準(zhǔn)偏差。

以上是原始的夏普比率的計(jì)算方法,實(shí)際上對于固定時(shí)間內(nèi)的夏普比率還得乘上一個(gè)k值。

對于不同采樣頻率的k值情況:

– Daily=sqrt(252)(最小粒度是按天計(jì))

– Weekly=sqrt(52)(最小粒度是按星期計(jì))

– Monthly=sqrt(12)(最小粒度是按月計(jì))

年利率和日利率的轉(zhuǎn)換:

二、讀取數(shù)據(jù)

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

#%matplotlib inline

aapl=pd.read_csv('AAPL_CLOSE',index_col='Date',parse_dates=True)

cisco=pd.read_csv('CISCO_CLOSE',index_col='Date',parse_dates=True)

ibm=pd.read_csv('IBM_CLOSE',index_col='Date',parse_dates=True)

amzn=pd.read_csv('AMZN_CLOSE',index_col='Date',parse_dates=True)

2.1 歸一化收盤價(jià)格

也就是求每天的收盤價(jià)格相對于初始第一天的價(jià)格的百分率。

for stock in [aapl, cisco, ibm, amzn]:

stock['normalized_price']=stock['Adj. Close']/stock['Adj. Close'].iloc[0]

aapl.head()

2.2 資產(chǎn)分配

現(xiàn)在假定我們四種股票都買了,并且是按照一定的權(quán)重去買,現(xiàn)在我們需要計(jì)算一下每天的收益率總和。

– 30% in Apple

– 20% in Google/Alphabet

– 40% in Amazon

– 10% in IBM

做法是把每只股票的收益率乘以對應(yīng)的權(quán)重,把所有經(jīng)過權(quán)重相乘后的收益率之和加起來就是總的收益率。

for stock, weight in zip([aapl, cisco, ibm, amzn],[0.3, 0.2, 0.1, 0.4]):

stock['weighted daily return']=stock['normalized_price']*weight

aapl.head()

大概可以了,然后我們把對應(yīng)的經(jīng)過權(quán)重計(jì)算的歸一日回報(bào)率全部都整合到一張表當(dāng)中。

total_stock=pd.concat([aapl['weighted daily return'], cisco['weighted daily return'], ibm['weighted daily return'], amzn['weighted daily return']],axis=1)

total_stock.columns=['aapl', 'cisco', 'ibm', 'amzn']

total_stock.head()

2.2 投資

然后假設(shè)我們投資10000元,那么就在上面回報(bào)率的基礎(chǔ)上乘以10000。

total_invest=total_stock*10000

total_invest.head()

total_invest['Total Pos']=total_invest.sum(axis=1)

total_invest.head()

然后我們繪制下每天的總收益.

plt.style.use('ggplot')

total_invest['Total Pos'].plot(label='Total Pos')

plt.legend(loc='best')

plt.title('Total Portfolio Value')

我們繪制一下除了總資產(chǎn)以外的其他單只股票的收益情況

total_invest.drop('Total Pos',axis=1).plot(figsize=(8,4))

三、資產(chǎn)的統(tǒng)計(jì)學(xué)值

3.1 日回報(bào)率

total_invest['daily return']=total_invest['Total Pos'].pct_change(1)

total_invest['daily return'].head()

3.2 累積回報(bào)率

計(jì)算方法是最后一天與一開始第一天的變化百分比,相當(dāng)于是增加了多少百分比。

cumulative_return=total_invest['Total Pos'].iloc[-1]/total_invest['Total Pos'].iloc[0]-1

print cumulative_return

3.3 平均日回報(bào)率

也就是對日回報(bào)率做平均計(jì)算

total_invest['daily return'].mean()

3.4 日回報(bào)率的標(biāo)準(zhǔn)差

total_invest['daily return'].std()

total_invest['daily return'].plot(kind='kde')

四、夏普比率

接下來我們計(jì)算一下總資產(chǎn)的夏普比率,也就是拿總資產(chǎn)日回報(bào)率的均值除以日回報(bào)率的標(biāo)準(zhǔn)差。之后由于我們這里的粒度是以天算的,所以要乘以sqrt(252),252代表252天

SR=total_invest['daily return'].mean()/total_invest['daily return'].std()

SR

import numpy as np

ASR=np.sqrt(252)*SR

ASR

最后我們繪制一下各個(gè)股票的收盤價(jià)分布情況

for stock in [aapl, cisco, ibm, amzn]:

stock['Adj. Close'].pct_change(1).plot(kind='kde')

總結(jié)

以上是生活随笔為你收集整理的python价值算法_第十课-Python金融学基础——夏普比率(Sharpe-ratio)和资产组合价值(portfolio-value)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。