derivitec.core.client.DerivitecClient.calculate_risk_on_contracts¶
- DerivitecClient.calculate_risk_on_contracts(contracts, risk_measures, pricing_date, market_date, market_data_override=None, reporting_currency=None, risk_scenarios=None, exclude_historically_derived_vol_surfaces=False, include_contract_data_in_response=True, consolidate_error_messages=True, use_real_time_eq_spot=False, use_real_time_fx_spot=False, pricing_model_manager=None, market_data_environment_name=None, equity_indices_to_decompose=None, pricing_environment_name=None)[source]¶
Calculate risk on a set of contracts.
- Parameters:
contracts (list[
derivitec.tradables.types.Contract]) – The contracts.risk_measures (list[
derivitec.risk_engine.types.RiskMeasure]) – The risk measures.pricing_date (datetime.datetime) – The pricing date.
market_date (datetime.datetime) – The market date.
market_data_override (
derivitec.market_data.types.MarketDataOverride) – The market data override (optional)reporting_currency (str) – The reporting currency. (optional; default local currency except for FX contracts) reporting_currency == None is forbidden)
risk_scenarios (list[
derivitec.risk_engine.types.RiskScenario]) – The risk scenarios (optional)exclude_historically_derived_vol_surfaces (bool) – The exclude historically derived vol surfaces flag
include_contract_data_in_response (bool) – The include contract data in unit risk flag
consolidate_error_messages (bool) – True to consolidate error messages
use_real_time_eq_spot (bool) – The use real time eq spot flag
use_real_time_fx_spot (bool) – The use real time fx spot flag
pricing_model_manager (
derivitec.tradables.types.PricingModelManager) – The pricing model managermarket_data_environment_name (str) – The market data environment name (optional with default Organisation Level Environment)
equity_indices_to_decompose (dict[
derivitec.misc.types.InstrumentIdentifier,bool]) – The equity indices to decompose with flag to control spot calculation of index. {InstrumentIdenfitifer : bool}pricing_environment_name (str) – The pricing environment name (optional, defaults to None)
- Return type:
Code
>>> risk_measures = [Npv(), EqDelta()] >>> pricing_date = market_date = datetime(2017, 11, 1) >>> contracts = [EqFutureByCode(code=ric("SPZ7"))] >>> exclude_historically_derived_vol_surfaces = True >>> risk = client.calculate_risk_on_contracts( ... contracts, ... risk_measures, ... pricing_date, ... market_date, ... exclude_historically_derived_vol_surfaces ... include_contract_data_in_response)
Now we can see the contents of the risk results.
>>> for res in risk.RiskResults: ... print "{0}: {1} {2}".format(res.MeasureName, res.UnitValue, res.UnitValueCurrency) ... NPV: 0.0 USD EqDelta: 2583.13 USD
The EqDelta risk result has the relevant equity asset information on it. See
derivitec.risk_engine.types.RiskResult>>> for res in filter(lambda x: x.MeasureName == "EqDelta", risk.RiskResults): ... print res.EquityAsset ... <ric:.SPX>
Market data overrides
The
derivitec.risk_engine.types.MarketDataOverrideclass can be used to override a number of parameters:>>> market_data_override = MarketDataOverride( ... equity_spot_overrides = {ric(".SPX"):3000.0}) >>> risk = client.calculate_risk_on_contracts( ... contracts, ... risk_measures, ... pricing_date, ... market_date, ... market_data_override=market_data_override, ... market_data_environment_name="My Example Environment")