Update app.py
Browse files
app.py
CHANGED
@@ -3,8 +3,6 @@ import yfinance as yf
|
|
3 |
import pandas as pd
|
4 |
import plotly.graph_objects as go
|
5 |
from datetime import datetime
|
6 |
-
from ta.momentum import RSIIndicator
|
7 |
-
from ta.volatility import BollingerBands
|
8 |
|
9 |
def vsa_advanced_analysis(data):
|
10 |
signals = []
|
@@ -13,6 +11,7 @@ def vsa_advanced_analysis(data):
|
|
13 |
signals.append((data.index[i], 'Buy', data['Close'][i]))
|
14 |
elif data['Close'][i] < data['Close'][i-1] and data['Volume'][i] > data['Volume'][i-1] and data['Close'][i-1] < data['Close'][i-2]:
|
15 |
signals.append((data.index[i], 'Sell', data['Close'][i]))
|
|
|
16 |
if data['Volume'][i] > data['Volume'][i-1] * 1.5 and data['Close'][i] < data['Open'][i]:
|
17 |
signals.append((data.index[i], 'Selling Climax', data['Close'][i]))
|
18 |
return signals
|
@@ -35,14 +34,6 @@ def plot_signals_advanced(data, signals):
|
|
35 |
fig.update_layout(title='Stock Price with Buy and Sell Signals', xaxis_title='Date', yaxis_title='Price')
|
36 |
st.plotly_chart(fig)
|
37 |
|
38 |
-
def add_technical_indicators(data):
|
39 |
-
rsi = RSIIndicator(data['Close']).rsi()
|
40 |
-
bb = BollingerBands(data['Close'])
|
41 |
-
data['RSI'] = rsi
|
42 |
-
data['BB_High'] = bb.bollinger_hband()
|
43 |
-
data['BB_Low'] = bb.bollinger_lband()
|
44 |
-
return data
|
45 |
-
|
46 |
def main():
|
47 |
st.title('Advanced VSA Stock Analyzer')
|
48 |
st.write('Input a stock ticker symbol to analyze and generate buy and sell signals using advanced Volume Spread Analysis (VSA).')
|
@@ -56,7 +47,6 @@ def main():
|
|
56 |
if data.empty:
|
57 |
st.write('No data found for the selected stock ticker and date range.')
|
58 |
else:
|
59 |
-
data = add_technical_indicators(data)
|
60 |
signals = vsa_advanced_analysis(data)
|
61 |
st.write(f'Found {len(signals)} signals.')
|
62 |
if signals:
|
|
|
3 |
import pandas as pd
|
4 |
import plotly.graph_objects as go
|
5 |
from datetime import datetime
|
|
|
|
|
6 |
|
7 |
def vsa_advanced_analysis(data):
|
8 |
signals = []
|
|
|
11 |
signals.append((data.index[i], 'Buy', data['Close'][i]))
|
12 |
elif data['Close'][i] < data['Close'][i-1] and data['Volume'][i] > data['Volume'][i-1] and data['Close'][i-1] < data['Close'][i-2]:
|
13 |
signals.append((data.index[i], 'Sell', data['Close'][i]))
|
14 |
+
# Example of adding more advanced patterns
|
15 |
if data['Volume'][i] > data['Volume'][i-1] * 1.5 and data['Close'][i] < data['Open'][i]:
|
16 |
signals.append((data.index[i], 'Selling Climax', data['Close'][i]))
|
17 |
return signals
|
|
|
34 |
fig.update_layout(title='Stock Price with Buy and Sell Signals', xaxis_title='Date', yaxis_title='Price')
|
35 |
st.plotly_chart(fig)
|
36 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
def main():
|
38 |
st.title('Advanced VSA Stock Analyzer')
|
39 |
st.write('Input a stock ticker symbol to analyze and generate buy and sell signals using advanced Volume Spread Analysis (VSA).')
|
|
|
47 |
if data.empty:
|
48 |
st.write('No data found for the selected stock ticker and date range.')
|
49 |
else:
|
|
|
50 |
signals = vsa_advanced_analysis(data)
|
51 |
st.write(f'Found {len(signals)} signals.')
|
52 |
if signals:
|