From 4bc4368ff102d69933ba2349c4088a3cfd89363a Mon Sep 17 00:00:00 2001 From: Danglewood <85772166+deeleeramone@users.noreply.github.com> Date: Thu, 22 Jun 2023 14:52:48 -0700 Subject: [PATCH] fix columns subtracting (#5170) --- .../stocks/options/options_chains_model.py | 20 ++++++++++--------- .../test_OptionsChains_9.json | 2 +- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/openbb_terminal/stocks/options/options_chains_model.py b/openbb_terminal/stocks/options/options_chains_model.py index 319c61ab240..6e8d0e27a17 100644 --- a/openbb_terminal/stocks/options/options_chains_model.py +++ b/openbb_terminal/stocks/options/options_chains_model.py @@ -1458,26 +1458,28 @@ def calculate_skew( ["expiration", "optionType", "strike", "impliedVolatility"] ] call = call.set_index("expiration") - call["skew"] = ( - call.impliedVolatility - - call.query("`strike` == @atm_call_strike")["impliedVolatility"] - )[0] + call_atm_iv = call.query("`strike` == @atm_call_strike")[ + "impliedVolatility" + ].iloc[0] + call["ATM IV"] = call_atm_iv + call["Skew"] = call["impliedVolatility"] - call["ATM IV"] call_skew = pd.concat([call_skew, call]) atm_put_strike = get_nearest_put_strike(options, day) # noqa:F841 put = puts[puts["dte"] == day][ ["expiration", "optionType", "strike", "impliedVolatility"] ] put = put.set_index("expiration") - put["skew"] = ( - put.impliedVolatility - - put.query("`strike` == @atm_put_strike")["impliedVolatility"] - )[0] + put_atm_iv = put.query("`strike` == @atm_put_strike")["impliedVolatility"].iloc[ + 0 + ] + put["ATM IV"] = put_atm_iv + put["Skew"] = put["impliedVolatility"] - put["ATM IV"] put_skew = pd.concat([put_skew, put]) call_skew = call_skew.set_index(["strike", "optionType"], append=True) put_skew = put_skew.set_index(["strike", "optionType"], append=True) skew_df = pd.concat([call_skew, put_skew]).sort_index().reset_index() - cols = ["Expiration", "Strike", "Option Type", "IV", "Skew"] + cols = ["Expiration", "Strike", "Option Type", "IV", "ATM IV", "Skew"] skew_df.columns = cols if expiration != "": if expiration not in options.expirations: diff --git a/tests/openbb_terminal/stocks/options/json/test_options_chains_model/test_OptionsChains_9.json b/tests/openbb_terminal/stocks/options/json/test_options_chains_model/test_OptionsChains_9.json index 60e7f6e1fe5..f3de3d503df 100644 --- a/tests/openbb_terminal/stocks/options/json/test_options_chains_model/test_OptionsChains_9.json +++ b/tests/openbb_terminal/stocks/options/json/test_options_chains_model/test_OptionsChains_9.json @@ -1 +1 @@ -["Expiration", "Strike", "Option Type", "IV", "Skew"] \ No newline at end of file +["Expiration", "Strike", "Option Type", "IV", "ATM IV", "Skew"] \ No newline at end of file