Derivatives Expert


Major Changes

Bookmark New in Derivatives Expert IV

Bookmark New in Derivatives Expert III

Bookmark New in Derivatives Expert 2



New in Derivatives Expert IV

There have been changes to Derivatives Expert which are not necessarily mentioned below. The updates and additions of symbols described below account for some of the major changes. Refer to the individual notebooks for more information.

Bookmark 1. CalendarTools.nb

The following functions have been added: HoursPlus, MinutesPlus, SecondsPlus, DateTimeGenerate and TimeLength.

The following optionals (called optionals to distinguish from financial options) have been added: TimeUnit, TimeScale, SplitDateTime and SQLForm.

The following optional values (values passed or given to optionals) have been added: Year, Month, Week, Day, Hour, Minute and Second.

The Derivatives Expert version of DateQ has been removed because a likewise Mathematica function has been introduced with Mathematica 6 but note that the Mathematica DateQ function allows input of hours, minutes and seconds which the former Derivatives Expert DateQ did not.

The following argument types have been added: datetime, hours, minutes and seconds.

Bookmark 2. UtilityTools.nb

The following functions have been added: SymmetricMatrixQ, Abs1MatrixQ, NumberMatrixQ, DateToSQLForm, TimeToSQLForm, TableToSQLForm and CumulativeSum.

The following function has been removed as of for Mathematica 7 usage because the same function has been introduced in Mathematica 7: SymmetricMatrixQ.

Bookmark 3. DiscountingTools.nb

New updated versions of functions CompoundFactor, DiscountFactor, DiscountFactors, DiscountFactorToInterestRates, ConvertDiscountFactorBasis and all other functions that take the optional Compounding to include the new optional value Continuous2.

Bookmark 5. TermstructureTools.nb

The function FitInterestRates has been removed.

EstimateTermStructure has been updated as of for Mathematica 7.

Bookmark 18. StatisticalTools.nb

The following functions have been updated: EstimateVolatility, Deviation, Simulate.
The function LogDeviation has been removed but the functionality integrated into Deviation.

The following objects have been updated: Price, PricePath.

The following optionals have been added: Decomposition, Method.

The following optional values have been added: Cholesky, SingularValues, LogRelativeReturn, RelativeReturn.

The following new functions, optionals and optional values have been documented only in the Reference.nb documentation but information is also available through the Mathematica function Information[ Symbol].

Functions: PDF2, RandomArray, Covariance2, Correlation2, AutoCorrelation2, TakeMean, HistogramForm, EmpiricalDistributionForm, ProbitForm.

Objects: Gaussian, MultiGaussian.

Optional values: BoxMuller1, Random1.



New in Derivatives Expert III

The manual now consists of 23 notebooks and corresponds to a total of approximately 800 pages. The documentation is fully interactive with substantial use of hyperlinks, graphics, editable code etc. The underlying packages/modules consist of approximately 25000 lines of compact Mathematica and Java programming code.

Bookmark 1. CalendarTools

DateQ, LeapYearQ, YearsInPeriod are now cached for performance reasons. Many functions use these three functions indirectly and are therefore speeded up.

The internal calculation of Easter Sunday has been optimized. Many holidays are measured with reference to Easter Sunday so functions that make corrections for business days/working days are also improved.

Bookmark 2. UtilityTools

The following nine functions have been added: NonNegativeListQ, PositiveIntegerQ,
NonNegativeIntegerQ, UnionSum, OldEuroCurrencyQ,
DiagPos, WrapSingleQuotes, NotNumericQ, NonNumericPos.

Bookmark 3. DicountingTools

Compiled and non-compiled versions of CompoundFactor, DiscountFactor are now available. A new optional has therefore been introduced: CompiledDF.

All functions of the DiscountingTools.m package are now faster. A choice can now be made on whether to work with fast functions using "infinite" precision numbers, or to work with even faster functions using machine precision numbers.

Bookmark 4. CashFlowTools

The symbol AccruedInterest is now used both as a symbol for the function AccruedInterest and for the optional AccruedInterest.

Bookmark 5. TermStructureTools

The function FitInterestRates with three different versions has been added.

The return format of the function InterpolateInterestRates is now of the standard Mathematica type InterpolatingFunction.

