Geek7 commited on
Commit
4944958
·
verified ·
1 Parent(s): 3abff25

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -7
app.py CHANGED
@@ -13,7 +13,14 @@ def fetch_stock_data(ticker, start_datetime, end_datetime):
13
  stock_data = yf.download(ticker, start=start_datetime, end=end_datetime)
14
  return stock_data
15
 
 
 
 
 
 
 
16
 
 
17
 
18
  # Function to detect head and shoulder patterns
19
  def detect_head_shoulder(df, window=3):
@@ -203,23 +210,32 @@ def find_pivots(df):
203
 
204
  # Streamlit App
205
  def main():
206
- st.title('Stock Pattern Detection App')
207
  ticker = st.text_input('Enter Stock Ticker:', 'AAPL')
208
- start_date = st.date_input('Start Date', pd.to_datetime('2020-01-01'))
209
- end_date = st.date_input('End Date', pd.to_datetime('2022-01-01'))
 
 
 
 
 
210
 
211
  st.info("Select Preferred Timezone:")
212
  preferred_timezone = st.selectbox('Timezone', list(pytz.all_timezones))
213
 
214
- start_time = st.time_input('Select Start Time', datetime(2022, 1, 1, 0, 0))
215
- end_time = st.time_input('Select End Time', datetime(2022, 1, 1, 23, 59))
 
216
 
217
- start_datetime = datetime.combine(start_date, start_time)
218
- end_datetime = datetime.combine(end_date, end_time)
219
 
220
  start_datetime = pytz.timezone(preferred_timezone).localize(start_datetime)
221
  end_datetime = pytz.timezone(preferred_timezone).localize(end_datetime)
222
 
 
 
 
223
  if st.button('Detect Patterns'):
224
  stock_data = fetch_stock_data(ticker, start_datetime, end_datetime)
225
  stock_data = detect_head_shoulder(stock_data)
 
13
  stock_data = yf.download(ticker, start=start_datetime, end=end_datetime)
14
  return stock_data
15
 
16
+ def fetch_stock_data(ticker, start_datetime, end_datetime):
17
+ # Fetch live data using yfinance
18
+ stock_data = yf.download(ticker, start=start_datetime, end=end_datetime)
19
+
20
+ # Convert DatetimeIndex to a column
21
+ df.reset_index(inplace=True)
22
 
23
+ return stock_data
24
 
25
  # Function to detect head and shoulder patterns
26
  def detect_head_shoulder(df, window=3):
 
210
 
211
  # Streamlit App
212
  def main():
213
+ st.title('Live Stock Pattern Detection App')
214
  ticker = st.text_input('Enter Stock Ticker:', 'AAPL')
215
+
216
+ # Placeholder for start and end date
217
+ start_date_placeholder = st.empty()
218
+ end_date_placeholder = st.empty()
219
+
220
+ start_date = start_date_placeholder.date_input('Start Date', pd.to_datetime('2022-01-01'))
221
+ end_date = end_date_placeholder.date_input('End Date', pd.to_datetime('2022-02-01'))
222
 
223
  st.info("Select Preferred Timezone:")
224
  preferred_timezone = st.selectbox('Timezone', list(pytz.all_timezones))
225
 
226
+ # Time selection components
227
+ start_hour, start_minute, start_second = st.slider('Select Start Time', 0, 23, 0), st.slider('', 0, 59, 0), st.slider('', 0, 59, 0)
228
+ end_hour, end_minute, end_second = st.slider('Select End Time', 0, 23, 23), st.slider('', 0, 59, 59), st.slider('', 0, 59, 59)
229
 
230
+ start_datetime = datetime(start_date.year, start_date.month, start_date.day, start_hour, start_minute, start_second)
231
+ end_datetime = datetime(end_date.year, end_date.month, end_date.day, end_hour, end_minute, end_second)
232
 
233
  start_datetime = pytz.timezone(preferred_timezone).localize(start_datetime)
234
  end_datetime = pytz.timezone(preferred_timezone).localize(end_datetime)
235
 
236
+ start_date_placeholder.info(f"Start Date (UTC): {start_datetime.strftime('%Y-%m-%d %H:%M:%S %Z')}")
237
+ end_date_placeholder.info(f"End Date (UTC): {end_datetime.strftime('%Y-%m-%d %H:%M:%S %Z')}")
238
+
239
  if st.button('Detect Patterns'):
240
  stock_data = fetch_stock_data(ticker, start_datetime, end_datetime)
241
  stock_data = detect_head_shoulder(stock_data)