Geek7 commited on
Commit
69a18df
·
verified ·
1 Parent(s): 1677e72

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +92 -60
app.py CHANGED
@@ -1,30 +1,67 @@
1
- # Import necessary libraries
2
  import streamlit as st
 
3
  import requests
4
- import pandas as pd
5
- from datetime import datetime
6
  from Pandas_Market_Predictor import Pandas_Market_Predictor
 
 
7
 
8
  # Hard-coded API key for demonstration purposes
9
  API_KEY = "QR8F9B7T6R2SWTAT"
10
 
11
  def fetch_alpha_vantage_data(api_key, symbol):
12
- try:
13
- url = f'https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol={symbol}&interval=5min&apikey={api_key}'
14
- response = requests.get(url)
15
- response.raise_for_status() # Raise an error for bad responses
16
- alpha_vantage_data = response.json()
17
- return alpha_vantage_data
18
- except requests.RequestException as e:
19
- st.error(f"Error fetching data: {e}")
20
- return None
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
 
22
  def calculate_indicators(data):
23
  # Convert all columns to numeric
24
  data = data.apply(pd.to_numeric, errors='coerce')
25
 
26
  # Example: Simple condition for doji and inside
27
- data['Doji'] = abs(data['close'] - data['Open']) <= 0.01 * (data['High'] - data['Low'])
28
  data['Inside'] = (data['High'] < data['High'].shift(1)) & (data['Low'] > data['Low'].shift(1))
29
  return data
30
 
@@ -32,63 +69,58 @@ def display_signals(signal_type, signals):
32
  st.subheader(f"{signal_type} Signals:")
33
  st.write(signals)
34
 
35
- def predict_trend(data):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  # Create predictor
37
- my_market_predictor = Pandas_Market_Predictor(data)
38
 
39
  # Predict Trend
40
  indicators = ["Doji", "Inside"]
 
41
  # Display loading message during prediction
42
  with st.spinner("Predicting trend using AI ...."):
43
  # Predict trend
44
  trend = my_market_predictor.Trend_Detection(indicators, 10)
45
- return trend
46
-
47
- def main():
48
- st.title("Stock Trend Predictor")
49
 
50
- # Input for stock symbol
51
- symbol = st.text_input("Enter stock symbol (e.g., AAPL):", "AAPL")
52
-
53
- # Fetch Alpha Vantage data
54
- alpha_vantage_data = fetch_alpha_vantage_data(API_KEY, symbol)
55
 
56
- if alpha_vantage_data:
57
- # Extract relevant data from Alpha Vantage response
58
- alpha_vantage_time_series = alpha_vantage_data.get('Time Series (5min)', {})
59
- df = pd.DataFrame(alpha_vantage_time_series).T
60
- df.index = pd.to_datetime(df.index)
61
- df = df.dropna(axis=0)
62
-
63
- # Rename columns
64
- df = df.rename(columns={'1. open': 'Open', '2. high': 'High', '3. low': 'Low', '4. close': 'Close', '5. volume': 'Volume'})
65
-
66
- # Calculate indicators
67
- df = calculate_indicators(df)
68
-
69
- # Display stock trading signals
70
- strategic_signals = StrategicSignals(symbol=symbol)
71
-
72
- # Display loading message during processing
73
- with st.spinner("Predicting signals using Strategic Indicators..."):
74
- # Display signals
75
- st.subheader(":orange[Strategic Indicators Trend Prediction]")
76
- display_signals("Bollinger Bands", strategic_signals.get_bollinger_bands_signals())
77
- display_signals("Breakout", strategic_signals.get_breakout_signals())
78
- display_signals("Crossover", strategic_signals.get_crossover_signals())
79
- display_signals("MACD", strategic_signals.get_macd_signals())
80
- display_signals("RSI", strategic_signals.get_rsi_signals())
81
-
82
- # Predict trend using AI
83
- trend = predict_trend(df)
84
-
85
- # Display results
86
- st.subheader(":orange[AI Trend Prediction]")
87
- st.write("Buy Trend :", trend['BUY'])
88
- st.write("Sell Trend :", trend['SELL'])
89
-
90
- # Delete the DataFrame to release memory
91
- del df
92
 
93
  if __name__ == "__main__":
94
  main()
 
 
1
  import streamlit as st
2
+ from thronetrader import StrategicSignals
3
  import requests
 
 
4
  from Pandas_Market_Predictor import Pandas_Market_Predictor
5
+ import pandas as pd
6
+
7
 
8
  # Hard-coded API key for demonstration purposes
9
  API_KEY = "QR8F9B7T6R2SWTAT"
10
 
11
  def fetch_alpha_vantage_data(api_key, symbol):
