溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么利用Python分析一下最近的股票市場(chǎng)

發(fā)布時(shí)間:2022-02-28 09:19:55 來(lái)源:億速云 閱讀:124 作者:小新 欄目:開(kāi)發(fā)技術(shù)

小編給大家分享一下怎么利用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()

如下:

怎么利用Python分析一下最近的股票市場(chǎng)

二、合并數(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()

如下:

怎么利用Python分析一下最近的股票市場(chǎng)

三、繪制股票每日百分比變化

# 接下來(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");

如下:

怎么利用Python分析一下最近的股票市場(chǎng)

從圖也可以看出哪個(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)圖:

怎么利用Python分析一下最近的股票市場(chǎng)

箱線圖:

怎么利用Python分析一下最近的股票市場(chǎng)

顯然是天然氣收益最高;盒子越寬,晶須越長(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

如下:

怎么利用Python分析一下最近的股票市場(chǎng)

#將夏普比率可視化為條形圖
sharpe_ratios.plot(figsize=(20, 10), kind="bar", title="Sharpe Ratios");

如下:

怎么利用Python分析一下最近的股票市場(chǎng)

六、結(jié)論

根據(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è)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI