derivitec.core.client.DerivitecClient.get_equity_vols

DerivitecClient.get_equity_vols(identifier, strike_type, strikes, maturity, start_date, end_date, market_data_environment_name=None)[source]

Get equity vol surface vols between two dates.

Parameters:
  • identifier (derivitec.misc.types.InstrumentIdentifier) – The identifiers.

  • strike_type (derivitec.market_data.types.EquityVolSurface.StrikeType) – The strike type

  • strikes (list of float) – The strikes in the format of strike_type.

  • maturity (int) – The maturity.

  • start_date (datetime.datetime) – The start date.

  • end_date (datetime.datetime) – The end date.

  • market_data_environment_name (str) – The market data environment name (optional with default Organisation Level Environment)

Return type:

derivitec.market_data.response.ApiGetEquityVolsResponse

Code

The strike is defined \(z ~ := ~ log(K/F)\) when strike_type is StrikeType.Logarithmic we can get 95% and 105% moneyness as follows:

>>> import math
>>> strikes = [math.log(0.95), math.log(1.05)]
>>> identifier = ric("MSFT.OQ")
>>> start_date = datetime(2017, 6, 1)
>>> end_date = datetime(2017, 7, 1)
>>> strike_type = StrikeType.Logarithmic
>>> maturity = 30
>>> market_data_environment_name = "Example Market Data Environment"
>>> equity_vols = client.get_equity_vols(identifier, strike_type, strikes, maturity, start_date, end_date, market_data_environment_name)

Then we can manipulate the returned vol

>>> map(lambda x: x.Vols[1] - x.Vols[0], equity_vols.VolatilityData)