File size: 1,621 Bytes
41fee50
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st
import yfinance as yf
import pandas as pd
import plotly.graph_objs as go

# Set the Streamlit app title and icon
st.set_page_config(page_title="Stock Analysis", page_icon="📈")

# Define the Streamlit app
def main():
    # Create a Streamlit sidebar for user input
    st.sidebar.title("Stock Analysis")
    ticker_symbol = st.sidebar.text_input("Enter Stock Ticker Symbol:", value='AAPL')
    start_date = st.sidebar.date_input("Start Date", pd.to_datetime('2020-01-01'))
    end_date = st.sidebar.date_input("End Date", pd.to_datetime('2021-01-01'))

    # Fetch stock data from Yahoo Finance
    try:
        stock_data = yf.download(ticker_symbol, start=start_date, end=end_date)
    except Exception as e:
        st.error("Error fetching stock data. Please check the ticker symbol and date range.")
        return

    # Display basic stock information
    st.header(f"Stock Analysis for {ticker_symbol}")
    st.subheader("Basic Stock Information")
    st.write(stock_data.tail())

    # Plot a candlestick chart
    st.subheader("Candlestick Chart")
    fig = go.Figure(data=[go.Candlestick(x=stock_data.index,
                open=stock_data['Open'],
                high=stock_data['High'],
                low=stock_data['Low'],
                close=stock_data['Close'])])
    fig.update_layout(title=f'{ticker_symbol} Candlestick Chart', xaxis_title='Date', yaxis_title='Price')
    st.plotly_chart(fig)

    # Perform more advanced analysis here
    # You can add more Streamlit components and analysis tools as needed

# Run the Streamlit app
if __name__ == '__main__':
    main()