netflypsb commited on
Commit
8735c00
·
verified ·
1 Parent(s): d7166b1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -19
app.py CHANGED
@@ -21,17 +21,11 @@ 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['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,6 +33,8 @@ def plot_data(data):
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,16 +56,10 @@ def main():
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()
75
-
 
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
  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
 
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()