ETFOTCOptionsGroup#

class sigtech.framework.instruments.option_groups.ETFOTCOptionsGroup

A class representing OTC ETF option groups.

property available_data_points

Data points available for this instrument.

available_data_providers(entitled_only=True) Optional[List[str]]

Available data providers for this object. Bool to return entitled providers only

property cache_name: str

Cache name of this object.

property class_name

Class name of this object.

property class_short_name

Short name of the object class.

clear_cached_data()

Clear all the cached data of the object.

clone_object(params=None)

Return a clone of the object with amended parameters.

Parameters

params – Optional dictionary of parameters to override.

Returns

New object.

compute_dependencies(root_dependency: Optional[sigtech.framework.internal.infra.mu.graph.registry.factory.Dependency] = None)

Compute these dependencies - triggers MDS requests

static convert_dtypes(clz)

Class decorator to convert classes’ BaseType into variable annotations (PEP-526), and to generate __aliases__ based on BaseType.db_name when required.

convert_maturity_tenor_to_date(reference_date: datetime.date, maturity_tenor: str, **kwargs) datetime.date

Convert a maturity tenor identifier to a date.

Parameters
  • reference_date – Reference dats.

  • maturity_tenor – Maturity tenor identifier.

Returns

datetime date.

data_dict()

Return the object attributes in a dict.

property data_source: str

Field used when retrieving history.

property default_data_point

Default data points for this instrument.

dependencies(input_dependency: Optional[sigtech.framework.internal.infra.mu.graph.registry.factory.Dependency] = None, valuation_currency: Optional[str] = None, use_start: bool = True) list[sigtech.framework.internal.infra.mu.graph.registry.factory.Dependency]

Returns a list of Dependency

Parameters
  • input_dependency – A Dependency object representing the root of the dependency tree to be returned.

  • valuation_currency – If supplied, include the dependencies required to output the data in this currency.

  • use_start – If False, return only dependencies required to calculate an earliest start date - self.start_date will be None in this case.

Returns

List of Dependency objects representing the current level in the dependency tree.

property dependency_type

Should return GraphNodeType. Return None to autodetect based on result of dependencies()

discount_curves(data_dates, data_point=None)

discount curves used for the options discounting are chosen using the following logic: if name of the curve is specified in discount_curve input, that curve is used directly if ‘imply’ is specified as discount_curve input, the zero curve is implied from the depo rates of the volsurface market data if discount_curve parameter is None (default value), the environment is checked for the EQUITY_INDEX_OPTIONS_DISCOUNT_IMPLY_FROM_VOL_SURFACE, which if set to True will cause curve being implied from the vol surface, or index option group discounting curve suffix in EQUITY_INDEX_OPTIONS_DISCOUNT_OVERRIDE_SUFFIX, which, if say set to INDX will cause to use USD.INDX curve for USD options. If both parameters are False/None (default), the underlying discounting curve is used (OIS curves by default) The environment setting EQUITY_INDEX_OPTIONS_DIV_YIELD_STORED_IN_VOL_SURFACE (default True) will cause dividend yields to be taken from the vol surface, or if false, from the underlying’s specific dividend yield curve. e.g ‘SPX INDEX DIVIDEND YIELD CURVE’

dividend_curves(data_dates)

Dividend yield curves of the underlying.

Parameters

data_dates – List of input dates.

Returns

Dividend yield curves.

property env: sigtech.framework.config.config.ConfiguredEnvironment

Return the configured environment.

env_date_change(old_env_dt: datetime.datetime, new_env_dt: datetime.datetime, live_data_update=None)

Routine called after the environment date is changed.

Parameters
  • old_env_dt – Old datetime (tz aware).

  • new_env_dt – New datetime (tz aware).

  • live_data_update – Live streaming data associated with the environment date change.

exchange() Any

Exchange object where options are traded.

finalize_for_comparison()

Method to call to ensure all data dict values are finalized prior to doing object comparisons.

forward_price(data_date, maturity, **kwargs)

Maturity-corresponding future (or more generally next future at or after maturity) quote as seen on data_date.

Parameters
  • data_date – Input date.

  • maturity – Input maturity.

Returns

Future quote.

forward_prices(data_dates, maturity, **kwargs)

Maturity-corresponding future (or more generally next future at or after maturity) quote as seen on data_dates.

Parameters
  • data_dates – List of input dates.

  • maturity – Input maturity.

Returns

List of future quotes.

classmethod from_dictionary(dct: dict[str, Any], cache: bool = True, identifier: Optional[sigtech.framework.infra.data_adapter.identifier.Identifier] = None, env: Optional[sigtech.framework.config.config.ConfiguredEnvironment] = None, **kwargs)

Factory method to create object using data dictionary