12
+ url = f'https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol={symbol}&interval=5min&apikey={api_key}'
13
+ response = requests.get(url)
14
+ alpha_vantage_data = response.json()
15
+ return alpha_vantage_data
16
+
17
+ def main():
18
+ st.title("Stock Trend Predictor")
19
+
20
+ # User input for stock symbol
21
+ symbol = st.text_input("Enter Stock Symbol (e.g., IBM):")
22
+
23
+ if not symbol:
24
+ st.warning("Please enter a valid stock symbol.")
25
+ st.stop()
26
+
27
+ # Use the hard-coded API key
28
+ api_key = API_KEY
29
+
30
+ # Fetch Alpha Vantage data
31
+ alpha_vantage_data = fetch_alpha_vantage_data(api_key, symbol)
32
+
33
+ # Extract relevant data from Alpha Vantage response
34
+ alpha_vantage_time_series = alpha_vantage_data.get('Time Series (5min)', {})
35
+ df = pd.DataFrame(alpha_vantage_time_series).T
36
+ df.index = pd.to_datetime(df.index)
37
+ df = df.dropna(axis=0)
38
+
39
+ # Display the raw data
40
+ st.subheader("Raw Data:")
41
+ st.write(df)
42
+
43
+ if __name__ == "__main__":
44
+ main()
45
+
46
+
47
+
48
+
49
+ # Hard-coded API key for demonstration purposes
50
+ API_KEY = "QR8F9B7T6R2SWTAT"
51
+
52
+ def fetch_alpha_vantage_data(api_key, symbol):
53
+
54
+ url = f'https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol={symbol}&interval=5min&apikey={api_key}'
55
+ response = requests.get(url)
56
+ alpha_vantage_data = response.json()
57
+ return alpha_vantage_data
58
 
59
  def calculate_indicators(data):
60
  # Convert all columns to numeric
61
  data = data.apply(pd.to_numeric, errors='coerce')
62
 
63
  # Example: Simple condition for doji and inside
64
+ data['Doji'] = abs(data['Close'] - data['Open']) <= 0.01 * (data['High'] - data['Low'])
65
  data['Inside'] = (data['High'] < data['High'].shift(1)) & (data['Low'] > data['Low'].shift(1))
66
  return data
67
 
 
69
  st.subheader(f"{signal_type} Signals:")
70
  st.write(signals)
71
 
72
+ def main():
73
+ st.title("Stock Trend Predictor")
74
+
75
+ # Input for stock symbol
76
+ symbol = st.text_input("Enter stock symbol (e.g., AAPL):", "AAPL")
77
+
78
+ # Fetch Alpha Vantage data
79
+ alpha_vantage_data = fetch_alpha_vantage_data(API_KEY, symbol)
80
+
81
+ # Extract relevant data from Alpha Vantage response
82
+ alpha_vantage_time_series = alpha_vantage_data.get('Time Series (5min)', {})
83
+ df = pd.DataFrame(alpha_vantage_time_series).T
84
+ df.index = pd.to_datetime(df.index)
85
+ df = df.dropna(axis=0)
86
+
87
+ # Rename columns
88
+ df = df.rename(columns={'1. open': 'Open', '2. high': 'High', '3. low': 'Low', '4. close': 'Close', '5. volume': 'Volume'})
89
+
90
+ # Calculate indicators
91
+ df = calculate_indicators(df)
92
+
93
+ # Display stock trading signals
94
+ strategic_signals = StrategicSignals(symbol=symbol)
95
+
96
+ # Display loading message during processing
97
+ with st.spinner("Predicting signals using Strategic Indicators..."):
98
+ # Display signals
99
+ st.subheader(":orange[Strategic Indicators Trend Prediction]")
100
+ display_signals("Bollinger Bands", strategic_signals.get_bollinger_bands_signals())
101
+ display_signals("Breakout", strategic_signals.get_breakout_signals())
102
+ display_signals("Crossover", strategic_signals.get_crossover_signals())
103
+ display_signals("MACD", strategic_signals.get_macd_signals())
104
+ display_signals("RSI", strategic_signals.get_rsi_signals())
105
+
106
  # Create predictor
107
+ my_market_predictor = Pandas_Market_Predictor(df)
108
 
109
  # Predict Trend
110
  indicators = ["Doji", "Inside"]
111
+
112
  # Display loading message during prediction
113
  with st.spinner("Predicting trend using AI ...."):
114
  # Predict trend
115
  trend = my_market_predictor.Trend_Detection(indicators, 10)
 
 
 
 
116
 
117
+ # Display results
118
+ st.subheader(":orange[AI Trend Prediction]")
119
+ st.write("Buy Trend :", trend['BUY'])
120
+ st.write("Sell Trend :", trend['SELL'])
 
121
 
122
+ # Delete the DataFrame to release memory
123
+ del df
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
124
 
125
  if __name__ == "__main__":
126
  main()