Skip to content
OFFICIAL SS DOCUMENTATION

SS.FinancialMathematics 1.3.0

Effective rates, complete mortgage schedules, exact rational money rounding, all supported real IRR roots, dated cash flows, curves, bonds, annuities and calendars
API 1.3.0
MIT
source

Language compatibility: >=1.0.0 <2.0.0
Runtime compatibility: >=1.0.0 <2.0.0

No package dependencies declared.

Public API

Public signature
export function addCalendarDays(FinanceDate date, int days)->FinanceDate

Parameters: date: FinanceDate, days: int


Public signature
export function addMoney(Money left, Money right)->Money

Parameters: left: Money, right: Money


Public signature
export function adjustBusinessDay(FinanceDate date, BusinessCalendar calendar, string convention)->FinanceDate

Parameters: date: FinanceDate, calendar: BusinessCalendar, convention: string


Public signature
export record AmortizationSchedule(public double[] payments, public double[] interest, public double[] scheduledPrincipal, public double[] prepayments, public double[] balances, public double totalInterest, public int paidPeriods, public bool paidOff)

Parameters: payments: double[], interest: double[], scheduledPrincipal: double[], prepayments: double[], balances: double[], totalInterest: double, paidPeriods: int, paidOff: bool


Public signature
export function amortize(double principal, double periodicRate, int count, double[] extraPrincipal)->AmortizationSchedule

Parameters: principal: double, periodicRate: double, count: int, extraPrincipal: double[]


Public signature
export function annuityFutureValue(double payment, double periodicRate, int count, bool due)->double

Parameters: payment: double, periodicRate: double, count: int, due: bool


Public signature
export function annuityPresentValue(double payment, double periodicRate, int count, bool due)->double

Parameters: payment: double, periodicRate: double, count: int, due: bool


Public signature
export function bond(double face, double couponRate, double yieldRate, int periodsToMaturity)->BondMetrics

Parameters: face: double, couponRate: double, yieldRate: double, periodsToMaturity: int


Public signature
export function bondCashFlows(double face, double couponRate, int periodsToMaturity)->double[]

Parameters: face: double, couponRate: double, periodsToMaturity: int


Public signature
export record BondMetrics(public double price, public double macaulayDuration, public double modifiedDuration)

Parameters: price: double, macaulayDuration: double, modifiedDuration: double


Public signature
export function bondYield(double face, double couponRate, double price, int periodsToMaturity, double lower, double upper, double tolerance, int maximumIterations)->IrrResult

Parameters: face: double, couponRate: double, price: double, periodsToMaturity: int, lower: double, upper: double, tolerance: double, maximumIterations: int


Public signature
export function businessCalendar(string name, FinanceDate[] holidays)->BusinessCalendar

Parameters: name: string, holidays: FinanceDate[]


Public signature
export record BusinessCalendar(public string name, public FinanceDate[] holidays)

Parameters: name: string, holidays: FinanceDate[]


Public signature
export function compoundFutureValue(double principal, double annualRate, int compoundsPerYear, double years)->double

Parameters: principal: double, annualRate: double, compoundsPerYear: int, years: double


Public signature
export function convertMoney(Money source, string targetCurrency, long rateNumerator, long rateDenominator, int targetMinorUnitDigits, string rounding)->Money

Parameters: source: Money, targetCurrency: string, rateNumerator: long, rateDenominator: long, targetMinorUnitDigits: int, rounding: string


Public signature
export function curvePresentValue(FinanceDate valuation, DatedCashFlow[] cashFlows, FinanceDate[] curveDates, double[] zeroRates, string convention)->CurvePresentValue

Parameters: valuation: FinanceDate, cashFlows: DatedCashFlow[], curveDates: FinanceDate[], zeroRates: double[], convention: string


Public signature
export record CurvePresentValue(public double presentValue, public double[] discountedCashFlows, public string interpolation, public string dayCount)

Parameters: presentValue: double, discountedCashFlows: double[], interpolation: string, dayCount: string


Public signature
export record DatedCashFlow(public FinanceDate date, public double amount)

Parameters: date: FinanceDate, amount: double


Public signature
export function datedInternalRateOfReturn(DatedCashFlow[] cashFlows, double lower, double upper, string convention, double tolerance, int maximumIterations, int scanSteps)->DatedIrrResult

