From 52f4d673f83846c73580cea823b2ae2e44e2db2e Mon Sep 17 00:00:00 2001 From: James Maslek Date: Thu, 18 Aug 2022 15:16:42 -0400 Subject: [PATCH] Fix TA integration script (#2356) * Fix TA integration script * test --- .../common/technical_analysis/overlap_view.py | 12 ++++++------ .../common/technical_analysis/volatility_view.py | 12 ++++++------ .../technical_analysis/tradingview_model.py | 8 ++++++-- .../test_get_tradingview_recommendation[].csv | 16 ++++++++-------- 4 files changed, 26 insertions(+), 22 deletions(-) diff --git a/openbb_terminal/common/technical_analysis/overlap_view.py b/openbb_terminal/common/technical_analysis/overlap_view.py index b1370f8578a..79ecc01a393 100644 --- a/openbb_terminal/common/technical_analysis/overlap_view.py +++ b/openbb_terminal/common/technical_analysis/overlap_view.py @@ -31,7 +31,7 @@ register_matplotlib_converters() @log_start_end(log=logger) def view_ma( series: pd.Series, - length: List[int] = None, + window: List[int] = None, offset: int = 0, ma_type: str = "EMA", symbol: str = "", @@ -44,7 +44,7 @@ def view_ma( ---------- series: pd.Series Series of prices - length: List[int] + window: List[int] Length of EMA window offset: int Offset variable @@ -61,10 +61,10 @@ def view_ma( price_df = pd.DataFrame(series) l_legend = [symbol] - if not length: - length = [20, 50] + if not window: + window = [20, 50] - for win in length: + for win in window: if ma_type == "EMA": df_ta = overlap_model.ema(series, win, offset) l_legend.append(f"EMA {win}") @@ -112,7 +112,7 @@ def view_ma( export_data( export, os.path.dirname(os.path.abspath(__file__)).replace("common", "stocks"), - f"{ma_type.lower()}{'_'.join([str(win) for win in length])}", + f"{ma_type.lower()}{'_'.join([str(win) for win in window])}", price_df, ) diff --git a/openbb_terminal/common/technical_analysis/volatility_view.py b/openbb_terminal/common/technical_analysis/volatility_view.py index 9aeb7f96ddf..d256959523c 100644 --- a/openbb_terminal/common/technical_analysis/volatility_view.py +++ b/openbb_terminal/common/technical_analysis/volatility_view.py @@ -26,7 +26,7 @@ logger = logging.getLogger(__name__) def display_bbands( data: pd.DataFrame, symbol: str = "", - limit: int = 15, + window: int = 15, n_std: float = 2, mamode: str = "sma", export: str = "", @@ -40,7 +40,7 @@ def display_bbands( Dataframe of ohlc prices symbol : str Ticker symbol - limit : int + window : int Length of window to calculate BB n_std : float Number of standard deviations to show @@ -51,7 +51,7 @@ def display_bbands( external_axes : Optional[List[plt.Axes]], optional External axes (1 axis is expected in the list), by default None """ - df_ta = volatility_model.bbands(data["Adj Close"], limit, n_std, mamode) + df_ta = volatility_model.bbands(data["Adj Close"], window, n_std, mamode) plot_data = pd.merge(data, df_ta, how="outer", left_index=True, right_index=True) plot_data = reindex_dates(plot_data) @@ -188,7 +188,7 @@ def display_donchian( @log_start_end(log=logger) def view_kc( data: pd.DataFrame, - limit: int = 20, + window: int = 20, scalar: float = 2, mamode: str = "ema", offset: int = 0, @@ -203,7 +203,7 @@ def view_kc( data: pd.DataFrame Dataframe of ohlc prices - limit: int + window: int Length of window scalar: float Scalar value @@ -222,7 +222,7 @@ def view_kc( data["High"], data["Low"], data["Adj Close"], - limit, + window, scalar, mamode, offset, diff --git a/openbb_terminal/stocks/technical_analysis/tradingview_model.py b/openbb_terminal/stocks/technical_analysis/tradingview_model.py index 71d292be4a3..48d28bd3295 100644 --- a/openbb_terminal/stocks/technical_analysis/tradingview_model.py +++ b/openbb_terminal/stocks/technical_analysis/tradingview_model.py @@ -71,8 +71,12 @@ def get_tradingview_recommendation( interval=an_interval, ) d_recommendation = stock_recommendation.get_analysis().summary - df_recommendation = df_recommendation.append( - d_recommendation, ignore_index=True + df_recommendation = pd.concat( + [ + pd.DataFrame.from_dict(d_recommendation, orient="index").T, + df_recommendation, + ], + axis=0, ) index_recommendation.append(INTERVALS[an_interval]) df_recommendation.index = index_recommendation diff --git a/tests/openbb_terminal/stocks/technical_analysis/csv/test_tradingview_model/test_get_tradingview_recommendation[].csv b/tests/openbb_terminal/stocks/technical_analysis/csv/test_tradingview_model/test_get_tradingview_recommendation[].csv index 5dc66cd3169..22fee1e3440 100644 --- a/tests/openbb_terminal/stocks/technical_analysis/csv/test_tradingview_model/test_get_tradingview_recommendation[].csv +++ b/tests/openbb_terminal/stocks/technical_analysis/csv/test_tradingview_model/test_get_tradingview_recommendation[].csv @@ -1,9 +1,9 @@ Interval,RECOMMENDATION,BUY,SELL,NEUTRAL -1 month,BUY,14,5,7 -1 week,BUY,14,3,9 -1 day,NEUTRAL,7,9,10 -4 hours,NEUTRAL,9,11,6 -1 hour,SELL,2,15,9 -15 min,SELL,1,15,10 -5 min,STRONG_SELL,1,16,9 -1 min,STRONG_SELL,0,16,10 +1 month,STRONG_SELL,0,16,10 +1 week,STRONG_SELL,1,16,9 +1 day,SELL,1,15,10 +4 hours,SELL,2,15,9 +1 hour,NEUTRAL,9,11,6 +15 min,NEUTRAL,7,9,10 +5 min,BUY,14,3,9 +1 min,BUY,14,5,7