Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hotfix/th etfs #5959

Merged
merged 12 commits into from
Jan 22, 2024
26 changes: 26 additions & 0 deletions openbb_terminal/stocks/tradinghours/tradinghours_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -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__)
Expand All @@ -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
Expand All @@ -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.")

Expand Down Expand Up @@ -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"]
Expand All @@ -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"
Expand Down
8 changes: 8 additions & 0 deletions openbb_terminal/stocks/tradinghours/tradinghours_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -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."""
Expand Down
Loading