Update app.py
Browse files
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 |
-
#
|
| 32 |
signals = pd.DataFrame()
|
| 33 |
signals['Date'] = data.index
|
| 34 |
-
signals['Price'] = data['
|
| 35 |
signals['Signal'] = np.where(data['Buy Signal'], 'Buy', np.where(data['Sell Signal'], 'Sell', ''))
|
| 36 |
-
signals = signals[
|
| 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')
|