-
Notifications
You must be signed in to change notification settings - Fork 0
/
[YFinance] Daily Stock Price Dashboard.py
91 lines (78 loc) · 2.24 KB
/
[YFinance] Daily Stock Price Dashboard.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
from datetime import datetime
import pandas as pd
import plotly.graph_objects as go
import yfinance as yf
import schedule
# Get the last 365 days of Microsoft and Apple stock at a 1 day frequency
msft = yf.Ticker("MSFT")
aapl = yf.Ticker("AAPL")
end_date = pd.Timestamp.today()
start_date = end_date - pd.Timedelta(365,'D')
data = msft.history(start=start_date,end=end_date, interval='1d').reset_index()
# Plot as a line chart
fig = go.Figure(data=go.Scatter(
x=data.Date,
y=data.Close,
mode='lines'
))
fig.update_layout(
title='Microsoft / Apple (MSFT / AAPL)',
title_x=0.5,
autosize=False,
width=800,
height=500,
xaxis= dict(rangeselector=dict(
buttons=list([
dict(count=30,
label="30D",
step="day",
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")
])
)),
)
fig.show()
## Candlestick Chart
end_date = pd.Timestamp.today(tz='America/New_York').ceil('D')
start_date = end_date - pd.Timedelta(7,'D') # Get the last 4 days, in case of holidays/weekend
crm = yf.Ticker("MSFT")
data = crm.history(start=start_date,end=end_date, interval='1m').reset_index()
data = data.rename(columns=dict(Datetime='Date'))
data = data.loc[data.Date.dt.date == data.Date.dt.date.max()] # Get only the last day's data
fig = go.Figure(data=go.Candlestick(
x = data.Date,
open = data.Open,
high = data.High,
low = data.Low,
close = data.Close
))
fig.update_layout(
title='Microsoft (MSFT)',
title_x=0.5,
autosize=False,
width=800,
height=600,
xaxis= dict(rangeselector=dict(
buttons=list([
dict(count=1,
label="1H",
step="hour",
stepmode="backward"),
dict(label='1D',step="all"),
])
)),
)
fig.update_layout(
)
fig.show()