利用Python分析一下最近的股票市場
一、數據獲取
數據獲取范圍為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分析股票市場的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- Python使用pyfinance包進行證券收益分析
- python使用matplotlib繪制圖片時x軸的刻度處理
- 一篇文章讓你快速掌握Pandas可視化圖表
- Python進階Matplotlib庫圖繪制
- ASP.NET使用SignalR2實現服務器廣播