ACTUS Library
Algorithmic Contract Types Unified Standards (actusfrf.org) implementation in L4. Provides types and functions for modelling standardised financial contracts.
Import with IMPORT actus to get all modules, or import individual modules selectively.
Location
| File | Purpose |
|---|---|
| actus.l4 | Main entry point (re-exports all modules) |
| actus-core.l4 | Core types (contract types, roles, enums) |
| actus-terms.l4 | Contract term definitions |
| actus-state.l4 | Contract state variables |
| actus-events.l4 | Event types and operations |
| actus-daycount.l4 | Day count conventions and year fractions |
| actus-schedule.l4 | 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
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— USD, EUR, GBP, JPY, CHF, CAD, AUD, CNY, HKD, SGD, or custom viaACTUS Other
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 months`,`add days`— date arithmetic with month-end clamping`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
See the actus.l4 source and sub-modules for full details.