Bookmark 6. PricingTools

A new optional has been introduced, CompiledDF, for ImplicitYield and PresentValue. A choice can now be made on whether to work with fast functions using "infinite" precision numbers, or to work with even faster functions using machine precision numbers.

Bookmark 7. StaticRiskTools

A new optional has been introduced, CompiledDF, for Duration and TermStructureRisk. A choice can now be made on whether to work with fast functions using "infinite" precision numbers, or to work with even faster functions using machine precision numbers.

Bookmark 8. Bonds

A new optional has been introduced, CompiledDF, for ImplicitYield, PresentValue, Duration and TermStructureRisk.  A choice can now be made on whether to work with fast functions using "infinite" precision numbers, or to work with even faster functions using machine precision numbers. CompiledDF can be used with all bond objects.

AccruedInterest has been added as an optional to the bond objects Annuity, Bullet and Serial so that there is now a choice of including accrued interest or not. In earlier versions of Derivatives Expert accrued interest was always included.

Bookmark 9. MortgageBackedObligations

A new optional has been introduced, CompiledDF, for ImplicitYield, PresentValue and TermStructureRisk.  A choice can now be made on whether to work with fast functions using "infinite" precision numbers, or to work with even faster functions using machine precision numbers. CompiledDF can be used with the MBO object PassThrough.

AccruedInterest has been added as an optional to the mortgage backed obligation object PassThrough so that there is now a choice whether to include accrued interest or not. In earlier versions of Derivatives Expert, accrued interest was always included.

Bookmark 10. Floaters

A new optional, SettlementDays, has been introduced for use with the general amortization version of Float.

A new optional has been introduced, CompiledDF, for CashFlow, TheoreticalPrice, PresentValue and TermStructureRisk.  A choice can now be made on whether to work with fast functions using "infinite" precision numbers, or to work with even faster functions using machine precision numbers. CompiledDF can be used with the Floaters object Float.

Many examples in Floaters.nb have been revised or rewritten.

Bookmark 11. Forwards

A new optional has been introduced, CompiledDF, for CashFlow, TheoreticalPrice, PresentValue and TermStructureRisk.  A choice can now be made on whether to work with fast functions using "infinite" precision numbers, or to work with even faster functions using machine precision numbers. CompiledDF can be used with the Forwards objects Forward, MoneyMarketForward, ForwardRateAgreement and ForeignExchangeForward.

Bookmark 12. Swaps

Two new objects, Fixed and Floating, have been introduced for use with the swap objects InterestRateSwap and PlainCurrencySwap.

A new optional has been introduced, CompiledDF, for CashFlow, TheoreticalPrice, UnitPresentValueChange, PresentValue and TermStructureRisk.  A choice can now be made on whether to work with fast functions using "infinite" precision numbers, or to work with even faster functions using machine precision numbers. CompiledDF can be used with the swap objects InterestRateSwap and PlainCurrencySwap and their respective legs.

AccruedInterest has been added as an optional to the swap objects so that there is now a choice of whether of including accrued interest or not. In earlier versions of Derivatives Expert accrued interest was always included, although swaps normally do not incorporate accrued interest.

All examples in Swaps.nb have been revised or rewritten.

Bookmark 13. - 16. Options

Three additional and new binomial options have been added: Binomial3, Binomial4 and Binomial5.

With these new options, the optional DividendSpecification has been introduced. It enables a choice between (1) times of dividends specified as years or as (trading) periods, (2) dividends given as a percentage or as a monetary amount.

Also refer to the section below, 19. Exotics.

Bookmark 17. DatabaseTools

New database functionality, functions and methods to connect to multiple databases on multiple machines at the same time, have been added. There are functions to fetch data in a completely general way by using the appropriate and industry standard SQL commands that are valid for the given Java version, the given JDBC database driver and the given database itself. Commands like SELECT, UPDATE, DELETE , CREATE, DESCRIBE and INSERT can be used with excellent performance.

Tests have been done on the Windows platform and on the Linux platform with Oracle and MySQL databases. The functionality should also work directly on other platforms e.g. Unix and Mac OS X, with many other appropriate JDBC drivers and databases such as IBM DB2, Sybase, Microsoft SQL Server and small databases like Microsoft Access.

