首頁 > 軟體

利用Python分析一下最近的股票市場

2022-02-26 13:00:43

一、資料獲取

資料獲取範圍為2022年一月一日到2022年2月25日,獲取的資料為俄羅斯黃金,白銀,石油,銀行,天然氣:

# 匯入模組
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']

# 獲取這些程式碼的資料
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])

# 獲取程式碼的歷史價格
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()

如下:

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

# 接下來,讓我們計算股票每日百分比變化並繪製它們以直觀地分析它們在過去一個多月中的變化行為。
# 獲取每日百分比變化
stocks_df = stocks_df.pct_change().dropna()

# 視覺化新資料框
stocks_df.head()

# 繪製每日百分比變化
stocks_df.plot(figsize=(20, 10), title="Daily Returns");

如下:

從圖也可以看出哪個變動大,哪個穩定)自己用眼睛看

四、箱線圖

上面的圖確實不好看,所以我們畫一個箱線圖更加直觀:

# 箱線圖
# 計算累積回報
cumulative_returns = (1 + stocks_df).cumprod()

# 繪製累積回報
cumulative_returns.plot(figsize=(20, 10), title="Cumulative Returns");

# 箱線圖直觀地顯示風險
stocks_df.plot.box(figsize=(20, 10), title="Portfolio Risk");

累計回報圖:

箱線圖:

顯然是天然氣收益最高;盒子越寬,晶須越長,股票的波動性就越大。石油最穩定,天然氣波動大了點

五、計算月化夏普比率

#計算月化夏普比率
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");

如下:

六、結論

根據以上結果,建議購買黃金,其次為白銀,天然氣,俄羅斯銀行和石油不建議購買。注意:以上分析資料為2022年1月1日到2022年2月5日分析圖。沒有寫預測部分,我覺得動盪太多,沒必要預測了,買穩定的吧,預測已經沒有意義。

以上就是利用Python分析一下最近的股票市場的詳細內容,更多關於Python分析股票市場的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com