如何使用python創建股票的時間序列可視化分析?
簡單介紹

在分析股票或任何其他投資貨幣工具時,時間序列分析是觀察變量如何隨時間變化的有效方法。這種類型的分析通常需要大量的數據點來確保一致性和可靠性。時間序列分析對于分析股票價格非常有效,尤其是對于自動交易。本篇文章,主要是為初學者做一個簡單介紹與使用。
數據獲取
我們收集雅虎財經的數據,直接使用python的庫,安裝如下:
!pip install yfinance !pip install plotly !pip install paddlefsl
1
2
3
安裝好后,我們來獲取亞馬遜的股票,當然你也可以獲取別的公司股票:
import pandas as pd import yfinance as yf import datetime from datetime import date, timedelta today = date.today() d1 = today.strftime("%Y-%m-%d") end_date = d1 d2 = date.today() - timedelta(days=720) d2 = d2.strftime("%Y-%m-%d") start_date = d2 data = yf.download('AMZN', start=start_date, end=end_date, progress=False) print(data.head()) # data
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
如下:
繪制可視化線圖
顯示了變量價格隨時間的變化,下圖是亞馬遜的收盤價,將光標放在數據點的確切日期上可以查看收盤價。
import plotly.express as px figure = px.line(data, x = data.index, y = "Close", title = "Time Series Analysis (Line Plot)") figure.show()
1
2
3
4
5
如下:
繪制蠟太圖
燭臺圖在時間序列分析中非常有用,因為它以醒目的方式呈現開盤價、最高價、最低價和收盤價。紅線表示價格下跌,綠線表示價格上漲
import plotly.graph_objects as go figure = go.Figure(data=[go.Candlestick(x = data.index, open = data["Open"], high = data["High"], low = data["Low"], close = data["Close"])]) figure.update_layout(title = "時間序列蠟臺圖", xaxis_rangeslider_visible = False) figure.show()
1
2
3
4
5
6
7
8
9
如下:
條形圖
上面兩個圖主要是便于觀察上漲下跌,條形圖更加比較適合觀察長期上漲下跌
figure = px.bar(data, x = data.index, y = "Close", title = "時間學列分析" ) figure.show()
1
2
3
4
如下:
分析特定時間段
分析兩個特定日期之間的股票價格,可以如下實現:
figure = px.line(data, x = data.index, y = 'Close', range_x = ['2021-01-31','2021-07-31'], title = "時間序列分析") figure.show()
1
2
3
4
5
如下:
交互式可視化
代碼如下:
figure = go.Figure(data = [go.Candlestick(x = data.index, open = data["Open"], high = data["High"], low = data["Low"], close = data["Close"])]) figure.update_layout(title = "時間序列分析(帶有按鈕和滑塊的燭臺圖)") figure.update_xaxes( rangeslider_visible = True, rangeselector = dict( buttons = list([ dict(count = 1, label = "1m", step = "month", stepmode = "backward"), dict(count = 6, label = "6m", step = "month", stepmode = "backward"), dict(count = 1, label = "YTD", step = "year", stepmode = "todate"), dict(count = 1, label = "1y", step = "year", stepmode = "backward"), dict(step = "all") ]) ) ) figure.show()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
可以點擊按鈕,根據自己需要選擇時間范圍:
去試試吧,先介紹到這里了,補充一下,獲取雅虎數據,可能要開梯子,不讓你獲取會失敗。
Python
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。