利用Python分析一下最近的股票市場(chǎng)
一、數(shù)據(jù)獲取
數(shù)據(jù)獲取范圍為2022年一月一日到2022年2月25日,獲取的數(shù)據(jù)為俄羅斯黃金,白銀,石油,銀行,天然氣:
#?導(dǎo)入模塊 import?numpy?as?np import?pandas?as?pd import?yfinance?as?yf #?GC=F黃金,SI=F白銀,ROSN.ME俄羅斯石油,SBER.ME俄羅斯銀行,天然氣 tickerSymbols?=?['GC=F',?'SI=F',?'ROSN.ME',?'SBER.ME','NG=F'] #?獲取這些代碼的數(shù)據(jù) MSFT?=?yf.Ticker(tickerSymbols[0]) TSLA?=?yf.Ticker(tickerSymbols[1]) AAPL?=?yf.Ticker(tickerSymbols[2]) AMZN?=?yf.Ticker(tickerSymbols[3]) GOOG?=?yf.Ticker(tickerSymbols[4]) #?獲取代碼的歷史價(jià)格 MSFT_df?=?MSFT.history(period='1d',?start='2022-1-1',?end='2022-2-25') TSLA_df?=?TSLA.history(period='1d',?start='2022-1-1',?end='2022-1-25') AAPL_df?=?AAPL.history(period='1d',?start='2022-1-1',?end='2022-1-25') AMZN_df?=?AMZN.history(period='1d',?start='2022-1-1',?end='2022-1-25') GOOG_df?=?GOOG.history(period='1d',?start='2022-1-1',?end='2022-1-25') #?比如天然氣 GOOG_df.head()
如下:
二、合并數(shù)據(jù)
#?將每只股票的收盤列保存到新變量中 MSFT?=?MSFT_df['Close'] TSLA?=?TSLA_df['Close'] AAPL?=?AAPL_df['Close'] AMZN?=?AMZN_df['Close'] GOOG?=?GOOG_df['Close'] #?Concatenate?all?stocks?close?columns?into?one?data?frame stocks_df?=?pd.concat([MSFT,?TSLA,?AAPL,?AMZN,?GOOG],?axis='columns',?join='inner') #?Rename?the?data?frame?columns?with?their?corresponding?tickers?symbols stocks_df.columns?=?['gold',?'silver',?'oil',?'bank',?'gas'] #?Visualize?the?new?data?frame stocks_df.head()
如下:
三、繪制股票每日百分比變化
#?接下來,讓我們計(jì)算股票每日百分比變化并繪制它們以直觀地分析它們?cè)谶^去一個(gè)多月中的變化行為。 #?獲取每日百分比變化 stocks_df?=?stocks_df.pct_change().dropna() #?可視化新數(shù)據(jù)框 stocks_df.head() #?繪制每日百分比變化 stocks_df.plot(figsize=(20,?10),?title="Daily?Returns");
如下:
從圖也可以看出哪個(gè)變動(dòng)大,哪個(gè)穩(wěn)定)自己用眼睛看
四、箱線圖
上面的圖確實(shí)不好看,所以我們畫一個(gè)箱線圖更加直觀:
#?箱線圖 #?計(jì)算累積回報(bào) cumulative_returns?=?(1?+?stocks_df).cumprod() #?繪制累積回報(bào) cumulative_returns.plot(figsize=(20,?10),?title="Cumulative?Returns"); #?箱線圖直觀地顯示風(fēng)險(xiǎn) stocks_df.plot.box(figsize=(20,?10),?title="Portfolio?Risk");
累計(jì)回報(bào)圖:
箱線圖:
顯然是天然氣收益最高;盒子越寬,晶須越長(zhǎng),股票的波動(dòng)性就越大。石油最穩(wěn)定,天然氣波動(dòng)大了點(diǎn)
五、計(jì)算月化夏普比率
#計(jì)算月化夏普比率 sharpe_ratios?=?(stocks_df.mean()?*?30)?/?(stocks_df.std()?*?np.sqrt(30)) sharpe_ratios?=?sharpe_ratios.sort_values(ascending=False) sharpe_ratios
如下:
#將夏普比率可視化為條形圖 sharpe_ratios.plot(figsize=(20,?10),?kind="bar",?title="Sharpe?Ratios");
如下:
六、結(jié)論
根據(jù)以上結(jié)果,建議購(gòu)買黃金,其次為白銀,天然氣,俄羅斯銀行和石油不建議購(gòu)買。注意:以上分析數(shù)據(jù)為2022年1月1日到2022年2月5日分析圖。沒有寫預(yù)測(cè)部分,我覺得動(dòng)蕩太多,沒必要預(yù)測(cè)了,買穩(wěn)定的吧,預(yù)測(cè)已經(jīng)沒有意義。
以上就是利用Python分析一下最近的股票市場(chǎng)的詳細(xì)內(nèi)容,更多關(guān)于Python分析股票市場(chǎng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python3中替換python2中cmp函數(shù)的實(shí)現(xiàn)
這篇文章主要介紹了python3替換python2中cmp函數(shù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Python(PyS60)實(shí)現(xiàn)簡(jiǎn)單語音整點(diǎn)報(bào)時(shí)
這篇文章主要為大家詳細(xì)介紹了Python(PyS60)實(shí)現(xiàn)簡(jiǎn)單語音整點(diǎn)報(bào)時(shí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11Python應(yīng)用領(lǐng)域和就業(yè)形勢(shì)分析總結(jié)
在本篇文章總我們給大家整理了關(guān)于Python應(yīng)用領(lǐng)域和就業(yè)形勢(shì)分析以及圖文介紹,需要的朋友們可以參考下。2019-05-05python實(shí)現(xiàn)跨年表白神器--你值得擁有
這篇文章主要介紹了python實(shí)現(xiàn)跨年表白神器的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-01-01Python爬取網(wǎng)站圖片并保存的實(shí)現(xiàn)示例
這篇文章主要介紹了Python爬取網(wǎng)站圖片并保存的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02對(duì)python For 循環(huán)的三種遍歷方式解析
今天小編就為大家分享一篇對(duì)python For 循環(huán)的三種遍歷方式解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-02-02Python3爬蟲里關(guān)于代理的設(shè)置總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于Python3爬蟲里關(guān)于代理的設(shè)置總結(jié),需要的朋友們可以參考下。2020-07-07利用Python實(shí)現(xiàn)讀取Word表格計(jì)算匯總并寫入Excel
這篇文章主要給大家介紹了關(guān)于如何利用Python實(shí)現(xiàn)讀取Word表格計(jì)算匯總并寫入Excel的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-01-01