StockPredict / app.py
aino813's picture
Update app.py
9288e06
import pandas as pd
from prophet import Prophet
from pandas_datareader.stooq import StooqDailyReader
from datetime import datetime
#from fbprophet.plot import plot
from dateutil.relativedelta import relativedelta
import gradio as gr
#from dateutil.easter import easter
#from holidays import WEEKEND, HolidayBase
pd.options.plotting.backend = "plotly"
def get_forecast(stock):
end = datetime.today()
start = end -relativedelta(years=5)
df = StooqDailyReader(stock, start=start, end=end)
df_stock = df.read()['Close']
df = df_stock.reset_index().rename(columns={"Date":"ds","Close":"y"})
m = Prophet().fit(df)
future = m.make_future_dataframe(periods=360, freq='D')
fcst = m.predict(future)
fig1 = m.plot(fcst)
return fig1
with gr.Blocks() as demo:
gr.Markdown(
"""
日米インデックス株の予測をします。プルダウンから予測したいインデックスを選んでください。NKX:日経平均、TPX:トピックス、DJI:ダウ平均、NDQ:ナスダック、SPX:S&P500
""")
with gr.Row():
stock = gr.Dropdown( ["^NKX","^TPX",'^DJI',"^NDQ","^SPX"], label="Stock", value="^NKX")
plt = gr.Plot()
stock.change(get_forecast, [stock], plt, queue=False)
demo.load(get_forecast, [stock], plt, queue=False,title="Stock Predict")
demo.launch()