Update app.py
Browse files
app.py
CHANGED
@@ -6,11 +6,15 @@ from datetime import datetime, timedelta
|
|
6 |
import pytz
|
7 |
|
8 |
|
9 |
-
|
10 |
-
|
11 |
-
|
|
|
|
|
12 |
return stock_data
|
13 |
|
|
|
|
|
14 |
# Function to detect head and shoulder patterns
|
15 |
def detect_head_shoulder(df, window=3):
|
16 |
roll_window = window
|
@@ -204,19 +208,20 @@ def main():
|
|
204 |
start_date = st.date_input('Start Date', pd.to_datetime('2020-01-01'))
|
205 |
end_date = st.date_input('End Date', pd.to_datetime('2022-01-01'))
|
206 |
|
207 |
-
|
|
|
|
|
|
|
|
|
208 |
|
209 |
-
start_datetime =
|
210 |
-
end_datetime =
|
211 |
|
212 |
-
start_datetime =
|
213 |
-
end_datetime =
|
214 |
|
215 |
-
start_datetime = preferred_timezone.localize(start_datetime)
|
216 |
-
end_datetime = preferred_timezone.localize(end_datetime)
|
217 |
-
|
218 |
if st.button('Detect Patterns'):
|
219 |
-
stock_data = fetch_stock_data(ticker,
|
220 |
stock_data = detect_head_shoulder(stock_data)
|
221 |
stock_data = detect_multiple_tops_bottoms(stock_data)
|
222 |
stock_data = calculate_support_resistance(stock_data)
|
@@ -230,4 +235,5 @@ def main():
|
|
230 |
st.write(stock_data)
|
231 |
|
232 |
if __name__ == "__main__":
|
233 |
-
main()
|
|
|
|
6 |
import pytz
|
7 |
|
8 |
|
9 |
+
|
10 |
+
|
11 |
+
# Function to fetch stock data
|
12 |
+
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):
|
20 |
roll_window = window
|
|
|
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)
|
226 |
stock_data = detect_multiple_tops_bottoms(stock_data)
|
227 |
stock_data = calculate_support_resistance(stock_data)
|
|
|
235 |
st.write(stock_data)
|
236 |
|
237 |
if __name__ == "__main__":
|
238 |
+
main()
|
239 |
+
|