diff --git a/openbb_terminal/stocks/screener/finviz_view.py b/openbb_terminal/stocks/screener/finviz_view.py index 229607979b9..feb16fd9ade 100644 --- a/openbb_terminal/stocks/screener/finviz_view.py +++ b/openbb_terminal/stocks/screener/finviz_view.py @@ -250,4 +250,7 @@ def screener( return list(df_screen.head(n=limit)["Ticker"].values) + console.print( + "The preset selected did not return a sufficient number of tickers. Two or more tickers are needed." + ) return [] diff --git a/openbb_terminal/stocks/screener/screener_controller.py b/openbb_terminal/stocks/screener/screener_controller.py index 56a3da7e9ee..83adec0a975 100644 --- a/openbb_terminal/stocks/screener/screener_controller.py +++ b/openbb_terminal/stocks/screener/screener_controller.py @@ -78,7 +78,7 @@ class ScreenerController(BaseController): """Constructor""" super().__init__(queue) - self.preset = "top_gainers" + self.preset = "top_gainers.ini" self.screen_tickers: List = list() if session and obbff.USE_PROMPT_TOOLKIT: @@ -228,8 +228,12 @@ class ScreenerController(BaseController): parser, other_args, EXPORT_BOTH_RAW_DATA_AND_FIGURES ) if ns_parser: + if self.preset.strip(".ini") in finviz_model.d_signals: + preset = self.preset.strip(".ini") + else: + preset = self.preset self.screen_tickers = yahoofinance_view.historical( - self.preset, + preset, ns_parser.limit, ns_parser.start, ns_parser.type_candle, @@ -370,9 +374,13 @@ class ScreenerController(BaseController): ) if ns_parser: + if self.preset.strip(".ini") in finviz_model.d_signals: + preset = self.preset.strip(".ini") + else: + preset = self.preset sort_map = screener_helper.finviz_map("valuation") self.screen_tickers = finviz_view.screener( - loaded_preset=self.preset, + loaded_preset=preset, data_type="valuation", limit=ns_parser.limit, ascend=ns_parser.reverse, @@ -439,9 +447,13 @@ class ScreenerController(BaseController): ) if ns_parser: + if self.preset.strip(".ini") in finviz_model.d_signals: + preset = self.preset.strip(".ini") + else: + preset = self.preset sort_map = screener_helper.finviz_map("financial") self.screen_tickers = finviz_view.screener( - loaded_preset=self.preset, + loaded_preset=preset, data_type="financial", limit=ns_parser.limit, ascend=ns_parser.reverse, @@ -508,10 +520,13 @@ class ScreenerController(BaseController): ) if ns_parser: - + if self.preset.strip(".ini") in finviz_model.d_signals: + preset = self.preset.strip(".ini") + else: + preset = self.preset sort_map = screener_helper.finviz_map("ownership") self.screen_tickers = finviz_view.screener( - loaded_preset=self.preset, + loaded_preset=preset, data_type="ownership", limit=ns_parser.limit, ascend=ns_parser.reverse, @@ -579,8 +594,12 @@ class ScreenerController(BaseController): sort_map = screener_helper.finviz_map("performance") if ns_parser: + if self.preset.strip(".ini") in finviz_model.d_signals: + preset = self.preset.strip(".ini") + else: + preset = self.preset self.screen_tickers = finviz_view.screener( - loaded_preset=self.preset, + loaded_preset=preset, data_type="performance", limit=ns_parser.limit, ascend=ns_parser.reverse, @@ -646,9 +665,13 @@ class ScreenerController(BaseController): ) if ns_parser: + if self.preset.strip(".ini") in finviz_model.d_signals: + preset = self.preset.strip(".ini") + else: + preset = self.preset sort_map = screener_helper.finviz_map("technical") self.screen_tickers = finviz_view.screener( - loaded_preset=self.preset, + loaded_preset=preset, data_type="technical", limit=ns_parser.limit, ascend=ns_parser.reverse, diff --git a/openbb_terminal/stocks/screener/yahoofinance_model.py b/openbb_terminal/stocks/screener/yahoofinance_model.py index ba2551e0fbc..a00c24d9694 100644 --- a/openbb_terminal/stocks/screener/yahoofinance_model.py +++ b/openbb_terminal/stocks/screener/yahoofinance_model.py @@ -115,7 +115,9 @@ def historical( if l_stocks: if len(l_stocks) < 2: - console.print("Please select two or more tickers.\n") + console.print( + "The preset selected did not return a sufficient number of tickers. Two or more tickers are needed." + ) return pd.DataFrame(), [], False if len(l_stocks) > limit: random.shuffle(l_stocks) @@ -150,5 +152,10 @@ def historical( columns=final_screener.columns, index=final_screener.index, ) + else: + console.print( + "The preset selected did not return a sufficient number of tickers. Two or more tickers are needed." + ) + return pd.DataFrame(), [], False return final_screener, l_stocks, limit_random_stocks diff --git a/tests/openbb_terminal/stocks/screener/txt/test_screener_controller/test_print_help.txt b/tests/openbb_terminal/stocks/screener/txt/test_screener_controller/test_print_help.txt index f7eb89c83ac..e5f50122d35 100644 --- a/tests/openbb_terminal/stocks/screener/txt/test_screener_controller/test_print_help.txt +++ b/tests/openbb_terminal/stocks/screener/txt/test_screener_controller/test_print_help.txt @@ -1,7 +1,7 @@ view view available presets (defaults and customs) set set one of the available presets -Preset: top_gainers +Preset: top_gainers.ini historical view historical price [YahooFinance] overview overview (e.g. Sector, Industry, Market Cap, Volume) [Finviz]