無代碼開發(fā)平臺(tái)(國內(nèi)無代碼開發(fā)平臺(tái)推薦)">國內(nèi)無代碼開發(fā)平臺(tái)(國內(nèi)無代碼開發(fā)平臺(tái)推薦)
586
2022-05-29
一、數(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()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
如下:
二、合并數(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()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
如下:
三、繪制股票每日百分比變化
# 接下來,讓我們計(jì)算股票每日百分比變化并繪制它們以直觀地分析它們?cè)谶^去一個(gè)多月中的變化行為。 # 獲取每日百分比變化 stocks_df = stocks_df.pct_change().dropna() # 可視化新數(shù)據(jù)框 stocks_df.head() # 繪制每日百分比變化 stocks_df.plot(figsize=(20, 10), title="Daily Returns");
1
2
3
4
5
6
7
8
9
如下:
從圖也可以看出哪個(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");
1
2
3
4
5
6
7
8
9
10
累計(jì)回報(bào)圖:
箱線圖:
顯然是天然氣收益最高;盒子越寬,晶須越長,股票的波動(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
1
2
3
4
如下:
#將夏普比率可視化為條形圖 sharpe_ratios.plot(figsize=(20, 10), kind="bar", title="Sharpe Ratios");
1
2
如下:
六、結(jié)論
根據(jù)以上結(jié)果,建議購買黃金,其次為白銀,天然氣,俄羅斯銀行和石油不建議購買。注意:以上分析數(shù)據(jù)為2022年1月1日到2022年2月5日分析圖。歡迎你加qun:428335755 跟我一起交流,不保證盈利,僅供參考學(xué)習(xí)。
完整文件:Github
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。