trader / app.py
toandaominh1997's picture
Add title and custom symbol
af6ca4b
raw
history blame
1.47 kB
import pandas as pd
import streamlit as st
import vnquant.data as dt
import seaborn as sns
import matplotlib.pyplot as plt
import plotly.express as px
import plotly.graph_objects as go
import statsmodels.api as sm
from statsmodels.tsa.arima.model import ARIMA
from prophet import Prophet
import pytz
st.title("Vietnam Trading by Prophet")
sb = st.text_input('Symbol', 'FPT')
periods = st.slider('period', 1, 365, 28)
start_date = str((datetime.now(pytz.timezone('Asia/Ho_Chi_Minh')) - timedelta(days=365)).strftime("%Y-%m-%d"))
end_date = str((datetime.now(pytz.timezone('Asia/Ho_Chi_Minh')) - timedelta(days=0)).strftime("%Y-%m-%d"))
loader = dt.DataLoader(symbol, start_date, end_date)
data = loader.download()
data.columns = [col[0] for col in data.columns]
m = Prophet()
pdf = pd.DataFrame()
pdf['ds'] = data.index
pdf['y'] = data.close.values
def prophet_ts(symbol, periods = 10):
m.fit(pdf)
future = m.make_future_dataframe(periods=periods)
forecast = m.predict(future)
fig = go.Figure()
fig.add_trace(go.Scatter(x= pdf.ds,
y=pdf.y,
name = f"{symbol}_true"
))
fig.add_trace(go.Scatter(x= forecast.ds,
y=forecast.yhat,
name = f"{symbol}_pred"
))
return fig
fig = prophet_ts(symbol=sb, periods = periods)
st.plotly_chart(fig, use_container_width=True)