netflypsb commited on
Commit
f8c8ec3
·
verified ·
1 Parent(s): 2b0db84

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -4
app.py CHANGED
@@ -2,7 +2,12 @@ import streamlit as st
2
  import yfinance as yf
3
  import pandas as pd
4
  import plotly.graph_objs as go
 
5
 
 
 
 
 
6
 
7
  def fetch_data(ticker, start_date, end_date):
8
  data = yf.download(ticker, start=start_date, end=end_date)
@@ -24,7 +29,7 @@ def calculate_indicators(data):
24
 
25
  return data
26
 
27
- def identify_signals(data, weekly_data):
28
  # Calculate Buy and Sell signals on daily data
29
  data['Buy Signal'] = ((data['Close'] < data['Lower Band']) & (data['Close'].shift(1) > data['Lower Band'])) | \
30
  ((data['Close'] > data['MA5']) & (data['Close'].shift(1) < data['MA5']))
@@ -35,14 +40,24 @@ def identify_signals(data, weekly_data):
35
  avg_volume = data['Volume'].rolling(window=20).mean()
36
  data['Buy Signal'] = data['Buy Signal'] & (data['Volume'] > avg_volume)
37
  data['Sell Signal'] = data['Sell Signal'] & (data['Volume'] > avg_volume)
 
 
38
 
39
- # Confirm signals with weekly data
 
 
 
 
 
 
 
40
  weekly_data = calculate_indicators(weekly_data)
 
41
  data['Weekly Buy Signal'] = weekly_data['Buy Signal'].reindex(data.index, method='ffill')
42
  data['Weekly Sell Signal'] = weekly_data['Sell Signal'].reindex(data.index, method='ffill')
43
  data['Buy Signal'] = data['Buy Signal'] & data['Weekly Buy Signal']
44
  data['Sell Signal'] = data['Sell Signal'] & data['Weekly Sell Signal']
45
-
46
  return data
47
 
48
  def plot_data(data):
@@ -82,7 +97,8 @@ def main():
82
  data = fetch_data(ticker, start_date, end_date)
83
  weekly_data = fetch_weekly_data(ticker, start_date, end_date)
84
  data = calculate_indicators(data)
85
- data = identify_signals(data, weekly_data)
 
86
  fig = plot_data(data)
87
  st.plotly_chart(fig, use_container_width=True)
88
 
 
2
  import yfinance as yf
3
  import pandas as pd
4
  import plotly.graph_objs as go
5
+ from st_pages import show_pages_from_config, add_page_title
6
 
7
+ # Load pages from the TOML configuration file
8
+ show_pages_from_config(".streamlit/pages_sections.toml")
9
+
10
+ add_page_title("BBMA Oma Ally", "🌐") # Optionally add a title and icon to the current page
11
 
12
  def fetch_data(ticker, start_date, end_date):
13
  data = yf.download(ticker, start=start_date, end=end_date)
 
29
 
30
  return data
31
 
32
+ def identify_signals(data):
33
  # Calculate Buy and Sell signals on daily data
34
  data['Buy Signal'] = ((data['Close'] < data['Lower Band']) & (data['Close'].shift(1) > data['Lower Band'])) | \
35
  ((data['Close'] > data['MA5']) & (data['Close'].shift(1) < data['MA5']))
 
40
  avg_volume = data['Volume'].rolling(window=20).mean()
41
  data['Buy Signal'] = data['Buy Signal'] & (data['Volume'] > avg_volume)
42
  data['Sell Signal'] = data['Sell Signal'] & (data['Volume'] > avg_volume)
43
+
44
+ return data
45
 
46
+ def identify_weekly_signals(weekly_data):
47
+ weekly_data['Buy Signal'] = ((weekly_data['Close'] < weekly_data['Lower Band']) & (weekly_data['Close'].shift(1) > weekly_data['Lower Band'])) | \
48
+ ((weekly_data['Close'] > weekly_data['MA5']) & (weekly_data['Close'].shift(1) < weekly_data['MA5']))
49
+ weekly_data['Sell Signal'] = ((weekly_data['Close'] > weekly_data['Upper Band']) & (weekly_data['Close'].shift(1) < weekly_data['Upper Band'])) | \
50
+ ((weekly_data['Close'] < weekly_data['MA5']) & (weekly_data['Close'].shift(1) > weekly_data['MA5']))
51
+ return weekly_data
52
+
53
+ def confirm_signals_with_weekly(data, weekly_data):
54
  weekly_data = calculate_indicators(weekly_data)
55
+ weekly_data = identify_weekly_signals(weekly_data)
56
  data['Weekly Buy Signal'] = weekly_data['Buy Signal'].reindex(data.index, method='ffill')
57
  data['Weekly Sell Signal'] = weekly_data['Sell Signal'].reindex(data.index, method='ffill')
58
  data['Buy Signal'] = data['Buy Signal'] & data['Weekly Buy Signal']
59
  data['Sell Signal'] = data['Sell Signal'] & data['Weekly Sell Signal']
60
+
61
  return data
62
 
63
  def plot_data(data):
 
97
  data = fetch_data(ticker, start_date, end_date)
98
  weekly_data = fetch_weekly_data(ticker, start_date, end_date)
99
  data = calculate_indicators(data)
100
+ data = identify_signals(data)
101
+ data = confirm_signals_with_weekly(data, weekly_data)
102
  fig = plot_data(data)
103
  st.plotly_chart(fig, use_container_width=True)
104