Bayhaqy commited on
Commit
e9db725
·
1 Parent(s): 36d1e44

Upload comparison.py

Browse files
Files changed (1) hide show
  1. Menu/comparison.py +58 -0
Menu/comparison.py ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pandas as pd
2
+ import numpy as np
3
+ import matplotlib.pyplot as plt
4
+ import pandas_datareader.data as web
5
+ import datetime as dt
6
+ import yfinance as yf
7
+ from sklearn.preprocessing import MinMaxScaler
8
+ from keras.models import load_model
9
+ import streamlit as st
10
+ import plotly.graph_objects as go
11
+ import base64
12
+ import plotly.express as px
13
+ from datetime import datetime
14
+
15
+ stock_tickers = {
16
+ "MAPI":"MAPI.JK","MAP Aktif": "MAPA.JK","MAP Boga": "MAPB.JK",
17
+ "Tesla": "TSLA", "Apple": "AAPL", "Microsoft": "MSFT", "Google": "GOOGL",
18
+ "Facebook": "FB", "Amazon": "AMZN", "Netflix": "NFLX", "Alphabet": "GOOG",
19
+ "Nvidia": "NVDA", "Paypal": "PYPL", "Adobe": "ADBE", "Intel": "INTC",
20
+ "Cisco": "CSCO", "Comcast": "CMCSA", "Pepsi": "PEP", "Costco": "COST",
21
+ "Starbucks": "SBUX", "Walmart": "WMT", "Disney": "DIS", "Visa": "V",
22
+ "Mastercard": "MA", "Boeing": "BA", "IBM": "IBM", "McDonalds": "MCD",
23
+ "Nike": "NKE", "Exxon": "XOM", "Chevron": "CVX", "Verizon": "VZ",
24
+ "AT&T": "T", "Home Depot": "HD", "Salesforce": "CRM", "Oracle": "ORCL",
25
+ "Qualcomm": "QCOM", "AMD": "AMD"
26
+ }
27
+
28
+ st.title("Stock Comparison App")
29
+
30
+ # Sidebar for stock selection and date range specification
31
+ st.sidebar.header("Select Stocks and Date Ranges")
32
+
33
+ stock1 = st.sidebar.selectbox("Select Stock 1", list(stock_tickers.keys()), key="stock1_selectbox")
34
+ stock2 = st.sidebar.selectbox("Select Stock 2", list(stock_tickers.keys()), key="stock2_selectbox")
35
+
36
+ start_date_stock1 = st.sidebar.date_input(f"Start date for {stock1}", datetime(2018, 1, 1), key=f"start_date_{stock1}")
37
+ end_date_stock1 = st.sidebar.date_input(f"End date for {stock1}", datetime(2023, 12, 1), key=f"end_date_{stock1}")
38
+ start_date_stock2 = st.sidebar.date_input(f"Start date for {stock2}", datetime(2018, 1, 1), key=f"start_date_{stock2}")
39
+ end_date_stock2 = st.sidebar.date_input(f"End date for {stock2}", datetime(2023, 12, 1), key=f"end_date_{stock2}")
40
+
41
+ # Button to trigger the comparison
42
+ if st.sidebar.button("Compare"):
43
+ # Load data for both stocks
44
+ data_stock1 = yf.download(stock_tickers[stock1], start=start_date_stock1, end=end_date_stock1)
45
+ data_stock2 = yf.download(stock_tickers[stock2], start=start_date_stock2, end=end_date_stock2)
46
+
47
+ # Plotting the data
48
+ fig = go.Figure()
49
+
50
+ fig.add_trace(go.Scatter(x=data_stock1.index, y=data_stock1['Close'], mode='lines', name=f'{stock1}'))
51
+ fig.add_trace(go.Scatter(x=data_stock2.index, y=data_stock2['Close'], mode='lines', name=f'{stock2}'))
52
+
53
+ fig.update_layout(title=f"Comparison of {stock1} and {stock2}", xaxis_title="Date", yaxis_title="Closing Price")
54
+
55
+ st.plotly_chart(fig)
56
+
57
+ st.sidebar.markdown("----")
58
+ st.sidebar.markdown("© 2023 Comparation Stocks Prediction App")