summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Li <38477812+EricLi-Dev@users.noreply.github.com>2024-01-22 12:06:41 -0500
committerGitHub <noreply@github.com>2024-01-22 17:06:41 +0000
commit7f657d9867af3cdc48d6229192214ddef14a1342 (patch)
tree24aa4de43e89497185c7f6a8b46a92cfb91a847c
parent7fccc1546af6b0fe9c6b134a1249fa2602547643 (diff)
Hotfix/th etfs (#5959)
* added etf trading hours * black formatter --------- Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> Co-authored-by: Henrique Joaquim <h.joaquim@campus.fct.unl.pt> Co-authored-by: Luqman <luqazino@gmail.com>
-rw-r--r--openbb_terminal/stocks/tradinghours/tradinghours_controller.py26
-rw-r--r--openbb_terminal/stocks/tradinghours/tradinghours_helper.py8
2 files changed, 34 insertions, 0 deletions
diff --git a/openbb_terminal/stocks/tradinghours/tradinghours_controller.py b/openbb_terminal/stocks/tradinghours/tradinghours_controller.py
index f893ffedca6..175eff06d28 100644
--- a/openbb_terminal/stocks/tradinghours/tradinghours_controller.py
+++ b/openbb_terminal/stocks/tradinghours/tradinghours_controller.py
@@ -25,6 +25,7 @@ from openbb_terminal.stocks.tradinghours.pandas_market_cal_view import (
from openbb_terminal.stocks.tradinghours.tradinghours_helper import (
get_exchanges_short_names,
get_fd_equities_list,
+ get_fd_etfs_list,
)
logger = logging.getLogger(__name__)
@@ -46,6 +47,7 @@ class TradingHoursController(BaseController):
super().__init__(queue)
self.equities = get_fd_equities_list()
+ self.etfs = get_fd_etfs_list()
self.equity_tickers = sorted(list(self.equities.keys()))
short_names_df = get_exchanges_short_names()
short_names_index = short_names_df.index.values
@@ -71,6 +73,15 @@ class TradingHoursController(BaseController):
self.symbol_market_open = True
else:
self.symbol_market_open = False
+ elif ticker in self.etfs.index:
+ self.symbol = ticker
+ self.symbol_name = self.etfs.loc[ticker]["name"]
+ self.exchange = self.etfs.loc[ticker]["exchange"]
+ open_ex = get_open()
+ if self.exchange in open_ex.index:
+ self.symbol_market_open = True
+ else:
+ self.symbol_market_open = False
else:
console.print(f"The ticker {ticker} was not found in the database.")
@@ -132,6 +143,7 @@ class TradingHoursController(BaseController):
ns_parser = self.parse_known_args_and_warn(parser, other_args)
if ns_parser:
self.symbol = ns_parser.symbol
+
if ns_parser.symbol in self.equities.index:
self.symbol_name = self.equities.loc[self.symbol]["name"]
self.exchange = self.equities.loc[self.symbol]["exchange"]
@@ -146,6 +158,20 @@ class TradingHoursController(BaseController):
f"Name: {self.symbol_name}\n"
f"Market open: {self.symbol_market_open}\n"
)
+ elif ns_parser.symbol in self.etfs.index:
+ self.symbol_name = self.etfs.loc[self.symbol]["name"]
+ self.exchange = self.etfs.loc[self.symbol]["exchange"]
+ open_ex = get_open()
+ if self.exchange in open_ex.index:
+ self.symbol_market_open = True
+ else:
+ self.symbol_market_open = False
+
+ console.print(
+ f"\nSelected symbol\nSymbol: {self.symbol}\n"
+ f"Name: {self.symbol_name}\n"
+ f"Market open: {self.symbol_market_open}\n"
+ )
else:
console.print("[red]Symbol not found on database.[/red]\n")
diff --git a/openbb_terminal/stocks/tradinghours/tradinghours_helper.py b/openbb_terminal/stocks/tradinghours/tradinghours_helper.py
index 76b93774f1b..e141b02c8eb 100644
--- a/openbb_terminal/stocks/tradinghours/tradinghours_helper.py
+++ b/openbb_terminal/stocks/tradinghours/tradinghours_helper.py
@@ -18,6 +18,14 @@ def get_fd_equities_list() -> List:
@log_start_end(log=logger)
+def get_fd_etfs_list() -> List:
+ """Load FD list of etf symbols"""
+ etfs = fd.ETFs().select(exclude_exchanges=False)
+
+ return etfs
+
+
+@log_start_end(log=logger)
def get_exchanges_short_names() -> List:
"""Load FD list of equity symbols."""
shorts = get_all_exchange_short_names()