def call_raw(self, other_args: List[str]): parser = argparse.ArgumentParser( formatter_class=argparse.ArgumentDefaultsHelpFormatter, add_help=False, prog="raw", description=""" Print raw data to console """, ) parser.add_argument( "-n", "--num", help="Number to show", type=check_positive, default=20, dest="num", ) parser.add_argument( "-d", "--descend", action="store_true", default=False, dest="descend", help="Sort in descending order", ) ns_parser = parse_known_args_and_warn( parser, other_args, export_allowed=EXPORT_ONLY_RAW_DATA_ALLOWED ) if ns_parser: qa_view.display_raw( self.stock[self.target], num=ns_parser.num, sort="", des=ns_parser.descend, export=ns_parser.export, )
def call_candle(self, other_args: List[str]): """Process candle command""" parser = argparse.ArgumentParser( add_help=False, formatter_class=argparse.ArgumentDefaultsHelpFormatter, prog="candle", description="Shows historic data for a stock", ) parser.add_argument( "-m", "--matplotlib", dest="matplotlib", action="store_true", default=False, help="Flag to show matplotlib instead of interactive plot using plotly.", ) parser.add_argument( "--sort", choices=[ "AdjClose", "Open", "Close", "High", "Low", "Volume", "Returns", "LogRet", ], default="", type=str, dest="sort", help="Choose a column to sort by", ) parser.add_argument( "-d", "--descending", action="store_false", dest="descending", default=True, help="Sort selected column descending", ) parser.add_argument( "--raw", action="store_true", dest="raw", default=False, help="Shows raw data instead of chart", ) parser.add_argument( "-n", "--num", type=check_positive, help="Number to show if raw selected", dest="num", default=20, ) ns_parser = parse_known_args_and_warn( parser, other_args, EXPORT_ONLY_RAW_DATA_ALLOWED ) if ns_parser: if self.ticker: export_data( ns_parser.export, os.path.join( os.path.dirname(os.path.abspath(__file__)), "raw_data" ), f"{self.ticker}", self.stock, ) if ns_parser.raw: qa_view.display_raw( df=self.stock, sort=ns_parser.sort, des=ns_parser.descending, num=ns_parser.num, ) else: data = stocks_helper.process_candle(self.stock) stocks_helper.display_candle( s_ticker=self.ticker, df_stock=data, use_matplotlib=ns_parser.matplotlib, intraday=self.interval != "1440min", ) else: print("No ticker loaded. First use `load {ticker}`\n")
def call_candle(self, other_args: List[str]): """Process candle command""" parser = argparse.ArgumentParser( add_help=False, formatter_class=argparse.ArgumentDefaultsHelpFormatter, prog="candle", description="Shows historic data for a stock", ) parser.add_argument( "-p", "--plotly", dest="plotly", action="store_false", default=True, help="Flag to show interactive plotly chart.", ) parser.add_argument( "--sort", choices=[ "AdjClose", "Open", "Close", "High", "Low", "Volume", "Returns", "LogRet", ], default="", type=str, dest="sort", help="Choose a column to sort by", ) parser.add_argument( "-d", "--descending", action="store_false", dest="descending", default=True, help="Sort selected column descending", ) parser.add_argument( "--raw", action="store_true", dest="raw", default=False, help="Shows raw data instead of chart", ) parser.add_argument( "-n", "--num", type=check_positive, help="Number to show if raw selected", dest="num", default=20, ) parser.add_argument( "-t", "--trend", action="store_true", default=False, help="Flag to add high and low trends to candle.", dest="trendlines", ) parser.add_argument( "--ma", dest="mov_avg", type=str, help= "Add moving average in number of days to plot and separate by a comma. Example: 20,30,50", default=None, ) ns_parser = parse_known_args_and_warn(parser, other_args, EXPORT_ONLY_RAW_DATA_ALLOWED) if ns_parser: if self.ticker: export_data( ns_parser.export, os.path.join(os.path.dirname(os.path.abspath(__file__)), "raw_data"), f"{self.ticker}", self.stock, ) if ns_parser.raw: qa_view.display_raw( df=self.stock, sort=ns_parser.sort, des=ns_parser.descending, num=ns_parser.num, ) else: data = stocks_helper.process_candle(self.stock) mov_avgs = [] if ns_parser.mov_avg: mov_list = (num for num in ns_parser.mov_avg.split(",")) for num in mov_list: try: mov_avgs.append(int(num)) except ValueError: console.print( f"{num} is not a valid moving average, must be integer" ) stocks_helper.display_candle( s_ticker=self.ticker, df_stock=data, use_matplotlib=ns_parser.plotly, intraday=self.interval != "1440min", add_trend=ns_parser.trendlines, ma=mov_avgs, ) else: console.print("No ticker loaded. First use `load {ticker}`\n")
def call_candle(self, other_args: List[str]): """Process candle command""" parser = argparse.ArgumentParser( add_help=False, formatter_class=argparse.ArgumentDefaultsHelpFormatter, prog="candle", description="Shows historic data for an ETF", ) parser.add_argument( "-p", "--plotly", dest="plotly", action="store_false", default=True, help="Flag to show interactive plotly chart.", ) parser.add_argument( "--sort", choices=[ "AdjClose", "Open", "Close", "High", "Low", "Volume", "Returns", "LogRet", ], default="", type=str, dest="sort", help="Choose a column to sort by", ) parser.add_argument( "-d", "--descending", action="store_false", dest="descending", default=True, help="Sort selected column descending", ) parser.add_argument( "--raw", action="store_true", dest="raw", default=False, help="Shows raw data instead of chart", ) parser.add_argument( "-n", "--num", type=check_positive, help="Number to show if raw selected", dest="num", default=20, ) parser.add_argument( "-t", "--trend", action="store_true", default=False, help="Flag to add high and low trends to candle.", dest="trendlines", ) parser.add_argument( "--ma", dest="mov_avg", type=str, help="Add moving averaged to plot", default="", ) ns_parser = parse_known_args_and_warn(parser, other_args, EXPORT_ONLY_RAW_DATA_ALLOWED) if ns_parser: if self.etf_name: export_data( ns_parser.export, os.path.join(os.path.dirname(os.path.abspath(__file__)), "raw_data"), f"{self.etf_name}", self.etf_data, ) if ns_parser.raw: qa_view.display_raw( df=self.etf_data, sort=ns_parser.sort, des=ns_parser.descending, num=ns_parser.num, ) else: data = stocks_helper.process_candle(self.etf_data) mov_avgs = (tuple( int(num) for num in ns_parser.mov_avg.split(",")) if ns_parser.mov_avg else None) stocks_helper.display_candle( s_ticker=self.etf_name, df_stock=data, use_matplotlib=ns_parser.plotly, intraday=False, add_trend=ns_parser.trendlines, ma=mov_avgs, asset_type="ETF", ) else: console.print("No ticker loaded. First use `load {ticker}`\n")
def call_candle(self, other_args: List[str]): """Process candle command""" parser = argparse.ArgumentParser( add_help=False, formatter_class=argparse.ArgumentDefaultsHelpFormatter, prog="data", description="Shows historic data for a stock", ) parser.add_argument( "--export", choices=["csv", "json", "xlsx"], default="", type=str, dest="export", help="Export dataframe data to csv,json,xlsx file", ) parser.add_argument( "-s", "--sort", choices=[ "AdjClose", "Open", "Close", "High", "Low", "Volume", "Returns", "LogRet", ], default="", type=str, dest="sort", help="Choose a column to sort by", ) parser.add_argument( "-d", "--descending", action="store_false", dest="descending", default=True, help="Sort selected column descending", ) parser.add_argument( "--raw", action="store_true", dest="raw", default=False, help="Shows raw data instead of chart", ) try: ns_parser = parse_known_args_and_warn(parser, other_args) if not ns_parser: return if ns_parser.raw: qa_view.display_raw( self.stock, ns_parser.export, ns_parser.sort, ns_parser.descending, ) else: candle( self.ticker + "." + self.suffix if self.suffix else self.ticker, other_args, ) except Exception as e: print(e, "\n")