Node org.unizone.finance.interest.Interest

org.unizone.0.8536
Instance of TypeScriptInfo

Node dataValue
org.edgescript.TypeScriptInfo.prerequisiteParcelsList{}
org.edgescript.TypeScriptInfo.prerequisiteMethodsList{}
org.edgescript.TypeScriptInfo.script/* constructor() { Instrument:(); } Symbol valueType() { #rate; } Symbol defaultAspect() { #bid; } Int preferredDays() {365} Int settlementDays() {3} class Real cleanPriceQuote(Time settlement, Time maturity, Real rate, Real coupon) { Time couponDate = maturity; Real t = couponDate.subtractDate360(settlement) / 360; if (t <= 0) return null; Real rateConst = 1 + rate / 100; Real price = 100 / rateConst ^ t; while ((t = couponDate.subtractDate360(settlement) / 360) > 0) { price = price + coupon / rateConst ^ t; couponDate = couponDate.addYears(-1); } ((price + t * coupon) * 1000).round / 1000; } class Real dirtyPriceQuote(Time settlement, Time maturity, Real rate, Real coupon) { Real clean = cleanPriceQuote(settlement, maturity, rate, coupon); if (clean == null) return null; Time couponDate = maturity; while (couponDate.subtractDate360(settlement) > 360) couponDate = couponDate.addYears(-1); ((clean + (1 - couponDate.subtractDate360(settlement) / 360) * coupon) * 1000000) .round / 1000000; } class Real dirtyPriceGreek(Time settlement, Time maturity, Real rate, Real coupon) { Time couponDate = maturity; Real t = couponDate.subtractDate360(settlement) / 360; if (t <= 0) return null; Real rateConst = 1 + rate / 100; Real price = 100 / rateConst ^ t; while ((t = couponDate.subtractDate360(settlement) / 360) > 0) { price = price + coupon / rateConst ^ t; couponDate = couponDate.addYears(-1); } price; } */
org.edgescript.TypeScriptInfo.defineTypeorg.unizone.finance.interest.Interest
org.edgescript.TypeScriptInfo.prerequisiteScriptsList{}