示例#1
0
def structured_calc(mocker, priceable: Priceable, measure: risk.RiskMeasure):
    set_session()

    values = {
        '$type': 'RiskVector',
        'asset': [0.01, 0.015],
        'points': [
            {'type': 'IR', 'asset': 'USD', 'class_': 'Swap', 'point': '1y'},
            {'type': 'IR', 'asset': 'USD', 'class_': 'Swap', 'point': '2y'}
        ]
    }
    mocker.return_value = [[[[values]]]]

    expected = risk.sort_risk(pd.DataFrame([
        {'mkt_type': 'IR', 'mkt_asset': 'USD', 'mkt_class': 'Swap', 'mkt_point': '1y', 'value': 0.01},
        {'mkt_type': 'IR', 'mkt_asset': 'USD', 'mkt_class': 'Swap', 'mkt_point': '2y', 'value': 0.015}
    ]))

    current = PricingContext.current
    result = priceable.calc(measure)
    assert result.raw_value.equals(expected)
    risk_requests = (risk.RiskRequest(
        positions=(RiskPosition(instrument=priceable, quantity=1),),
        measures=(measure,),
        pricing_and_market_data_as_of=(PricingDateAndMarketDataAsOf(pricing_date=current.pricing_date,
                                                                    market=current.market),),
        parameters=RiskRequestParameters(raw_results=True),
        wait_for_results=True),)
    mocker.assert_called_with(risk_requests)
示例#2
0
 def _pricing_market_data_as_of(
         self) -> Tuple[PricingDateAndMarketDataAsOf, ...]:
     return tuple(
         PricingDateAndMarketDataAsOf(
             d,
             business_day_offset(d, -1, roll='preceding') if d ==
             dt.date.today() else d) for d in self.__date_range)
示例#3
0
def scalar_calc(mocker, priceable: Priceable, measure: risk.RiskMeasure):
    set_session()
    mocker.return_value = [[[[{'$type': 'Risk', 'val': 0.01}]]]]

    current = PricingContext.current
    result = priceable.calc(measure)
    assert result == 0.01
    risk_requests = (risk.RiskRequest(
        positions=(RiskPosition(instrument=priceable, quantity=1),),
        measures=(measure,),
        pricing_and_market_data_as_of=(PricingDateAndMarketDataAsOf(pricing_date=current.pricing_date,
                                                                    market=current.market),),
        parameters=RiskRequestParameters(raw_results=True),
        wait_for_results=True),)
    mocker.assert_called_with(risk_requests)
示例#4
0
 def _pricing_market_data_as_of(
         self) -> Tuple[PricingDateAndMarketDataAsOf, ...]:
     return PricingDateAndMarketDataAsOf(self.pricing_date,
                                         self.market_data_as_of),