netflypsb commited on
Commit
cf12e15
·
verified ·
1 Parent(s): 5d11dc6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -1
app.py CHANGED
@@ -3,6 +3,8 @@ import yfinance as yf
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,7 +13,6 @@ def vsa_advanced_analysis(data):
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,6 +35,14 @@ def plot_signals_advanced(data, 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,6 +56,7 @@ def main():
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:
 
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
  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
  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
  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: