您好,登錄后才能下訂單哦!
小編給大家分享一下怎么利用Python分析一下最近的股票市場(chǎng),希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
數(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()
如下:
# 將每只股票的收盤列保存到新變量中 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()
如下:
# 接下來(lái),讓我們計(jì)算股票每日百分比變化并繪制它們以直觀地分析它們?cè)谶^(guò)去一個(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ì)算月化夏普比率 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");
如下:
根據(jù)以上結(jié)果,建議購(gòu)買黃金,其次為白銀,天然氣,俄羅斯銀行和石油不建議購(gòu)買。注意:以上分析數(shù)據(jù)為2022年1月1日到2022年2月5日分析圖。沒(méi)有寫預(yù)測(cè)部分,我覺(jué)得動(dòng)蕩太多,沒(méi)必要預(yù)測(cè)了,買穩(wěn)定的吧,預(yù)測(cè)已經(jīng)沒(méi)有意義。
看完了這篇文章,相信你對(duì)“怎么利用Python分析一下最近的股票市場(chǎng)”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。