Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)