Three new functions have been added, DBCloseConnection, DBConnection and SQLCommand. An optional called OutputFormat has been added. Through the setting of OutputFormat different types of data formats can be returned, namely list of list of expressions, string or XML.

Bookmark 18. StatisticalTools

Fast simulation of prices and price paths with the use of monte carlo methods have been added. Millions of random prices can be simulated in seconds on a standard computer. The limits to the absolute number of simulations and the execution speed is limited only by the given hardware.

Four new functions and two objects have been added. These are Simulate, Price, PricePath
EstimateVolatility, Deviation and LogDeviation.

Simulate[ Price[]] generates (financial asset) prices at the time-of-maturity (equal to theta).

Simulate[ PricePath[]] simulates a number of price paths from time zero (spot) to time theta (T) having p equidistant or non-equidistant times of trading along the price paths.

The simulations can be done in the multivariate case too where the stochastic processes can be correlated.

Bookmark 19. Exotics

Functions for simulation of option prices using monte carlo methods have been added. The limits to the absolute number of simulations and the execution speed is limited only by the given hardware.

EuropeanArithmeticAverageCallOption
EuropeanArithmeticAveragePutOption

EuropeanArithmeticAverageStrikePutOption
EuropeanArithmeticAverageStrikeCallOption

EuropeanGeometricAverageCallOption
EuropeanGeometricAveragePutOption

EuropeanGeometricAverageStrikeCallOption
EuropeanGeometricAverageStrikePutOption

The arithmetic average Asian options and the geometric average Asian options also cover forward-start average options where the averaging period is deferred.





New in Derivatives Expert 2

Bookmark All Notebooks

Hyperlinks are now used extensively within notebooks and between notebooks. Instead of using private stylesheets within each notebook, the notebooks now share a common stylesheet.

Bookmark ExoticOptions1.nb

This is a new chapter covering about 40 different path dependent exotic options.

Bookmark ExoticOptions2.nb

This is a new chapter covering about 28 different correlation or multiasset exotic options.

Bookmark  OptionsGraphics.nb

A section about graphic animations has been added.

Bookmark  Zhang.m

This is a completely new package that holds all the different exotic option pricing models. This package is now the largest package of Derivatives Expert and comprises almost 5000 lines of compact Mathematica programming code. Documentation and examples are found in the notebooks ExoticOptions1.nb and ExoticOptions2.nb.

Bookmark  CoxRossRubinstein.m

The Binomial3 option pricing model has been added.

Bookmark  TermStructureTools.m

The function EstimateTermStructure now takes arguments of the numeric type (NumericQ). In version 1 the arguments had to be numbers (NumberQ).

Bookmark  CashFlowTools.m

The functions: UnionCashFlow, AddCashFlows, SubtractCashFlows and MakeCashFlowMatrix have all been updated to accept either machine precision zeroes or exact zeroes as thetas in the non-calendar time versions. In version 1 the thetas had to be exact zeroes in the non-calendar time versions.

Bookmark  PricingTools.m

In the non-calendar time versions of the functions PresentValue and ImplicitYield the argument cashflow now accepts either machine precision zeroes or exact zeroes as thetas. In version 1 the thetas had to be exact zeroes the non-calendar time versions.

Bookmark  StaticRiskTools.m

In the non-calendar time version of the function Duration the argument cashflow now accepts either machine precision zeroes or exact zeroes as thetas. In version 1 the thetas had to be exact zeroes in the non-calendar time versions.
The function SubtractPresentValues has been updated to accept a mixture of machine precision zeroes and exact zeroes as presentvalue inputs.

Bookmark  Floaters.m

The non-calendar time version of Float has been corrected to treat machine precision zeroes and exact zeroes properly.

Bookmark  All Packages And All Notebooks

The function NotNegativeQ has been replaced by the function NonNegative.
The function NNumberQ has been replaced by the function NumericQ.
The function PositiveNNumberQ has been replaced by the function Positive.

The function NNumberSymbolQ is now called NumericSymbolQ.
The function NotNNegativeListQ is now called NonNegativeListQ.
The function NPositiveListQ is now called PositiveListQ.

 

Copyright © 1994-2009 Innova Financial Solutions ApS. All rights reserved.   

Updated 2 August 2009