netflypsb commited on
Commit
fe6a5e2
·
verified ·
1 Parent(s): f4deaf7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +130 -4
app.py CHANGED
@@ -2,7 +2,126 @@ 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)
@@ -84,13 +203,20 @@ def plot_data(data):
84
 
85
  def main():
86
  st.title("OMA Ally BBMA Trading Strategy Visualization")
87
- ticker = st.text_input("Enter the ticker symbol, e.g., 'AAPL'")
 
 
 
 
 
 
 
88
  start_date = st.date_input("Select the start date")
89
  end_date = st.date_input("Select the end date")
90
 
91
  if st.button("Analyze"):
92
- data = fetch_data(ticker, start_date, end_date)
93
- weekly_data = fetch_weekly_data(ticker, start_date, end_date)
94
  data = calculate_indicators(data)
95
  data = identify_signals(data)
96
  data = confirm_signals_with_weekly(data, weekly_data)
 
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
+ # Define ticker symbols for various stock exchanges
13
+ stock_exchanges = {
14
+ "Kuala Lumpur Stock Exchange (KLSE)": {
15
+ "CIMB Group Holdings Bhd - CIMB": "1023.KL",
16
+ "RHB Bank Bhd - RHBBANK": "1066.KL",
17
+ "Hong Leong Financial Group Bhd - HLFG": "1082.KL",
18
+ "Malayan Banking Bhd - MAYBANK": "1155.KL",
19
+ "Public Bank Bhd - PBBANK": "1295.KL",
20
+ "IOI Corporation Bhd - IOICORP": "1961.KL",
21
+ "Kuala Lumpur Kepong Bhd - KLK": "2445.KL",
22
+ "Genting Bhd - GENTING": "3182.KL",
23
+ "MISC Bhd - MISC": "3816.KL",
24
+ "PPB Group Bhd - PPB": "4065.KL",
25
+ "Sime Darby Bhd - SIME": "4197.KL",
26
+ "Telekom Malaysia Bhd - TM": "4863.KL",
27
+ "Tenaga Nasional Bhd - TENAGA": "5278.KL",
28
+ "Top Glove Corporation Bhd - TOPGLOV": "7113.KL",
29
+ "AirAsia X Bhd - AAX": "5238.KL",
30
+ "Ramssol Group Bhd - RAMSSOL": "0236.KL",
31
+ "Uzma Bhd - UZMA": "7250.KL",
32
+ "WZ Satu Bhd - WZSATU": "7245.KL",
33
+ "Systech Bhd - SYSTECH": "0050.KL",
34
+ "Yong Tai Bhd - YONGTAI": "7066.KL",
35
+ },
36
+ "Euronext": {
37
+ "LVMH Moet Hennessy Louis Vuitton SE - LVMH": "MC.PA",
38
+ "TotalEnergies SE - TotalEnergies": "TTE.PA",
39
+ "Sanofi SA - Sanofi": "SAN.PA",
40
+ "Air Liquide SA - Air Liquide": "AI.PA",
41
+ "Schneider Electric SE - Schneider Electric": "SU.PA",
42
+ "Kering SA - Kering": "KER.PA",
43
+ "BNP Paribas SA - BNP Paribas": "BNP.PA",
44
+ "Hermès International SCA - Hermès": "RMS.PA",
45
+ "L'Oréal SA - L'Oréal": "OR.PA",
46
+ "AXA SA - AXA": "CS.PA",
47
+ "Vinci SA - Vinci": "DG.PA",
48
+ "Dassault Systèmes SE - Dassault Systèmes": "DSY.PA",
49
+ "Engie SA - Engie": "ENGI.PA",
50
+ "Société Générale SA - Société Générale": "GLE.PA",
51
+ "Pernod Ricard SA - Pernod Ricard": "RI.PA",
52
+ "Safran SA - Safran": "SAF.PA",
53
+ "ArcelorMittal SA - ArcelorMittal": "MT.AS",
54
+ "Saint-Gobain SA - Saint-Gobain": "SGO.PA",
55
+ "Capgemini SE - Capgemini": "CAP.PA",
56
+ "Danone SA - Danone": "BN.PA",
57
+ },
58
+ "London Stock Exchange (LSE)": {
59
+ "HSBC Holdings plc - HSBC": "HSBA.L",
60
+ "Royal Dutch Shell plc - Shell": "RDSA.L",
61
+ "BP plc - BP": "BP.L",
62
+ "GlaxoSmithKline plc - GlaxoSmithKline": "GSK.L",
63
+ "AstraZeneca plc - AstraZeneca": "AZN.L",
64
+ "Unilever plc - Unilever": "ULVR.L",
65
+ "British American Tobacco plc - British American Tobacco": "BATS.L",
66
+ "Diageo plc - Diageo": "DGE.L",
67
+ "Barclays plc - Barclays": "BARC.L",
68
+ "Lloyds Banking Group plc - Lloyds": "LLOY.L",
69
+ "Vodafone Group plc - Vodafone": "VOD.L",
70
+ "Rio Tinto plc - Rio Tinto": "RIO.L",
71
+ "Reckitt Benckiser Group plc - Reckitt Benckiser": "RKT.L",
72
+ "Tesco plc - Tesco": "TSCO.L",
73
+ "Glencore plc - Glencore": "GLEN.L",
74
+ "National Grid plc - National Grid": "NG.L",
75
+ "BT Group plc - BT Group": "BT-A.L",
76
+ "Aviva plc - Aviva": "AV.L",
77
+ "Imperial Brands plc - Imperial Brands": "IMB.L",
78
+ "Rolls-Royce Holdings plc - Rolls-Royce": "RR.L",
79
+ },
80
+ "NYSE": {
81
+ "Berkshire Hathaway Inc. (Class B) - BRK-B": "BRK-B",
82
+ "Johnson & Johnson - JNJ": "JNJ",
83
+ "JPMorgan Chase & Co. - JPM": "JPM",
84
+ "Procter & Gamble Co. - PG": "PG",
85
+ "Visa Inc. (Class A) - V": "V",
86
+ "Walmart Inc. - WMT": "WMT",
87
+ "Mastercard Incorporated (Class A) - MA": "MA",
88
+ "The Home Depot, Inc. - HD": "HD",
89
+ "Bank of America Corporation - BAC": "BAC",
90
+ "Walt Disney Company (The) - DIS": "DIS",
91
+ "Pfizer Inc. - PFE": "PFE",
92
+ "Chevron Corporation - CVX": "CVX",
93
+ "Coca-Cola Company (The) - KO": "KO",
94
+ "Exxon Mobil Corporation - XOM": "XOM",
95
+ "AbbVie Inc. - ABBV": "ABBV",
96
+ "Merck & Co., Inc. - MRK": "MRK",
97
+ "AT&T Inc. - T": "T",
98
+ "Verizon Communications Inc. - VZ": "VZ",
99
+ "Morgan Stanley - MS": "MS",
100
+ "Goldman Sachs Group, Inc. (The) - GS": "GS",
101
+ },
102
+ "NASDAQ": {
103
+ "Apple Inc. - AAPL": "AAPL",
104
+ "Microsoft Corporation - MSFT": "MSFT",
105
+ "Amazon.com, Inc. - AMZN": "AMZN",
106
+ "Tesla, Inc. - TSLA": "TSLA",
107
+ "Alphabet Inc. (Class A) - GOOGL": "GOOGL",
108
+ "Alphabet Inc. (Class C) - GOOG": "GOOG",
109
+ "NVIDIA Corporation - NVDA": "NVDA",
110
+ "Meta Platforms, Inc. - META": "META",
111
+ "Netflix, Inc. - NFLX": "NFLX",
112
+ "Intel Corporation - INTC": "INTC",
113
+ "Adobe Inc. - ADBE": "ADBE",
114
+ "Cisco Systems, Inc. - CSCO": "CSCO",
115
+ "PepsiCo, Inc. - PEP": "PEP",
116
+ "Comcast Corporation - CMCSA": "CMCSA",
117
+ "Advanced Micro Devices, Inc. - AMD": "AMD",
118
+ "Broadcom Inc. - AVGO": "AVGO",
119
+ "Charter Communications, Inc. - CHTR": "CHTR",
120
+ "PayPal Holdings, Inc. - PYPL": "PYPL",
121
+ "Starbucks Corporation - SBUX": "SBUX",
122
+ "Booking Holdings Inc. - BKNG": "BKNG",
123
+ },
124
+ }
125
 
126
  def fetch_data(ticker, start_date, end_date):
127
  data = yf.download(ticker, start=start_date, end=end_date)
 
203
 
204
  def main():
205
  st.title("OMA Ally BBMA Trading Strategy Visualization")
206
+
207
+ # Sidebar with dropdown menu for stock tickers
208
+ st.sidebar.title("Select Ticker Symbol")
209
+ exchange = st.sidebar.selectbox("Select Stock Exchange", list(stock_exchanges.keys()))
210
+ ticker_symbols = stock_exchanges[exchange]
211
+ ticker = st.sidebar.selectbox("Select Ticker Symbol", list(ticker_symbols.keys()))
212
+ ticker_symbol = ticker_symbols[ticker]
213
+
214
  start_date = st.date_input("Select the start date")
215
  end_date = st.date_input("Select the end date")
216
 
217
  if st.button("Analyze"):
218
+ data = fetch_data(ticker_symbol, start_date, end_date)
219
+ weekly_data = fetch_weekly_data(ticker_symbol, start_date, end_date)
220
  data = calculate_indicators(data)
221
  data = identify_signals(data)
222
  data = confirm_signals_with_weekly(data, weekly_data)