diff --git a/openbb_terminal/helper_funcs.py b/openbb_terminal/helper_funcs.py index 66b57868087..05f9add4abd 100644 --- a/openbb_terminal/helper_funcs.py +++ b/openbb_terminal/helper_funcs.py @@ -159,8 +159,8 @@ def print_rich_table( Title for index column headers: List[str] Titles for columns - floatfmt: str - String to + floatfmt: Union[str, List[str]] + Float number formatting specs as string or list of strings. Defaults to ".2f" """ if obbff.USE_TABULATE_DF: @@ -197,7 +197,11 @@ def print_rich_table( row += [ str(x) if not isinstance(x, float) - else (f"{x:{floatfmt[idx]}}" if abs(x) >= 0.001 else f"{x:.2e}") + else ( + f"{x:{floatfmt[idx]}}" + if isinstance(floatfmt, list) + else (f"{x:.2e}" if 0 < abs(x) <= 0.0001 else f"{x:floatfmt}") + ) for idx, x in enumerate(values) ] table.add_row(*row) diff --git a/openbb_terminal/stocks/options/options_api.py b/openbb_terminal/stocks/options/options_api.py index 4474df81a2b..84682cc2255 100644 --- a/openbb_terminal/stocks/options/options_api.py +++ b/openbb_terminal/stocks/options/options_api.py @@ -23,6 +23,7 @@ from .yfinance_view import plot_oi as oi_yf from .yfinance_view import plot_plot as plot from .yfinance_view import show_parity as parity from .yfinance_view import show_binom as binom +from .yfinance_view import show_greeks as greeks from .yfinance_view import display_vol_surface as vsurf diff --git a/openbb_terminal/stocks/options/yfinance_view.py b/openbb_terminal/stocks/options/yfinance_view.py index aaefc179f59..06949f5f8ca 100644 --- a/openbb_terminal/stocks/options/yfinance_view.py +++ b/openbb_terminal/stocks/options/yfinance_view.py @@ -1010,8 +1010,8 @@ def display_vol_surface( @log_start_end(log=logger) def show_greeks( ticker: str, - div_cont: float, expire: str, + div_cont: float = 0, rf: float = None, opt_type: int = 1, mini: float = None, @@ -1087,9 +1087,25 @@ def show_greeks( "Vega", "Theta", ] + column_formatting = [ + ".1f", + ".4f", + ".6f", + ".6f", + ".6f", + ".6f", + ] if show_all: - columns += ["Rho", "Phi", "Charm", "Vanna", "Vomma"] + additional_columns = ["Rho", "Phi", "Charm", "Vanna", "Vomma"] + columns += additional_columns + column_formatting += [".6f"] * len(additional_columns) df = pd.DataFrame(strikes, columns=columns) - print_rich_table(df, headers=list(df.columns), show_index=False, title="Greeks") + print_rich_table( + df, + headers=list(df.columns), + show_index=False, + title="Greeks", + floatfmt=column_formatting, + ) return None