netflypsb commited on
Commit
20c9805
·
verified ·
1 Parent(s): 9175f84

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +7 -3
app.py CHANGED
@@ -25,17 +25,21 @@ def identify_signals(data):
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 signal_table(data):
31
- # Creating a DataFrame for signal events
32
  signals = pd.DataFrame()
33
  signals['Date'] = data.index
34
- signals['Price'] = data['Close']
35
  signals['Signal'] = np.where(data['Buy Signal'], 'Buy', np.where(data['Sell Signal'], 'Sell', ''))
36
- signals = signals[signals['Signal'] != ''] # Filter out non-signal days
37
  return signals
38
 
 
39
  def plot_data(data):
40
  plt.figure(figsize=(10, 5))
41
  plt.plot(data['Close'], label='Close Price')
 
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
+
29
+ # To properly track the price at which a signal occurs, we ensure signal markers are associated with the price
30
+ data['Signal Price'] = data.apply(lambda row: row['Close'] if row['Buy Signal'] or row['Sell Signal'] else np.nan, axis=1)
31
  return data
32
 
33
  def signal_table(data):
34
+ # Extracting signal events and necessary information
35
  signals = pd.DataFrame()
36
  signals['Date'] = data.index
37
+ signals['Price'] = data['Signal Price']
38
  signals['Signal'] = np.where(data['Buy Signal'], 'Buy', np.where(data['Sell Signal'], 'Sell', ''))
39
+ signals = signals.dropna(subset=['Price']) # Remove rows where no signal occurred
40
  return signals
41
 
42
+
43
  def plot_data(data):
44
  plt.figure(figsize=(10, 5))
45
  plt.plot(data['Close'], label='Close Price')