Release Notes for S+FinMetrics 3.0 (September, 2007) These Release Notes are current as of September 17, 2007. ************************************************************************ Contents of these Release Notes ************************************************************************ * SUPPORTED PLATFORMS AND SYSTEM REQUIREMENTS * Windows-specific requirements * WHAT'S NEW * FIXED BUGS * RUNNING S+FINMETRICS IN S-PLUS * KNOWN ISSUES * CONTACT INFORMATION FOR FEEDBACK * NEW S+FINMETRICS FUNCTIONS ************************************************************************ SUPPORTED PLATFORMS AND SYSTEM REQUIREMENTS ************************************************************************ S+FinMetrics 3.0 requires S-PLUS 8.0.4 or later on Microsoft Windows. ************************************************************************ WINDOWS-SPECIFIC REQUIREMENTS ************************************************************************ For a list of supported platforms, see the S-PLUS 8.x Release Notes. To view the S-PLUS release notes, in the Windows UI, click Help > Release Notes. Note that S+FinMetrics is NOT SUPPORTED under WIN32S (that is, Windows 3.1x), nor is it supported under Windows NT 3.51 or Windows 95, 98 or ME. The minimum recommended system configuration is the same as S-PLUS 8.x for Windows. See the S-PLUS Release Notes for more informaiton. ************************************************************************ WHAT'S NEW ************************************************************************ The following is a list of features new in the S+FinMetrics 3.0 release: New functions: S+FinMetrics now provides a wide variety of functions for option pricing, bond pricing, and related tasks. In addition, the state-space time series modeling capabilities within S+FinMetrics have been enhanced and high-frequence time series manipulation functions have been added. The following is a list of functional areas for this module: * Vanilla Options * Exotic Equity Option (American) * Exotic Equity Option (European) * Exotic Path Dependent Option (European) * Dynamic Hedging * FI Derivatives * FI Security Calculations * Cash Flow & Utility Functions * High Frequency time series manipulation * State-Space modeling A list of functions by topic is available at the end of this document. ************************************************************************ FIXED BUGS ************************************************************************ function: pgarch() Now supports the correct setting of power.value argument. function: persp.dbivd(), contour.dbivd(), persp.pbivd(), contour.pbivd() Added a value argument. If value="list", a plot is created. If value="trellis", a trellis object is created. function: timeChange(), exchangeOpen() and excludeTimes() These three functions now work with bdTimeSeries. ************************************************************************ RUNNING S+FINMETRICS IN S-PLUS ************************************************************************ After you install S+FinMetrics, you can run the module from the S-PLUS command line by typing: > module(finmetrics) In S-PLUS for Windows, you can also load S+FinMetrics by choosing File > Load Module > finmetrics. ************************************************************************ CONTACT INFORMATION FOR FEEDBACK ************************************************************************ Please feel free to contact us with questions about this release. Send all questions and general comments to: finmetrics@insightful.com We are very interested in receiving your comments and suggestions for improving S+FinMetrics. ************************************************************************ NEW S+FINMETRICS FUNCTIONS ************************************************************************ ## Vanilla Options bsmAMBAW: Compute American options with continuous dividend yield using BAW approximation. bsmAMBS: Compute American options with continuous dividend yield using BS approximation. bsmAMParity: Compute American options using parity. bsmCallOneDivAM: Compute American call options with one cash dividend. bsmCondivBinom: Compute American or European options with continuous dividend yield using binomial tree approximation. bsmCondivFD: Compute American or European options with continuous dividend yield using finite difference approximation to Black-Scholes PDE. bsmCondivTrinom: Compute American or European options with continuous dividend yield using trinomial tree approximation. bsmDiscDivAMBinom: Compute American options with discrete cash dividend using binomial tree approximation. bsmEU: Compute the generalized Black-Scholes for European options. bsmEUParity: Compute European options using parity. bsmFuturesAM: Pricing American options on futures. bsmFuturesEU: Pricing options on futures with Black-Scholes. bsmFXAM: Pricing American options on foreign exchanges. bsmFXEU: Pricing options on foreign exchanges with Black-Scholes. bsmPerpetualAM: Compute perpetual American options. bsmStockAM: Pricing American options on stocks by formula (analytic approximation, binomial, trinomial or finite difference method). bsmStockEU: Pricing options on stocks with Black-Scholes. jdEU: Compute Merton jump diffusion model for European options. opBinomCashFlow: Pricing arbitrary cash flow streams (in a lower triangular matrix tree format). opBinomTree: Construction of a general stock price binomial tree. svolEUMC: Computes the price of a Plain Vanilla European Option with Monte Carlo simulation cevEUMC: Computes the price of a European option using Monte Carlo Simulation under the Generalized Constant Elasticity of Variance model proposed by Cox and Ross (1976) ## Exotic Equity Option (American) bsmBarrierBinom: Pricing standard American or European barrier options using binomial tree. bsmBermudanBinom: Pricing standard Bermuda options. bsmBinaryAM: Pricing standard American binary options (one-touch options). bsmDualStrikeBinom: Pricing American and European option with dual strikes by 3D binomial tree. bsmExchangeAM: Pricing American style exchange one asset for another options by BS approximation. bsmMaxMinBinom: Pricing American and European option on max or min of two assets by 3D binomial tree. bsmSpreadBinom: Pricing American and European option on spread of two assets by 3D binomial tree. ## Exotic Equity Option (European) bsmBinaryEU: Pricing standard European binary options. bsmBinaryTwoAssetEU: Pricing two asset cash or nothing options. bsmComplexChooserEU: Pricing complex chooser options. bsmCompoundOptionEU: Pricing options on options. bsmEqLinkedFXEU: Pricing equity linked foreign exchange options. bsmExchangeEU: Pricing European style exchange one asset for another options. bsmExecutiveEU: Pricing executive stock options. bsmForEqInDomCurEU: Pricing foreign equity options struck in domestic currency. bsmForwardStartEU: Pricing forward start options. bsmGapEU: Pricing gap options. bsmMaxMinEU: Pricing max or min of two assets options. bsmQuantoEU: Pricing Quanto options. bsmRatchetEU: Pricing moving strike options. bsmSimpleChooserEU: Pricing simple chooser options. bsmSpreadEU: Pricing options on spread of two futures contract by Kirk’s approximation. bsmSupershareEU: Pricing supershare options. bsmTimeSwitchEU: Pricing time switch options. bsmTwoAssetCorEU: Pricing two-asset correlation options. bsmWriterExtendEU: Pricing options that are extendible by writer. ## Exotic Path Dependent Option (European) bsmAsianArithFixedEULevy: Pricing Asian arithmetic average rate option by Levy approximation. bsmAsianArithFixedEUTW: Pricing Asian arithmetic average rate option by TW approximation. bsmAsianGeomEU: Pricing Asian geometric average rate option. bsmBarrier: Pricing standard barrier option. bsmBarrierDoubleEU: Pricing double barrier option. bsmBarrierLookEU: Pricing look barrier option. bsmBarrierPartialEU: Pricing partial time barrier option. bsmBarrierPartialTwoAssetEU: Pricing partial time two asset barrier option. bsmBarrierSoftEU: Pricing soft barrier option. bsmBarrierTwoAssetEU: Pricing two asset barrier option. bsmBinaryBarrierEU: Pricing binary barrier option. bsmLookbackExtremeSpreadEU: Pricing lookback option on extreme spread. bsmLookbackFixedEU: Pricing lookback option with fixed strike bsmLookbackFloatEU: Pricing lookback option with floating strike. bsmLookbackPartialFixedEU: Pricing lookback option with partial time fixed strike. bsmLookbackPartialFloatEU: Pricing lookback option with partial time floating strike. opBarrierAdj: Monitoring adjustment for European discrete barrier option. ## Dynamic Hedging impTreeEUTrinom: Implied trinomial tree; local volatility fitting; alternative option pricing. opDelta: Generic delta hedging function (by numeric approximation). opDeltaBSM: Compute delta for B-S options. opGamma: Generic gamma hedging function (by numeric approximation). opGammaBSM: Compute gamma for B-S options. opImpVol: Generic function for computing implied volatilities for all classes of options (using numeric approximation). opLambda: Generic lambda hedging function (by numeric approximation). opLambdaBSM: Compute lambda for B-S options. opRho: Generic rho hedging function (by numeric approximation). opRhoBSM: Compute rho for B-S options. opSenCostCarry: Ceneric Cost of Carry hedging function (by numeric approximation). opSenCostCarryBSM: Compute sensitivity to Cost of Carry for B-S options. opTheta: Generic theta hedging function (by numeric approximation). opThetaBSM: Gompute theta for B-S options. opVega: Generic vega hedging function (by numeric approximation). opVegaBSM: Compute vega for B-S options. ## FI Derivatives bdtBondOption: Pricing European or American zero coupon bond option using BDT interest rate model. bdtCapFloor: Pricing caps/floors using BDT interest rate model. blackBondOption: Pricing bond option using Black 76 or modified Black. blackCaplet: Pricing caplet using Black 76. blackFloorlet: Pricing floorlet using Black 76. blackSwaption: Pricing swaption using Black 76. fiConvBondBinom: Compute convertible bond prices using binomial tree approximation. fiEurodollar: Compute LIBOR term structure based on Eurodollar futures contracts. fiForwardPrice: Futures / forward contract pricing. fiFuturesPrice: Gutures / forward contract pricing. fiSwapCurve: Compute swap curve based on current term structure. fiSwapPrice: Compute the receiving-float-pay-fixed swap contracts based on discount/forward rates. opBDTCashFlow: Pricing an arbitrary cash flow tree using BDT interest rate tree. opBDTTree: Construct a BDT interest rate tree given the current term structure and zero volatility. ## FI Security Calculations siaAccruedInterest: Calculate the accrued interests for all bond objects. siaBond: To initialize objects of bond, DiscountInst, IntAtMaturity, CouponBond, zeroCoupon or stepCouponBond class. siaCouponBondCashFlow: Find, compute, and generate cash flows in form of signalSeries for all coupon paying bonds that do not follow MSRB rules. siaCouponBondPrice: Calculate the price for all coupon paying bonds that do not follow MSRB rules. siaCouponBondYield: Calculate the yield for all coupon paying bonds that do not follow MSRB rules. siaDayCount: SIA day counting function (replacing days.count in FinMetrics 1.0). siaDiscountAmount: Calculate the discount amount for DiscountInst objects. siaDiscountRate: Calculate the discount rate given price for DiscountInst objects. siaEndMonthDay: Return the end of month date given month and year. siaFirstCouponDate: Find the first coupon dates after issuance of bond objects. siaFutureCouponDates: Find all future real and quasi coupon payment dates until some given dates. siaJoinBond: Combine 2 bond objects and make them one. siaLastCouponDate: Find the last coupon dates before redemption of bond objects. siaMuniBondCashFlow: Find, compute and generate cash flows in form of signalSeries for municipal coupon bonds. siaMuniBondPrice: Calculate the price for municipal coupon bonds. siaMuniBondYield: Calculate the yield for municipal coupon bonds. siaNextCouponDate: Find the next real and quasi coupon payment dates given any dates. siaPastCouponDates: Find all previous real and quasi coupon payment dates until some given dates. siaPrevCouponDate: Find the previous real and quasi coupon payment dates given any dates. siaPrice: Bond price function. siaPrice.siaBond: PRICE method function for bond class objects. siaPrice.siaCouponBond: PRICE method function for CouponBond class objects. siaPrice.siaDiscountInst: PRICE method function for DiscountInst class objects (replacing bond.billprice in FinMetrics 1.0). siaPrice.siaIntAtMaturity: PRICE method function for IntAtMaturity class objects. siaPrice.siaStepCouponBond: PRICE method function for stepCouponBond class objects. siaPrice.siaZeroCouponBond: PRICE method function for zeroCouponBond class objects. siaSelectBond: Select bond objects from a collection of bond objects. siaSyncDate: Find the sync dates of bond objects. siaValidBond: Validity check function of bond class objects. siaYield: Bond yield function. siaYield.siaBond: YIELD method function for bond class objects (annualized). siaYield.siaCouponBond: YIELD method function for CouponBond class objects. siaYield.siaDiscountInst: YIELD method function for DiscountInst class objects. siaYield.siaIntAtMaturity: YIELD method function for IntAtMaturity class objects. siaYield.siaZeroCouponBond: YIELD method function for zeroCouponBond class objects. ## Cash Flow & Utility Functions bond.bootstrap: Model-based bootstrapping given limited par bond yield data. bond.par: Converting from limited spot or discount rates to a par bond yield curve. cfAmortize: Calculate the amortization schedule given the present value and/or future value of a loan. cfConvexity: Calculate convexity of any number of arbitrary cash flow streams with their compounding frequencies. cfDepreciate: Calculate the depreciation schedule based on straight-line, sum of year digit, and general declining balance depreciation methods. cfDuration: Calculate durations of any number of arbitrary cash flow streams with their compounding frequencies. cfEffrr: Convert a vector of nominal rate of returns to effective rate of returns. cfFutureValue: Calculate future values of any number of arbitrary cash flow streams with their compounding frequencies. cfIrr: Find internal rate of returns of any number of arbitrary cash flow streams with their compounding frequencies. cfNomrr: Convert a vector of effective rate of returns to nominal rate of returns. cfPayment: Calculate the periodic payment given the present value and/or future value of a loan. cfPresentValue: Calculate present values of any number of arbitrary cash flow streams with their compounding frequencies. fiBondPrice: Bond pricing given term structure. ## High Frequency activityTime: Makes a timeDate or bdTimeDate vector, with time re-scaled so that ticks are equally spaced within each time period. dayPlot: Plot time series with each day in a separate Trellis graphics panel. exchangeOpen: Calculates whether an exchange is open or not at each of the times in a timeDate or bdTimeDate vector. excludeTimes: Drops observations from a timeSeries or bdTimeSeries based on when an exchange is open or closed. intervalApply: Applies an aggregating function to combine intervals of timeSeries or bdTimeSeries data into one series. naInterval: Computes times between NA values, or counts of consecutive NA values in a bdTimeSeries or timeSeries. priceChange: Computes price changes for a timeSeries or bdTimeSeries restricting to times when the exchange is open. realizedCor: Calculates the realized variance, covariance, correlation, and volatility of time series trade data. realizedCov: Calculates the realized variance, covariance, correlation, and volatility of time series trade data. realizedVar: Calculates the realized variance, covariance, correlation, and volatility of time series trade data. realizedVol: Calculates the realized variance, covariance, correlation, and volatility of time series trade data. seriesClean: Removes NA values and observations that are more than a given number of standard deviations of the mean. seriesReorder: Returns the series re-ordered so the positions are in ascending order. seriesRep: Extends a series by replication to new positions. timeChange: Computes times between ticks for a timeSeries or bdTimeSeries, restricting to times when the exchange is open. timeSeqExchange: Construct a regularly spaced timeDate object, excluding times when the exchange is closed. tradeDirection: Calculates whether ticks represent buy or sell trades. ## State-Space Modeling KalmanFilMean: Performs Kalman filtering given the response variables or the observables and a state space form representation SsfMomentEstMulti: Returns the mean and variance of multi-step ahead predicted variables. AddSsfReg: Add regressors to a time-invariant state space model and create a new model. SsfCombine: Combine two state space models through their system or variance matrices. SsfCombineSym: Combine two state space models through their system or variance matrices SsfForecast: Out-of-sample multi-step ahead forecast with their mean square errors. GetSsfSarima: Returns the minimal necessary components for a state space form of a univariate (integrated seasonal) autoregressive and moving average model with or without regressors.