Skip to main content

Basic LAM Example

Contract Definition

import pandas as pd
from awesome_actus_lib import LAM, PublicActusService, ReferenceIndex

contract = LAM(
contractID="lam01",
contractRole="RPA",
contractDealDate="2012-12-28T00:00:00",
initialExchangeDate="2013-01-01T00:00:00",
statusDate="2012-12-30T00:00:00",
notionalPrincipal=5000,
cycleAnchorDateOfPrincipalRedemption="2013-02-01T00:00:00",
nextPrincipalRedemptionPayment=500,
dayCountConvention="A365",
nominalInterestRate=0.08,
currency="USD",
cycleOfPrincipalRedemption="P1ML0",
cycleAnchorDateOfRateReset="2013-04-01T00:00:00",
cycleOfRateReset="P3ML1",
rateMultiplier=1,
rateSpread=0.1,
fixingDays="P0D",
cycleAnchorDateOfInterestPayment="2013-02-01T00:00:00",
cycleOfInterestPayment="P1ML0",
endOfMonthConvention="SD",
interestCalculationBase="NT",
marketObjectCodeOfRateReset="USD.SWP",
interestCalculationBaseAmount=0,
creatorID="Creator-01",
counterpartyID="Counterparty-01"
)
rf_data_USD_SWP = pd.DataFrame({
"date": ["2013-04-01", "2013-07-01", "2013-10-01", "2014-01-01"],
"value": [0.01056790123456790, 0.01167901234567900, 0.01279012345679010, 0.01390123456790120]
})
rf_USD_SWP = ReferenceIndex(marketObjectCode="USD.SWP", source=rf_data_USD_SWP)
service = PublicActusService()
event_stream = service.generateEvents(portfolio=contract, riskFactors=[rf_USD_SWP])
print(event_stream.events_df)

Generated Events

typetimepayoffcurrencynominalValuenominalRatenominalAccruedcontractId
IED2013-01-01T00:00-5000USD50000.080lam01
PR2013-02-01T00:00500USD45000.0833.9726lam01
IP2013-02-01T00:0033.9726USD45000.080lam01
PR2013-03-01T00:00500USD40000.0827.6164lam01
IP2013-03-01T00:0027.6164USD40000.080lam01
PR2013-04-01T00:00500USD35000.0827.1781lam01
IP2013-04-01T00:0027.1781USD35000.080lam01
RR2013-04-01T00:000USD35000.1105680lam01
PR2013-05-01T00:00500USD30000.11056831.8072lam01
IP2013-05-01T00:0031.8072USD30000.1105680lam01
PR2013-06-01T00:00500USD25000.11056828.1721lam01
IP2013-06-01T00:0028.1721USD25000.1105680lam01
PR2013-07-01T00:00500USD20000.11056822.7194lam01
IP2013-07-01T00:0022.7194USD20000.1105680lam01
RR2013-07-01T00:000USD20000.1116790lam01
PR2013-08-01T00:00500USD15000.11167918.9701lam01
IP2013-08-01T00:0018.9701USD15000.1116790lam01
PR2013-09-01T00:00500USD10000.11167914.2276lam01
IP2013-09-01T00:0014.2276USD10000.1116790lam01
PR2013-10-01T00:00500USD5000.1116799.1791lam01
IP2013-10-01T00:009.1791USD5000.1116790lam01
RR2013-10-01T00:000USD5000.112790lam01
IP2013-11-01T00:004.78972USD5000.112790lam01
MD2013-11-01T00:00500USD00.112790lam01