def call_hcorr(self, other_args: List[str]): """Process historical correlation command""" parser = argparse.ArgumentParser( add_help=False, formatter_class=argparse.ArgumentDefaultsHelpFormatter, prog="hcorr", description= """ Correlation heatmap based on historical price comparison between similar companies. """, ) parser.add_argument( "-t", "--type", action="store", dest="type_candle", type=str, choices=["o", "h", "l", "c", "a"], default="a", # in case it's adjusted close help= "Candle data to use: o-open, h-high, l-low, c-close, a-adjusted close.", ) parser.add_argument( "-s", "--start", type=valid_date, default=(datetime.now() - timedelta(days=366)).strftime("%Y-%m-%d"), dest="start", help="The starting date (format YYYY-MM-DD) of the stock", ) if other_args and "-" not in other_args[0][0]: other_args.insert(0, "-t") ns_parser = parse_known_args_and_warn( parser, other_args, EXPORT_BOTH_RAW_DATA_AND_FIGURES) if ns_parser: if self.similar and len(self.similar) > 1: yahoo_finance_view.display_correlation( similar_tickers=self.similar, start=ns_parser.start.strftime("%Y-%m-%d"), candle_type=ns_parser.type_candle, ) else: console.print( "Please make sure there are similar tickers selected. \n")
def call_hcorr(self, other_args: List[str]): """Process historical correlation command""" parser = argparse.ArgumentParser( add_help=False, formatter_class=argparse.ArgumentDefaultsHelpFormatter, prog="hcorr", description= """ Correlation heatmap based on historical price comparison between similar companies. """, ) parser.add_argument( "-t", "--type", action="store", dest="type_candle", type=str, choices=["o", "h", "l", "c", "a"], default="a", # in case it's adjusted close help= "Candle data to use: o-open, h-high, l-low, c-close, a-adjusted close.", ) try: ns_parser = parse_known_args_and_warn(parser, other_args) if not ns_parser: return if not self.similar or not self.ticker: print( "Please make sure there are both a loaded ticker and similar tickers selected. \n" ) return yahoo_finance_view.display_correlation( ticker=self.ticker, similar_tickers=self.similar, start=self.start, candle_type=ns_parser.type_candle, ) except Exception as e: print(e, "\n")
def test_display_correlation(mocker): # FORCE SINGLE THREADING yf_download = yahoo_finance_view.yahoo_finance_model.yf.download def mock_yf_download(*args, **kwargs): kwargs["threads"] = False return yf_download(*args, **kwargs) mocker.patch("yfinance.download", side_effect=mock_yf_download) # MOCK VISUALIZE_OUTPUT mocker.patch( target="gamestonk_terminal.helper_classes.TerminalStyle.visualize_output" ) yahoo_finance_view.display_correlation( similar_tickers=["TSLA", "GM"], start=datetime.strptime("2020-12-21", "%Y-%m-%d"), candle_type="o", )
def test_display_correlation(mocker): # FORCE SINGLE THREADING yf_download = yahoo_finance_view.yahoo_finance_model.yf.download def mock_yf_download(*args, **kwargs): kwargs["threads"] = False return yf_download(*args, **kwargs) mocker.patch("yfinance.download", side_effect=mock_yf_download) mock_show = mocker.Mock() mocker.patch("matplotlib.pyplot.show", new=mock_show) yahoo_finance_view.display_correlation( similar_tickers=["TSLA", "GM"], start=datetime.strptime("2020-12-21", "%Y-%m-%d"), candle_type="o", ) mock_show.assert_called_once()