OTCOptionGroup#
-
class sigtech.framework.instruments.option_groups.OTCOptionGroup
Baseclasses:
OptionGroup
,VolsurfaceBasedGroup
Subclasses:
EquityIndexOTCOptionsGroup
,FXOTCOptionsGroup
,CommodityOTCOptionsGroup
A class representing OTC option groups.
-
discount_curves(data_dates, data_point=None)
Discount curves used for the options discounting.
- Parameters:
data_dates – List of dates.
data_point – Input data point (optional).
- Returns:
Discount curves.
-
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_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, end_dt: datetime, t: time, tz: tzinfo)
Extra dependencies for when the options are of a different currency to the strategy valuation currency
-
get_option_metrics(strike: float, maturity: str, start_date: date, end_date: date = None, strike_type: str = 'Price', option_type: 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
parametermaturity – 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 premiumoption_type –
'Call'
or'Put'
('Call'
by default, unless'Delta'
strike is negative)
- Returns:
-
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.
-
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_price(price: float, date: 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.
-
vol_from_delta_history(expiry: Union[date, str], delta: float, start_date: date, end_date: date = None, data_point: 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 be0.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