def test_aggregation_with_diff_risk_keys(mocker): with MockCalc(mocker): portfolio1 = Portfolio([ IRSwaption('Pay', '10y', 'EUR', expiration_date='3m', name='EUR3m10ypayer') ]) portfolio2 = Portfolio([ IRSwaption('Pay', '10y', 'EUR', expiration_date='6m', name='EUR6m10ypayer') ]) with PricingContext(csa_term='EUR-OIS', visible_to_gs=True): r1 = portfolio1.price() with PricingContext(csa_term='EUR-EuroSTR'): r2 = portfolio2.price() combined_result = r1 + r2 with pytest.raises(ValueError): combined_result.aggregate() assert isinstance(combined_result.aggregate(allow_mismatch_risk_keys=True), float)
from gs_quant.common import PayReceive, Currency # import constants from gs_quant.instrument import IRSwaption # import instruments from gs_quant.markets.portfolio import Portfolio from gs_quant.session import Environment, GsSession # import sessions client_id = None # Supply your application id client_secret = None # Supply your client secret scopes = ('run_analytics', ) GsSession.use(Environment.PROD, client_id, client_secret, scopes) swaption1 = IRSwaption(PayReceive.Pay, '5y', Currency.EUR, expiration_date='3m', name='EUR-3m5y') swaption2 = IRSwaption(PayReceive.Pay, '5y', Currency.EUR, expiration_date='6m', name='EUR-6m5y') portfolio = Portfolio((swaption1, swaption2)) # price of individual instrument price_result = portfolio.price() print(price_result['EUR-3m5y']) # price for entire portfolio price_agg = price_result.aggregate() print(price_agg)