From 6c79415767e9a40fc23cd44cabbbea01a9464b20 Mon Sep 17 00:00:00 2001 From: Aarni Koskela Date: Thu, 25 Feb 2021 11:01:14 +0200 Subject: [PATCH] Catch exceptions from subprograms in menus --- discovery/disc_menu.py | 91 +++++++++--------- due_diligence/dd_menu.py | 79 +++++++-------- fundamental_analysis/fa_menu.py | 149 +++++++++++++++-------------- prediction_techniques/pred_menu.py | 81 ++++++++-------- sentiment/sen_menu.py | 95 +++++++++--------- technical_analysis/ta_menu.py | 84 ++++++++-------- 6 files changed, 300 insertions(+), 279 deletions(-) diff --git a/discovery/disc_menu.py b/discovery/disc_menu.py index 5e2c0e64d03..5d5fb260e52 100644 --- a/discovery/disc_menu.py +++ b/discovery/disc_menu.py @@ -58,57 +58,60 @@ def disc_menu(): except SystemExit: print("The command selected doesn't exist\n") continue - - if ns_known_args.cmd == 'help': - print_discovery() - elif ns_known_args.cmd == 'q': - # Just leave the DISC menu - return False + try: + if ns_known_args.cmd == 'help': + print_discovery() - elif ns_known_args.cmd == 'quit': - # Abandon the program - return True + elif ns_known_args.cmd == 'q': + # Just leave the DISC menu + return False - # --------------------------------------------------- FINVIZ --------------------------------------------------- - elif ns_known_args.cmd == 'map': - finviz_api.map_sp500(l_args) - - # ------------------------------------------------ ALPHA VANTAGE ----------------------------------------------- - elif ns_known_args.cmd == 'sectors': - alpha_vantage_api.sectors(l_args) - - # ------------------------------------------------ YAHOO FINANCE ------------------------------------------------ - elif ns_known_args.cmd == 'gainers': - yahoo_finance_api.gainers(l_args) + elif ns_known_args.cmd == 'quit': + # Abandon the program + return True - # -------------------------------------------------- SPACHERO -------------------------------------------------- - elif ns_known_args.cmd == 'spachero': - spachero_api.spachero(l_args) + # --------------------------------------------------- FINVIZ --------------------------------------------------- + elif ns_known_args.cmd == 'map': + finviz_api.map_sp500(l_args) - # -------------------------------------------------- UNUSUAL WHALES -------------------------------------------------- - elif ns_known_args.cmd == 'uwhales': - unusual_whales_api.unusual_whales(l_args) + # ------------------------------------------------ ALPHA VANTAGE ----------------------------------------------- + elif ns_known_args.cmd == 'sectors': + alpha_vantage_api.sectors(l_args) - # --------------------------------------------------- FIDELITY --------------------------------------------------- - elif ns_known_args.cmd == 'orders': - fidelity_api.orders(l_args) + # ------------------------------------------------ YAHOO FINANCE ------------------------------------------------ + elif ns_known_args.cmd == 'gainers': + yahoo_finance_api.gainers(l_args) - # ------------------------------------------------ SIMPLY WALL ST ------------------------------------------------ - elif ns_known_args.cmd == 'simply_wallst': - simply_wallst_api.simply_wallst(l_args) + # -------------------------------------------------- SPACHERO -------------------------------------------------- + elif ns_known_args.cmd == 'spachero': + spachero_api.spachero(l_args) - # ------------------------------------------------ SEEKING ALPHA ------------------------------------------------ - elif ns_known_args.cmd == 'up_earnings': - seeking_alpha_api.earnings_release_dates(l_args) + # -------------------------------------------------- UNUSUAL WHALES -------------------------------------------------- + elif ns_known_args.cmd == 'uwhales': + unusual_whales_api.unusual_whales(l_args) - # ------------------------------------------------ SHORT_INTEREST ------------------------------------------------ - elif ns_known_args.cmd == 'high_short': - short_interest_api.high_short_interest(l_args) - - elif ns_known_args.cmd == 'low_float': - short_interest_api.low_float(l_args) + # --------------------------------------------------- FIDELITY --------------------------------------------------- + elif ns_known_args.cmd == 'orders': + fidelity_api.orders(l_args) - # ------------------------------------------------------------------------------------------------------------ - else: - print("Command not recognized!") + # ------------------------------------------------ SIMPLY WALL ST ------------------------------------------------ + elif ns_known_args.cmd == 'simply_wallst': + simply_wallst_api.simply_wallst(l_args) + + # ------------------------------------------------ SEEKING ALPHA ------------------------------------------------ + elif ns_known_args.cmd == 'up_earnings': + seeking_alpha_api.earnings_release_dates(l_args) + + # ------------------------------------------------ SHORT_INTEREST ------------------------------------------------ + elif ns_known_args.cmd == 'high_short': + short_interest_api.high_short_interest(l_args) + + elif ns_known_args.cmd == 'low_float': + short_interest_api.low_float(l_args) + + # ------------------------------------------------------------------------------------------------------------ + else: + print("Command not recognized!") + except Exception as exc: + print("ERROR:", exc) diff --git a/due_diligence/dd_menu.py b/due_diligence/dd_menu.py index 118faec9b5c..564eee92a9b 100644 --- a/due_diligence/dd_menu.py +++ b/due_diligence/dd_menu.py @@ -67,55 +67,58 @@ def dd_menu(df_stock, s_ticker, s_start, s_interval): print("The command selected doesn't exist\n") continue - if ns_known_args.cmd == 'help': - print_due_diligence(s_ticker, s_start, s_interval) + try: + if ns_known_args.cmd == 'help': + print_due_diligence(s_ticker, s_start, s_interval) - elif ns_known_args.cmd == 'q': - # Just leave the DD menu - return False + elif ns_known_args.cmd == 'q': + # Just leave the DD menu + return False - elif ns_known_args.cmd == 'quit': - # Abandon the program - return True + elif ns_known_args.cmd == 'quit': + # Abandon the program + return True - # REDDIT API - elif ns_known_args.cmd == 'red': - r_api.due_diligence(l_args, s_ticker) + # REDDIT API + elif ns_known_args.cmd == 'red': + r_api.due_diligence(l_args, s_ticker) - # FINVIZ API - elif ns_known_args.cmd == 'insider': - fvz_api.insider(l_args, s_ticker) + # FINVIZ API + elif ns_known_args.cmd == 'insider': + fvz_api.insider(l_args, s_ticker) - elif ns_known_args.cmd == 'news': - fvz_api.news(l_args, s_ticker) + elif ns_known_args.cmd == 'news': + fvz_api.news(l_args, s_ticker) - elif ns_known_args.cmd == 'analyst': - fvz_api.analyst(l_args, s_ticker) + elif ns_known_args.cmd == 'analyst': + fvz_api.analyst(l_args, s_ticker) - # BUSINESS INSIDER API - elif ns_known_args.cmd == 'pt': - bi_api.price_target_from_analysts(l_args, df_stock, s_ticker, s_start, s_interval) + # BUSINESS INSIDER API + elif ns_known_args.cmd == 'pt': + bi_api.price_target_from_analysts(l_args, df_stock, s_ticker, s_start, s_interval) - elif ns_known_args.cmd == 'est': - bi_api.estimates(l_args, s_ticker) + elif ns_known_args.cmd == 'est': + bi_api.estimates(l_args, s_ticker) - elif ns_known_args.cmd == 'ins': - bi_api.insider_activity(l_args, df_stock, s_ticker, s_start, s_interval) + elif ns_known_args.cmd == 'ins': + bi_api.insider_activity(l_args, df_stock, s_ticker, s_start, s_interval) - # FINANCIAL MODELING PREP API - elif ns_known_args.cmd == 'rating': - fmp_api.rating(l_args, s_ticker) + # FINANCIAL MODELING PREP API + elif ns_known_args.cmd == 'rating': + fmp_api.rating(l_args, s_ticker) - # MARKET WATCH API - elif ns_known_args.cmd == 'sec': - mw_api.sec_fillings(l_args, s_ticker) + # MARKET WATCH API + elif ns_known_args.cmd == 'sec': + mw_api.sec_fillings(l_args, s_ticker) - elif ns_known_args.cmd == 'warnings': - mw_api.sean_seah_warnings(l_args, s_ticker) + elif ns_known_args.cmd == 'warnings': + mw_api.sean_seah_warnings(l_args, s_ticker) - # QUANDL API - elif ns_known_args.cmd == 'short': - q_api.short_interest(l_args, s_ticker, s_start) + # QUANDL API + elif ns_known_args.cmd == 'short': + q_api.short_interest(l_args, s_ticker, s_start) - else: - print("Command not recognized!") + else: + print("Command not recognized!") + except Exception as exc: + print("ERROR:", exc) diff --git a/fundamental_analysis/fa_menu.py b/fundamental_analysis/fa_menu.py index 6631712d1e2..60a029a1860 100644 --- a/fundamental_analysis/fa_menu.py +++ b/fundamental_analysis/fa_menu.py @@ -116,106 +116,109 @@ def fa_menu(s_ticker, s_start, s_interval): #if ns_known_args.cmd == 'info': # info(l_args, s_ticker) - if ns_known_args.cmd == 'help': - print_fundamental_analysis(s_ticker, s_start, s_interval) + try: + if ns_known_args.cmd == 'help': + print_fundamental_analysis(s_ticker, s_start, s_interval) - elif ns_known_args.cmd == 'q': - # Just leave the FA menu - return False + elif ns_known_args.cmd == 'q': + # Just leave the FA menu + return False - elif ns_known_args.cmd == 'quit': - # Abandon the program - return True + elif ns_known_args.cmd == 'quit': + # Abandon the program + return True - # BUSINESS INSIDER API - elif ns_known_args.cmd == 'mgmt': - bi_api.management(l_args, s_ticker) + # BUSINESS INSIDER API + elif ns_known_args.cmd == 'mgmt': + bi_api.management(l_args, s_ticker) - # FINVIZ API - elif ns_known_args.cmd == 'screener': - fvz_api.screener(l_args, s_ticker) + # FINVIZ API + elif ns_known_args.cmd == 'screener': + fvz_api.screener(l_args, s_ticker) - # MARKET WATCH API - elif ns_known_args.cmd == 'income': - mw_api.income(l_args, s_ticker) + # MARKET WATCH API + elif ns_known_args.cmd == 'income': + mw_api.income(l_args, s_ticker) - elif ns_known_args.cmd == 'assets': - mw_api.assets(l_args, s_ticker) + elif ns_known_args.cmd == 'assets': + mw_api.assets(l_args, s_ticker) - elif ns_known_args.cmd == 'liabilities': - mw_api.liabilities(l_args, s_ticker) + elif ns_known_args.cmd == 'liabilities': + mw_api.liabilities(l_args, s_ticker) - elif ns_known_args.cmd == 'operating': - mw_api.operating(l_args, s_ticker) + elif ns_known_args.cmd == 'operating': + mw_api.operating(l_args, s_ticker) - elif ns_known_args.cmd == 'investing': - mw_api.investing(l_args, s_ticker) + elif ns_known_args.cmd == 'investing': + mw_api.investing(l_args, s_ticker) - elif ns_known_args.cmd == 'financing': - mw_api.financing(l_args, s_ticker) + elif ns_known_args.cmd == 'financing': + mw_api.financing(l_args, s_ticker) - # YAHOO FINANCE API - elif ns_known_args.cmd == 'info': - yf_api.info(l_args, s_ticker) + # YAHOO FINANCE API + elif ns_known_args.cmd == 'info': + yf_api.info(l_args, s_ticker) - elif ns_known_args.cmd == 'shrs': - yf_api.shareholders(l_args, s_ticker) + elif ns_known_args.cmd == 'shrs': + yf_api.shareholders(l_args, s_ticker) - elif ns_known_args.cmd == 'sust': - yf_api.sustainability(l_args, s_ticker) + elif ns_known_args.cmd == 'sust': + yf_api.sustainability(l_args, s_ticker) - elif ns_known_args.cmd == 'cal': - yf_api.calendar_earnings(l_args, s_ticker) + elif ns_known_args.cmd == 'cal': + yf_api.calendar_earnings(l_args, s_ticker) - # ALPHA VANTAGE API - elif ns_known_args.cmd == 'overview': - av_api.overview(l_args, s_ticker) + # ALPHA VANTAGE API + elif ns_known_args.cmd == 'overview': + av_api.overview(l_args, s_ticker) - elif ns_known_args.cmd == 'incom': - av_api.income_statement(l_args, s_ticker) + elif ns_known_args.cmd == 'incom': + av_api.income_statement(l_args, s_ticker) - elif ns_known_args.cmd == 'balance': - av_api.balance_sheet(l_args, s_ticker) + elif ns_known_args.cmd == 'balance': + av_api.balance_sheet(l_args, s_ticker) - elif ns_known_args.cmd == 'cash': - av_api.cash_flow(l_args, s_ticker) + elif ns_known_args.cmd == 'cash': + av_api.cash_flow(l_args, s_ticker) - elif ns_known_args.cmd == 'earnings': - av_api.earnings(l_args, s_ticker) + elif ns_known_args.cmd == 'earnings': + av_api.earnings(l_args, s_ticker) - # FINANCIAL MODELING PREP API - # Details: - elif ns_known_args.cmd == 'profile': - fmp_api.profile(l_args, s_ticker) + # FINANCIAL MODELING PREP API + # Details: + elif ns_known_args.cmd == 'profile': + fmp_api.profile(l_args, s_ticker) - elif ns_known_args.cmd == 'quote': - fmp_api.quote(l_args, s_ticker) + elif ns_known_args.cmd == 'quote': + fmp_api.quote(l_args, s_ticker) - elif ns_known_args.cmd == 'enterprise': - fmp_api.enterprise(l_args, s_ticker) + elif ns_known_args.cmd == 'enterprise': + fmp_api.enterprise(l_args, s_ticker) - elif ns_known_args.cmd == 'dcf': - fmp_api.discounted_cash_flow(l_args, s_ticker) + elif ns_known_args.cmd == 'dcf': + fmp_api.discounted_cash_flow(l_args, s_ticker) - # Financial statement: - elif ns_known_args.cmd == 'inc': - fmp_api.income_statement(l_args, s_ticker) + # Financial statement: + elif ns_known_args.cmd == 'inc': + fmp_api.income_statement(l_args, s_ticker) - elif ns_known_args.cmd == 'bal': - fmp_api.balance_sheet(l_args, s_ticker) + elif ns_known_args.cmd == 'bal': + fmp_api.balance_sheet(l_args, s_ticker) - elif ns_known_args.cmd == 'cashf': - fmp_api.cash_flow(l_args, s_ticker) + elif ns_known_args.cmd == 'cashf': + fmp_api.cash_flow(l_args, s_ticker) - # Ratios: - elif ns_known_args.cmd == 'metrics': - fmp_api.key_metrics(l_args, s_ticker) + # Ratios: + elif ns_known_args.cmd == 'metrics': + fmp_api.key_metrics(l_args, s_ticker) - elif ns_known_args.cmd == 'ratios': - fmp_api.financial_ratios(l_args, s_ticker) + elif ns_known_args.cmd == 'ratios': + fmp_api.financial_ratios(l_args, s_ticker) - elif ns_known_args.cmd == 'growth': - fmp_api.financial_statement_growth(l_args, s_ticker) + elif ns_known_args.cmd == 'growth': + fmp_api.financial_statement_growth(l_args, s_ticker) - else: - print("Command not recognized!") + else: + print("Command not recognized!") + except Exception as exc: + print("ERROR:", exc) diff --git a/prediction_techniques/pred_menu.py b/prediction_techniques/pred_menu.py index 568cb791a5d..ee43a8b4b1e 100644 --- a/prediction_techniques/pred_menu.py +++ b/prediction_techniques/pred_menu.py @@ -66,56 +66,59 @@ def pred_menu(df_stock, s_ticker, s_start, s_interval): print("The command selected doesn't exist\n") continue - if ns_known_args.cmd == 'help': - print_prediction(s_ticker, s_start, s_interval) + try: + if ns_known_args.cmd == 'help': + print_prediction(s_ticker, s_start, s_interval) - elif ns_known_args.cmd == 'q': - # Just leave the FA menu - return False + elif ns_known_args.cmd == 'q': + # Just leave the FA menu + return False - elif ns_known_args.cmd == 'quit': - # Abandon the program - return True + elif ns_known_args.cmd == 'quit': + # Abandon the program + return True - # ------------------------------------------ SIMPLE MOVING AVERAGE ------------------------------------------ - elif ns_known_args.cmd == 'sma': - sma.simple_moving_average(l_args, s_ticker, s_interval, df_stock) + # ------------------------------------------ SIMPLE MOVING AVERAGE ------------------------------------------ + elif ns_known_args.cmd == 'sma': + sma.simple_moving_average(l_args, s_ticker, s_interval, df_stock) - # ------------------------------------------- k NEAREST NEIGHBORS ------------------------------------------ - elif ns_known_args.cmd == 'knn': - knn.k_nearest_neighbors(l_args, s_ticker, s_interval, df_stock) + # ------------------------------------------- k NEAREST NEIGHBORS ------------------------------------------ + elif ns_known_args.cmd == 'knn': + knn.k_nearest_neighbors(l_args, s_ticker, s_interval, df_stock) - # ----------------------------------------------- REGRESSION ------------------------------------------------- - elif ns_known_args.cmd == 'linear': - regression.regression(l_args, s_ticker, s_interval, df_stock, regression.LINEAR) + # ----------------------------------------------- REGRESSION ------------------------------------------------- + elif ns_known_args.cmd == 'linear': + regression.regression(l_args, s_ticker, s_interval, df_stock, regression.LINEAR) - elif ns_known_args.cmd == 'quadratic': - regression.regression(l_args, s_ticker, s_interval, df_stock, regression.QUADRATIC) + elif ns_known_args.cmd == 'quadratic': + regression.regression(l_args, s_ticker, s_interval, df_stock, regression.QUADRATIC) - elif ns_known_args.cmd == 'cubic': - regression.regression(l_args, s_ticker, s_interval, df_stock, regression.CUBIC) + elif ns_known_args.cmd == 'cubic': + regression.regression(l_args, s_ticker, s_interval, df_stock, regression.CUBIC) - elif ns_known_args.cmd == 'regression': - regression.regression(l_args, s_ticker, s_interval, df_stock, regression.USER_INPUT) + elif ns_known_args.cmd == 'regression': + regression.regression(l_args, s_ticker, s_interval, df_stock, regression.USER_INPUT) - # ------------------------------------------------- ARIMA ------------------------------------------------- - elif ns_known_args.cmd == 'arima': - arima.arima(l_args, s_ticker, s_interval, df_stock) + # ------------------------------------------------- ARIMA ------------------------------------------------- + elif ns_known_args.cmd == 'arima': + arima.arima(l_args, s_ticker, s_interval, df_stock) - # ------------------------------------------------ FBPROPHET ------------------------------------------------ - elif ns_known_args.cmd == 'prophet': - fbprophet.fbprophet(l_args, s_ticker, s_interval, df_stock) + # ------------------------------------------------ FBPROPHET ------------------------------------------------ + elif ns_known_args.cmd == 'prophet': + fbprophet.fbprophet(l_args, s_ticker, s_interval, df_stock) - # ---------------------------------------------- NEURAL NETWORK ---------------------------------------------- - elif ns_known_args.cmd == 'mlp': - neural_networks.mlp(l_args, s_ticker, s_interval, df_stock) + # ---------------------------------------------- NEURAL NETWORK ---------------------------------------------- + elif ns_known_args.cmd == 'mlp': + neural_networks.mlp(l_args, s_ticker, s_interval, df_stock) - elif ns_known_args.cmd == 'rnn': - neural_networks.rnn(l_args, s_ticker, s_interval, df_stock) + elif ns_known_args.cmd == 'rnn': + neural_networks.rnn(l_args, s_ticker, s_interval, df_stock) - elif ns_known_args.cmd == 'lstm': - neural_networks.lstm(l_args, s_ticker, s_interval, df_stock) + elif ns_known_args.cmd == 'lstm': + neural_networks.lstm(l_args, s_ticker, s_interval, df_stock) - # ------------------------------------------------------------------------------------------------------------ - else: - print("Command not recognized!") + # ------------------------------------------------------------------------------------------------------------ + else: + print("Command not recognized!") + except Exception as exc: + print("ERROR:", exc) diff --git a/sentiment/sen_menu.py b/sentiment/sen_menu.py index 3f9a16e3a04..b7df2a50ea2 100644 --- a/sentiment/sen_menu.py +++ b/sentiment/sen_menu.py @@ -68,66 +68,71 @@ def sen_menu(s_ticker, s_start): print("The command selected doesn't exist\n") continue - if ns_known_args.cmd == 'help': - print_sentiment() + try: - elif ns_known_args.cmd == 'q': - # Just leave the DISC menu - return False - elif ns_known_args.cmd == 'quit': - # Abandon the program - return True + if ns_known_args.cmd == 'help': + print_sentiment() - # ---------------------------------------------------- REDDIT --------------------------------------------------- - elif ns_known_args.cmd == 'watchlist': - reddit_api.watchlist(l_args) + elif ns_known_args.cmd == 'q': + # Just leave the DISC menu + return False - elif ns_known_args.cmd == 'spac': - reddit_api.spac(l_args) + elif ns_known_args.cmd == 'quit': + # Abandon the program + return True - elif ns_known_args.cmd == 'spac_c': - reddit_api.spac_community(l_args) + # ---------------------------------------------------- REDDIT --------------------------------------------------- + elif ns_known_args.cmd == 'watchlist': + reddit_api.watchlist(l_args) - elif ns_known_args.cmd == 'wsb': - reddit_api.wsb_community(l_args) + elif ns_known_args.cmd == 'spac': + reddit_api.spac(l_args) - elif ns_known_args.cmd == 'popular': - reddit_api.popular_tickers(l_args) + elif ns_known_args.cmd == 'spac_c': + reddit_api.spac_community(l_args) - # ---------------------------------------------------- STOCKTWITS --------------------------------------------------- - elif ns_known_args.cmd == 'bullbear': - stocktwits_api.bullbear(l_args, s_ticker) + elif ns_known_args.cmd == 'wsb': + reddit_api.wsb_community(l_args) - elif ns_known_args.cmd == 'messages': - stocktwits_api.messages(l_args, s_ticker) + elif ns_known_args.cmd == 'popular': + reddit_api.popular_tickers(l_args) - elif ns_known_args.cmd == 'trending': - stocktwits_api.trending(l_args) + # ---------------------------------------------------- STOCKTWITS --------------------------------------------------- + elif ns_known_args.cmd == 'bullbear': + stocktwits_api.bullbear(l_args, s_ticker) - elif ns_known_args.cmd == 'stalker': - stocktwits_api.stalker(l_args) + elif ns_known_args.cmd == 'messages': + stocktwits_api.messages(l_args, s_ticker) - # ----------------------------------------------------- TWITTER --------------------------------------------------- - elif ns_known_args.cmd == 'infer': - twitter_api.inference(l_args, s_ticker) + elif ns_known_args.cmd == 'trending': + stocktwits_api.trending(l_args) - elif ns_known_args.cmd == 'sentiment': - twitter_api.sentiment(l_args, s_ticker) + elif ns_known_args.cmd == 'stalker': + stocktwits_api.stalker(l_args) - # ----------------------------------------------------- GOOGLE --------------------------------------------------- - elif ns_known_args.cmd == 'mentions': - google_api.mentions(l_args, s_ticker, s_start) + # ----------------------------------------------------- TWITTER --------------------------------------------------- + elif ns_known_args.cmd == 'infer': + twitter_api.inference(l_args, s_ticker) - elif ns_known_args.cmd == 'regions': - google_api.regions(l_args, s_ticker) + elif ns_known_args.cmd == 'sentiment': + twitter_api.sentiment(l_args, s_ticker) - elif ns_known_args.cmd == 'queries': - google_api.queries(l_args, s_ticker) + # ----------------------------------------------------- GOOGLE --------------------------------------------------- + elif ns_known_args.cmd == 'mentions': + google_api.mentions(l_args, s_ticker, s_start) - elif ns_known_args.cmd == 'rise': - google_api.rise(l_args, s_ticker) + elif ns_known_args.cmd == 'regions': + google_api.regions(l_args, s_ticker) - # ------------------------------------------------------------------------------------------------------------ - else: - print("Command not recognized!") + elif ns_known_args.cmd == 'queries': + google_api.queries(l_args, s_ticker) + + elif ns_known_args.cmd == 'rise': + google_api.rise(l_args, s_ticker) + + # ------------------------------------------------------------------------------------------------------------ + else: + print("Command not recognized!") + except Exception as exc: + print("ERROR:", exc) diff --git a/technical_analysis/ta_menu.py b/technical_analysis/ta_menu.py index 207966e6f7b..0bed1a0fa95 100644 --- a/technical_analysis/ta_menu.py +++ b/technical_analysis/ta_menu.py @@ -69,58 +69,62 @@ def ta_menu(df_stock, s_ticker, s_start, s_interval): print("The command selected doesn't exist\n") continue - if ns_known_args.cmd == 'help': - print_technical_analysis(s_ticker, s_start, s_interval) + try: - elif ns_known_args.cmd == 'q': - # Just leave the FA menu - return False + if ns_known_args.cmd == 'help': + print_technical_analysis(s_ticker, s_start, s_interval) - elif ns_known_args.cmd == 'quit': - # Abandon the program - return True + elif ns_known_args.cmd == 'q': + # Just leave the FA menu + return False - # -------------------------------------------------- OVERLAP -------------------------------------------------- - elif ns_known_args.cmd == 'ema': - ta_overlap.ema(l_args, s_ticker, s_interval, df_stock) + elif ns_known_args.cmd == 'quit': + # Abandon the program + return True - elif ns_known_args.cmd == 'sma': - ta_overlap.sma(l_args, s_ticker, s_interval, df_stock) + # -------------------------------------------------- OVERLAP -------------------------------------------------- + elif ns_known_args.cmd == 'ema': + ta_overlap.ema(l_args, s_ticker, s_interval, df_stock) - elif ns_known_args.cmd == 'vwap': - ta_overlap.vwap(l_args, s_ticker, s_interval, df_stock) + elif ns_known_args.cmd == 'sma': + ta_overlap.sma(l_args, s_ticker, s_interval, df_stock) - # --------------------------------------------------- MOMENTUM --------------------------------------------------- - elif ns_known_args.cmd == 'cci': - ta_momentum.cci(l_args, s_ticker, s_interval, df_stock) + elif ns_known_args.cmd == 'vwap': + ta_overlap.vwap(l_args, s_ticker, s_interval, df_stock) - elif ns_known_args.cmd == 'macd': - ta_momentum.macd(l_args, s_ticker, s_interval, df_stock) + # --------------------------------------------------- MOMENTUM --------------------------------------------------- + elif ns_known_args.cmd == 'cci': + ta_momentum.cci(l_args, s_ticker, s_interval, df_stock) - elif ns_known_args.cmd == 'rsi': - ta_momentum.rsi(l_args, s_ticker, s_interval, df_stock) + elif ns_known_args.cmd == 'macd': + ta_momentum.macd(l_args, s_ticker, s_interval, df_stock) - elif ns_known_args.cmd == 'stoch': - ta_momentum.stoch(l_args, s_ticker, s_interval, df_stock) + elif ns_known_args.cmd == 'rsi': + ta_momentum.rsi(l_args, s_ticker, s_interval, df_stock) - # ---------------------------------------------------- TREND ---------------------------------------------------- - elif ns_known_args.cmd == 'adx': - ta_trend.adx(l_args, s_ticker, s_interval, df_stock) + elif ns_known_args.cmd == 'stoch': + ta_momentum.stoch(l_args, s_ticker, s_interval, df_stock) - elif ns_known_args.cmd == 'aroon': - ta_trend.aroon(l_args, s_ticker, s_interval, df_stock) + # ---------------------------------------------------- TREND ---------------------------------------------------- + elif ns_known_args.cmd == 'adx': + ta_trend.adx(l_args, s_ticker, s_interval, df_stock) - # -------------------------------------------------- VOLATILITY -------------------------------------------------- - elif ns_known_args.cmd == 'bbands': - ta_volatility.bbands(l_args, s_ticker, s_interval, df_stock) + elif ns_known_args.cmd == 'aroon': + ta_trend.aroon(l_args, s_ticker, s_interval, df_stock) - # ---------------------------------------------------- VOLUME ---------------------------------------------------- - elif ns_known_args.cmd == 'ad': - ta_volume.ad(l_args, s_ticker, s_interval, df_stock) + # -------------------------------------------------- VOLATILITY -------------------------------------------------- + elif ns_known_args.cmd == 'bbands': + ta_volatility.bbands(l_args, s_ticker, s_interval, df_stock) - elif ns_known_args.cmd == 'obv': - ta_volume.obv(l_args, s_ticker, s_interval, df_stock) + # ---------------------------------------------------- VOLUME ---------------------------------------------------- + elif ns_known_args.cmd == 'ad': + ta_volume.ad(l_args, s_ticker, s_interval, df_stock) - # ------------------------------------------------------------------------------------------------------------ - else: - print("Command not recognized!") + elif ns_known_args.cmd == 'obv': + ta_volume.obv(l_args, s_ticker, s_interval, df_stock) + + # ------------------------------------------------------------------------------------------------------------ + else: + print("Command not recognized!") + except Exception as exc: + print("ERROR:", exc)