netflypsb commited on
Commit
2ab2b02
·
verified ·
1 Parent(s): cfd78c9

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +39 -0
app.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from binance_api.yfinanceclient import YFinanceClient
3
+ from indicators.sma import calculate_sma
4
+ from indicators.bollinger_bands import calculate_bollinger_bands
5
+ from signals.strategy import generate_signals
6
+ from utils.plotting import plot_data_with_indicators_and_signals
7
+
8
+ # Initialize Streamlit app
9
+ st.title('Stock Signal App')
10
+
11
+ # User inputs
12
+ ticker = st.text_input('Enter the stock ticker symbol (e.g., AAPL):').upper()
13
+ period = st.selectbox('Select the period for analysis:', options=['1mo', '3mo', '6mo'], index=0)
14
+ interval = st.selectbox('Select the data interval:', options=['1h', '1d'], index=0)
15
+
16
+ # Analyze button
17
+ if st.button('Analyze'):
18
+ if not ticker:
19
+ st.error('Please provide the stock ticker symbol.')
20
+ else:
21
+ try:
22
+ # Initialize YFinance Client and fetch historical stock data
23
+ client = YFinanceClient(ticker)
24
+ data = client.fetch_historical_prices(period=period, interval=interval)
25
+
26
+ # Calculate indicators
27
+ data = calculate_sma(data, 'close', 21)
28
+ data = calculate_sma(data, 'close', 50)
29
+ data = calculate_bollinger_bands(data)
30
+
31
+ # Generate signals
32
+ data = generate_signals(data)
33
+
34
+ # Plotting
35
+ st.write(f'Analysis and Signals for {ticker}')
36
+ plot_data_with_indicators_and_signals(data)
37
+ except Exception as e:
38
+ st.error(f'Failed to fetch and analyze data for {ticker}. Error: {str(e)}')
39
+