netflypsb commited on
Commit
d7166b1
·
verified ·
1 Parent(s): 84316a5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -9
app.py CHANGED
@@ -21,11 +21,17 @@ def calculate_indicators(data):
21
  return data
22
 
23
  def identify_signals(data):
24
- data['Buy Signal'] = ((data['Close'] < data['Lower Band']) & (data['Close'].shift(1) > data['Lower Band'])) | \
25
- ((data['Close'] > data['MA5']) & (data['Close'].shift(1) < data['MA5']))
26
- data['Sell Signal'] = ((data['Close'] > data['Upper Band']) & (data['Close'].shift(1) < data['Upper Band'])) | \
27
- ((data['Close'] < data['MA5']) & (data['Close'].shift(1) > data['MA5']))
28
- return data
 
 
 
 
 
 
29
 
30
  def plot_data(data):
31
  plt.figure(figsize=(10, 5))
@@ -33,8 +39,6 @@ def plot_data(data):
33
  plt.plot(data['Upper Band'], label='Upper Bollinger Band', linestyle='--')
34
  plt.plot(data['Middle Band'], label='Middle Bollinger Band', linestyle='--')
35
  plt.plot(data['Lower Band'], label='Lower Bollinger Band', linestyle='--')
36
- plt.plot(data['MA5'], label='5-Day MA', color='green', linestyle='-.')
37
- plt.plot(data['MA10'], label='10-Day MA', color='red', linestyle='-.')
38
 
39
  buy_signals = data[data['Buy Signal']]
40
  sell_signals = data[data['Sell Signal']]
@@ -56,10 +60,15 @@ def main():
56
 
57
  if st.button("Analyze"):
58
  data = fetch_data(ticker, start_date, end_date)
59
- data = calculate_indicators(data)
60
- data = identify_signals(data)
61
  plot_data(data)
62
  st.pyplot(plt)
 
 
 
 
 
63
 
64
  if __name__ == "__main__":
65
  main()
 
21
  return data
22
 
23
  def identify_signals(data):
24
+ data['Buy Signal'] = ((data['Close'] < data['Lower Band']) & (data['Close'].shift(1) > data['Lower Band']))
25
+ data['Sell Signal'] = ((data['Close'] > data['Upper Band']) & (data['Close'].shift(1) < data['Upper Band']))
26
+
27
+ signals = []
28
+ for index, row in data.iterrows():
29
+ if row['Buy Signal']:
30
+ signals.append({'Date': index, 'Signal Type': 'Entry', 'Price': row['Close']})
31
+ if row['Sell Signal']:
32
+ signals.append({'Date': index, 'Signal Type': 'Exit', 'Price': row['Close']})
33
+
34
+ return data, pd.DataFrame(signals)
35
 
36
  def plot_data(data):
37
  plt.figure(figsize=(10, 5))
 
39
  plt.plot(data['Upper Band'], label='Upper Bollinger Band', linestyle='--')
40
  plt.plot(data['Middle Band'], label='Middle Bollinger Band', linestyle='--')
41
  plt.plot(data['Lower Band'], label='Lower Bollinger Band', linestyle='--')
 
 
42
 
43
  buy_signals = data[data['Buy Signal']]
44
  sell_signals = data[data['Sell Signal']]
 
60
 
61
  if st.button("Analyze"):
62
  data = fetch_data(ticker, start_date, end_date)
63
+ data, signals = calculate_indicators(data)
64
+ data, signals = identify_signals(data)
65
  plot_data(data)
66
  st.pyplot(plt)
67
+ if not signals.empty:
68
+ st.write("Trading Signals:")
69
+ st.dataframe(signals)
70
+ else:
71
+ st.write("No trading signals found for the selected period.")
72
 
73
  if __name__ == "__main__":
74
  main()