actus
An L4 implementation of ACTUS, the Algorithmic Contract Types Unified Standards (actusfrf.org): types and functions for modelling standardised financial contracts.
IMPORT actus gives you every module below. To use only part of it, import a module by name, such as IMPORT `actus-core` .
Modules
| Module | Contents |
|---|---|
actus |
Everything below, plus the evaluation engine |
actus-core |
Contract types, roles and other enumerations |
actus-terms |
Contract terms |
actus-state |
Contract state |
actus-events |
Event types and events |
actus-daycount |
Day count conventions and year fractions |
actus-schedule |
Schedule generation |
Core types (actus-core)
Contract Type Taxonomy (~32 ACTUS contract types organised into families):
Basic Contract Type— PAM, LAM, NAM, ANN, CLM, CSH, STK, UMP, COMExotic Basic Contract Type— LAX, NAX, ANXCombined Contract Type— SWAPS, SWPPV, OPTNS, FUTUR, FXOUT, CAPFL, BCSCredit Enhancement Contract Type— CEG, CEC, MAR
Contract Role — RPA, RPL, CLO, CNO, COL, LG, ST, BUY, SEL, RFL, PFL, RF, PF
`role sign`— sign multiplier for payoff calculations (+1 or -1)
Contract Performance — PF (performant), DL (delayed), DQ (delinquent), DF (default), MA (matured), TE (terminated)
`is non-performing`,`is active`— performance predicates
Day Count Convention — AA, A360, A365, 30E360, 30E360ISDA, BUS252; `days in year for` gives the days in a year under a convention
Other Enums:
End of Month Convention— EOM, SD, EOMPBusiness Day Convention— SCR, SCRF, SCRP, SCRMF, SCRMPCalendar Type— NoCalendar, MondayToFriday, CalendarPeriod Unit— Days, Weeks, Months, Quarters, YearsStub Convention— Long/Short Initial/FinalInterest Payment Convention— PayInterest, CapitalizeInterestPenalty Type— NoPenalty, AbsolutePenalty, RelativePenalty, InterestPenaltyOption Type/Option Exercise Type— Call, Put, Straddle / European, American, BermudanScaling Effect— NoScaling, InterestScaling, PrincipalScaling, BothScalingACTUS Currency—`ACTUS USD`,`ACTUS EUR`,`ACTUS GBP`,`ACTUS JPY`,`ACTUS CHF`,`ACTUS CAD`,`ACTUS AUD`,`ACTUS CNY`,`ACTUS HKD`,`ACTUS SGD`, or`ACTUS Other`with an ISO code;`currency code`gives the ISO 4217 code as a STRING
ACTUS Amount — record with value and currency; `ACTUS_USD`, `ACTUS_EUR`, `ACTUS_GBP` and `ACTUS_SGD` build one from a number
Cycle — record with period, periodUnit, stub; convenience constructors: `Monthly Cycle`, `Quarterly Cycle`, `Semi-Annual Cycle`, `Annual Cycle`
Contract terms (actus-terms)
ACTUS Contract Terms— core contract parameters (ID, type, role, dates, principal, rate, day count convention)FXOUT Terms— FX outright transaction parameters`implied exchange rate`— derive rate from FX term amounts
Contract state (actus-state)
Contract State— runtime state (statusDate, contractPerformance, notionalPrincipal, accruedInterest, nominalInterestRate, feeAccrued)`is fully paid`,`is in default`,`outstanding balance`— state predicates`empty state`— default initial state
Contract events (actus-events)
Event Types: IED, PR, PP, MD, IP, IPCI, RR, RRF, FP, PY, TD, XD, STD, DV, CE, AD
Contract Event— record with eventType, eventDate, payoff, currency, notionalPrincipal, nominalInterestRate, accruedInterest`make event`— event constructor`event sequence`,`event name`,`event acronym`— event metadata`is principal event`,`is interest event`,`has cash flow`— event predicates`total payoff`— sum payoffs across a list of events
Day count conventions (actus-daycount)
`year fraction`— Y(S,E) calculation dispatching on convention`year fraction A365`,`year fraction A360`— specific convention implementations`days between`— raw day count between two dates`accrued interest for period`— interest accrual given principal, rate, dates, and convention
Schedule generation (actus-schedule)
`add days`— date arithmetic on a number of days`add months`— month arithmetic with month-end clamping; it is defined indaydate, whichactus-scheduleimports and passes on`monthly schedule`— generate a list of monthly dates from a start date`schedule length`— count dates in a schedule
Evaluation engine (actus)
Payoff Functions (POF):
`POF_IED`— Initial Exchange Date payoff`POF_IP`— Interest Payment payoff`POF_MD`— Maturity payoff`POF_PR`— Principal Redemption payoff
State Transition Functions (STF):
`STF_IED`— initialise state after initial exchange`STF_IP`— reset accrued interest after payment`STF_MD`— contract reaches maturity`STF_PR`— reduce notional by redemption amount
Interest Accrual:
`accrue interest to`— accrue interest from current state date to a target date
FX Transaction (FXOUT):
`FXOUT pay event`,`FXOUT receive event`— generate FX cash flow events
Cash Flow Projection:
`net cash flow`— sum all cash flows from a list of events