classmethod from_underlying(underlying)

Return the object referenced by an underlying.

Parameters

underlying – Underlying identifier.

Returns

Object.

get_extra_fx_dependencies(valuation_currency: str, start_dt: datetime.datetime, end_dt: datetime.datetime, t: datetime.time, tz: datetime.tzinfo)

Extra dependencies for when the options are of a different currency to the strategy valuation currency

classmethod get_names(sort_by_group: Optional[bool] = False, include_db: Optional[bool] = True, include_local: Optional[bool] = True, include_children: Optional[bool] = False, ignore_unmapped: Optional[bool] = True) list[str]

Return an ordered list of object names associated with the class.

Parameters
  • sort_by_group – If set, the list is first ordered by sector/group, if applies, e.g. commodity or index futures (default is False).

  • include_db – If set, include objects available from the database (default is True).

  • include_local – If set, include objects available in the local environment (default is True).

  • include_children – If set, include objects available from child classes (default is False).

  • ignore_unmapped – If set, ignore errors due to unmapped database objects (default is True).

Returns

List of object names.

get_option(option_type: str, strike: Union[float, str], start_date: datetime.date, maturity: Union[datetime.date, str], strike_type: str = 'Price', exercise_type='European', target_maturity_weekday: Optional[str] = 'Friday', is_imm_maturity: Optional[bool] = False, strike_date: Optional[Union[datetime.date, datetime.datetime]] = None, **kwargs)

The nearest option available for a given type of option, strike and start+maturity date.

Parameters
  • option_type'Call' or 'Put'.

  • strike – Strike of option in either price, delta or premium terms, or relative terms, e.g. 'SPOT+5%' or 'FWD-3%' .

  • start_date – Strike date of the option, unless strike_date is passed. Start of the history.

  • maturity – Maturity date of the option or maturity tenor key such as '3M'.

  • strike_type'Price', 'Delta', 'Spot', 'Premium' (defaults to price; not relevant if strike is relative).

  • exercise_type'European' or 'American' (defaults to ‘European’).

  • target_maturity_weekday – Weekday used for target maturity. If set to None, the maturity is adjusted just to the next business day (optional).

  • is_imm_maturity – Flag for usage of IMM dates (optional).

  • strike_date – Strike date of the option. If None (default), start_date is used (optional).

Returns

The nearest option available given the inputs.

get_option_dependencies(start_date: datetime.date, maturity: Union[datetime.date, str], data_points: Optional[list[sigtech.framework.infra.data_adapter.common.DataPoint]] = None, **kwargs) list[sigtech.framework.internal.infra.mu.graph.registry.factory.Dependency]

Get Dependencies for the underlyings of an option with the given start and maturity dates

get_option_group_dependencies(t: datetime.time, tz: datetime.tzinfo, valuation_currency: str, start_dt: datetime.datetime, end_dt: datetime.datetime, greek_calculation_dependencies: bool = False) list[sigtech.framework.internal.infra.mu.graph.registry.factory.Dependency]

Dependencies at the option group level

get_option_metrics(strike: float, maturity: str, start_date: datetime.date, end_date: Optional[datetime.date] = None, strike_type: str = 'Price', option_type: Optional[str] = None)

Function for computing series of PV and Greeks of daily rolling European option specified by the input parameters. In addition the function outputs strike (the price one regardless of the input format) and surface implied volatility for the input strike/maturity combination.

Parameters
  • strike – Price, delta strike or premium, depending on strike_type parameter

  • maturity – Option tenor maturity, e.g. '1M'

  • start_date – Start of the series

  • end_date – End of the series (environment asofdate used if omitted)

  • strike_type'Price' for price strike, 'Delta' for delta strike or 'Premium' for premium

  • option_type'Call' or 'Put' ('Call' by default, unless 'Delta' strike is negative)

Returns

get_vol_surface()

Object referenced by the vol surface name of the group.

get_vol_surface_series(data_dates, data_point=None)

Vol surface timeseries.

Parameters
  • data_dates – List of dates.

  • data_point – Data point (optional).

Returns

Vol surface timeseries.

property holidays: str

List of holiday calendars for this instrument.

property identifier: sigtech.framework.infra.data_adapter.identifier.Identifier

Return the object identifier.

info() dict

Return a dictionary with useful object information.

property input_parameters

Values of initial input parameters entered when creating the instance.

property internal_id

Ticker - i.e. part of name determining content of the class. For types with saved reference data - ticker will be self._ticker. For software types - ticker should be calculated.

property is_unmapped

Check if the object is not mapped.

property live_supported: bool

Flag for live supported objects.

property name

Primary name by which the FrameworkObject is identified. If reference information (or e.g. corresponding time series) are stored in the DB, then this name will be used.