Parameters: cashFlows: DatedCashFlow[], lower: double, upper: double, convention: string, tolerance: double, maximumIterations: int, scanSteps: int


Public signature
export record DatedIrrResult(public double rate, public double residual, public int iterations, public int rootsFound, public bool converged, public string dayCount)

Parameters: rate: double, residual: double, iterations: int, rootsFound: int, converged: bool, dayCount: string


Public signature
export function datedNetPresentValue(DatedCashFlow[] cashFlows, double rate, string convention)->double

Parameters: cashFlows: DatedCashFlow[], rate: double, convention: string


Public signature
export function effectiveAnnualRate(double nominalRate, int compoundsPerYear, string calendarConvention)->double

Parameters: nominalRate: double, compoundsPerYear: int, calendarConvention: string


Public signature
export function financeDate(int year, int month, int day)->FinanceDate

Parameters: year: int, month: int, day: int


Public signature
export record FinanceDate(public int year, public int month, public int day)

Parameters: year: int, month: int, day: int


Public signature
export function futureValue(double principal, double rate, int count)->double

Parameters: principal: double, rate: double, count: int


Public signature
export function internalRateOfReturn(double[] cashFlows, double lower, double upper, double tolerance, int maximumIterations)->IrrResult

Parameters: cashFlows: double[], lower: double, upper: double, tolerance: double, maximumIterations: int


Public signature
export record IrrResult(public double rate, public double residual, public int iterations, public bool converged)

Parameters: rate: double, residual: double, iterations: int, converged: bool


Public signature
export function irrRootSet(double[] cashFlows, double lower, double upper, double tolerance, int maximumIterations, int scanSteps)->IrrRootSet

Parameters: cashFlows: double[], lower: double, upper: double, tolerance: double, maximumIterations: int, scanSteps: int


Public signature
export record IrrRootSet(public double[] rates, public double[] residuals, public string classification, public bool converged)

Parameters: rates: double[], residuals: double[], classification: string, converged: bool


Public signature
export function isBusinessDay(FinanceDate date, BusinessCalendar calendar)->bool

Parameters: date: FinanceDate, calendar: BusinessCalendar


Public signature
export function levelPayment(double principal, double rate, int count)->double

Parameters: principal: double, rate: double, count: int


Public signature
export function money(string currency, long minorUnits, int minorUnitDigits)->Money

Parameters: currency: string, minorUnits: long, minorUnitDigits: int


Public signature
export record Money(public string currency, public long minorUnits, public int minorUnitDigits)

Parameters: currency: string, minorUnits: long, minorUnitDigits: int


Public signature
export function moneyFromMajor(string currency, decimal amount, int minorUnitDigits)->Money

Parameters: currency: string, amount: decimal, minorUnitDigits: int


Public signature
export function moneyToMajor(Money value)->decimal

Parameters: value: Money


Public signature
export function mortgageSchedule(double principal, double nominalAnnualRate, int paymentsPerYear, int paymentCount, double[] prepayments)->AmortizationSchedule

Parameters: principal: double, nominalAnnualRate: double, paymentsPerYear: int, paymentCount: int, prepayments: double[]


Public signature
export function netPresentValue(double[] cashFlows, double rate)->double

Parameters: cashFlows: double[], rate: double


Public signature
export function presentValue(double future, double rate, int count)->double

Parameters: future: double, rate: double, count: int


Public signature
export function remainingBalance(double principal, double rate, int totalPeriods, int paymentsMade)->double

Parameters: principal: double, rate: double, totalPeriods: int, paymentsMade: int


Public signature
export function roundMoney(string currency, long amountNumerator, long amountDenominator, int minorUnitDigits, string policy)->Money

Parameters: currency: string, amountNumerator: long, amountDenominator: long, minorUnitDigits: int, policy: string


Public signature
export function simpleFutureValue(double principal, double annualRate, double years)->double

Parameters: principal: double, annualRate: double, years: double


Public signature
export function simpleInterest(double principal, double annualRate, double years)->double

Parameters: principal: double, annualRate: double, years: double


Public signature
export function yearFraction(FinanceDate start, FinanceDate finish, string convention)->double

Parameters: start: FinanceDate, finish: FinanceDate, convention: string


Documentation version

Language 1.0.0, compiler 1.0.0, runtime 1.0.0. This reference is generated from the official SS documentation so package and language details stay consistent with the release.