diff --git a/openbb_terminal/stocks/tradinghours/tradinghours_controller.py b/openbb_terminal/stocks/tradinghours/tradinghours_controller.py index f893ffedca6e..175eff06d283 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.tradinghours_helper import ( get_exchanges_short_names, get_fd_equities_list, + get_fd_etfs_list, ) logger = logging.getLogger(__name__) @@ -46,6 +47,7 @@ def __init__(self, ticker: str = "", queue: Optional[List[str]] = None): 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 @@ def __init__(self, ticker: str = "", queue: Optional[List[str]] = None): 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 @@ def call_symbol(self, other_args: List[str]): 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"] @@ -141,6 +153,20 @@ def call_symbol(self, other_args: List[str]): else: self.symbol_market_open = False # add currency + console.print( + f"\nSelected symbol\nSymbol: {self.symbol}\n" + 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" diff --git a/openbb_terminal/stocks/tradinghours/tradinghours_helper.py b/openbb_terminal/stocks/tradinghours/tradinghours_helper.py index 76b93774f1b8..e141b02c8eb8 100644 --- a/openbb_terminal/stocks/tradinghours/tradinghours_helper.py +++ b/openbb_terminal/stocks/tradinghours/tradinghours_helper.py @@ -17,6 +17,14 @@ def get_fd_equities_list() -> List: return equities +@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."""