option_name(option_type, strike, maturity_date, **kwargs)

Option group name.

Parameters
  • option_type'Call' or 'Put'.

  • strike – Strike of option.

  • maturity_date – Maturity date of the option.

Returns

str.

print_dependencies(root_dependency: Optional[sigtech.framework.internal.infra.mu.graph.registry.factory.Dependency] = None, resolve_future_dependencies: bool = True, fields: Optional[list] = None)

Pretty print dependency tree :param root_dependency: starting dependency of the tree. :param resolve_future_dependencies: resolve future dependencies before printing. If ‘false’ nothing get printed. :param fields: additional fields to extract from dependencies object. Default fields are product_type, currency, frequency and data_source. To get the list of available fields for an object you can use the data_dict() method.

property product_type

Return the product_type property of this object.

property publication_delay: str

Publication delay of data for this group.

query_instrument_names() list[str]

Generic doc store query to retrieve names of objects meeting filter criteria. :return: List of object names meeting filter criteria.

query_instruments() list[sigtech.framework.internal.infra.objects.core.framework_object.FrameworkObject]

Generic doc store query to retrieve objects meeting filter criteria. :return: List of objects meeting filter criteria

round_to_strike(strike)

Strike adjustment for display purposes.

Parameters

strike – Input strike.

Returns

Adjusted strike.

property sector

Sector used on BBG, or the class ID for SIG instruments.

session_data()

Returns the raw Copp-Clarke trading sessions data for this group

settlement_object() Any

Object referenced by the settlement ticker.

static sort_key_static(name)

Convert a name to the sort key as of Portfolio Presentation Guidelines for performance reasons.

Parameters

name – Input name.

Returns

Tuple (sort key, length of sort key, input name).

spot_series(data_point=None)

Timeseries of spot values.

Parameters

data_point – Data point (optional).

Returns

pandas Series.

spot_value(data_date, data_point=None)

Spot value at a point in time.

Parameters
  • data_date – Point in time.

  • data_point – Data point (optional).

Returns

Spot value.

spot_values(data_dates, data_point=None)

Spot values at points in time.

Parameters
  • data_dates – Input dates.

  • data_point – Data point (optional).

Returns

List of spot values.

strike_from_delta(option_type, delta_strike, quote_date, maturity_date, **kwargs)

The newton solver may fail to find feasible solution when time to maturity is large.

Parameters
  • option_type – Type of option.

  • delta_strike – Delta strike.

  • quote_date – Quote date.

  • maturity_date – Maturity date.

Returns

Option strike.

strike_from_price(price: float, date: datetime.date, maturity, option_type: str, data_point=None)

Find a strike corresponding to a given price of an option.

Parameters
  • price – Target option price.

  • date – Pricing date.

  • maturity – Option maturity (could be a datetime.date or a tenor like '1Y').

  • option_type – Option type, 'Call' or 'Put'.

  • data_point – Data point (optional, e.g. 'EOD').

Returns

Strike value.

textual_representation()

Return a printable representation of this object.

property underlying_asset_description: str

Return a string representing the underlying asset.

validate()

Validation routine adding checks that will be run on object creation.

valuation_dt(d: datetime.date) datetime.datetime

Valuation dt - datetime for a given valuation date. Included so we can supply this to TradingManager.data_point_from_time

property valuation_time

Valuation time for the instrument group Included so we can supply this to TradingManager.data_point_from_time

property valuation_tzinfo

Valuation time zone for the instrument group Included so we can supply this to TradingManager.data_point_from_time

vol_from_delta_history(expiry: Union[datetime.date, str], delta: float, start_date: datetime.date, end_date: Optional[datetime.date] = None, data_point: Optional[sigtech.framework.infra.data_adapter.common.DataPoint] = None)

Get time series of volatility corresponding to the given delta.

Parameters
  • expiry – Option expiry - either date (e.g. dtm.date(2021,2,3) for fixed tenor case, or tenor string (e.g. '3M') for the rolling tenor case.

  • delta – Delta for which vol is requested. Decimal is expected, i.e. 25% input should be 0.25.

  • start_date – Start date of the time series.

  • end_date – (Optional) end date for the time series. If omitted - last day of vol surface, or last day before option expiry (if fixed) is used

  • data_point – (Optional) data point of the vol surface

Returns

pd.TimeSeries

discrete_dividend: Optional[bool]
data_type: Optional[Literal['eq_market', 'eq_parameters_svi']]
discount_curve: Optional[str]
strike_rounding: Optional[bool]
underlying: str
exchange_code: str
cash_settled: Optional[bool]
settlement_ticker: str
contract_size: Optional[float]
data_source_all: Optional[list[str]]
instrument_id: Optional[int]