Version History

11 Apr 2024 version 14.12.0

New Features:
  • Major overhaul of the SABR swaption volatility calibration with detailed reporting on calibrated prices and volatilites.
  • With a SABR volatility cube where the market vols are quoted as either normal or lognormal, the swaption pricing now succeeds even if the pricing method does not match the vol quotation type. Specifically, a) the Bachelier pricing method can be used even with lognormally quoted vols and b) the lognormal Black method with normally quoted vols.
  • Now the Ibor Rate type can also represent the forward-looking compounded average of an overnight index by means of the new key OI Term that is set by default to FALSE that results to the conventional definition. Setting this key to TRUE enables dependent types, such as Swaption, to reference swaps of which the index is the compounded average of an overnight index (i.e. OIS).
  • Enhanced the types Vanilla Swaption, FxdFlt Swaption and FltFlt Swaption with the new optional keys Settlement Type and Settlement Method.
  • Introduced the new function Rearrange that applies on objects of type Table. This function can permute and/or merge any arbitrary number of axes.
  • If in the process of a pricing routine a collection of market data contains a single Yield Curve, then the only matching criterium will be the currency. In other words, the curve's Issuer becomes irrelevant and the curve will be used as long as its currency matches the pricing routine's requirements.

14 Dec 2023 version 14.11.1

Bug Fixes:
  • Renamed the keys Tgt Ccy Src Col Crv=, Src Ccy Tgt Col Crv=, Src Ccy Src Col Crv= in ImpYC CSA Disc to Tgt Ccy ColA Crv=, Src Ccy ColB Crv=, Src Ccy ColA Crv= respectively.
  • The default calendar associated with the keys Src Cp Prd= , Tgt Cp Prd= , Src Pmt Lag= and Tgt Pmt Lag= in type Yield Curve Fxb is now set equal to the calendar defined in key Swap Settle=. This ensures that the default case leads to currency swaps of which the legs have matching accrual and payment dates.

15 Nov 2023 version 14.11.0

New Features:
  • Added the new type ImpYC CSA Disc under Yield Curve Imp under Yield Curve Input that can imply a collateralized discounting Yield Curve in the context of cross currency swaps out of other already constructed curves.
  • In the Bond functions I Spread and I Spread Swap Equiv added the optional keys Fxd DC=, Fxd Cal= and Fxd Bump= with default values taken from the index. Also the key Indexed Coupon= is now applicable even when the index is OI Term Rate and is set to TRUE by default so that the compounding period of the overnight rate matches the corresponding accrual period.
  • Improved the default Solver object used in the Fair Value calculation so that a solution is found for a wider range of initial guess values.

30 Sep 2023 version 14.10.0

New Features:
  • Added the functions I Spread and I Spread Swap Equiv in type Bond that relate to the Bloomberg I-SPRD output.
  • Added the optional key Rule= in type Asset Swap that can be used to define how the date schedule of the Ibor leg is constructed. If omitted, the rule defined in the referenced Bond is used, as the case had been in prior versions.
Bug Fixes:
  • The functions Asset Swap::Fair Spread and Bond::Asset Swap Spread ignored the up front payment if that happened to occur on trade date and thus returned an unreasonable output.
  • Letting the key Ref Date= unspecified in functions Bond::Asset Swap Spread and Bond::Asset Swap Equiv led to a wrong implied reference date equalling the accrual start date of the bond.
  • The function Bond::Asset Swap Spread returned wrong result if the global trade date differed from the trade date in the yield curve.
  • The payment lag was not considered in the determination of the Bond maturity in cases where the latter referred to the last payment date.
  • Bogus historical fixings were sometimes created automatically during the construction by Deriscope of default Model objects. This had the sideffect that numerical results were returned instead of errors by functions that were not fed with the necessary historical fixings.
  • The function Price applied on an Asset Swap now always takes into account an up front payment even if this happens to occur on trade date.

18 Sep 2023 version 14.9.0

New Features:
  • Enhanced the function Implied Value of type Vol Curve to process also arrays of maturities and added the optional key All Combs= that leads to the output of an object of type Table that contains the result of processing of all combinations of the input strike and maturity parameters
  • Added the optional keys Src Lag on Principal= and Tgt Lag on Principal= in the types IRS, Currency Swap and Yield Curve Fxb with default set to FALSE for backward compatibility. When set to TRUE, a likely specified payment lag applies on both coupon and principal payments, otherwise on coupon payments only.
  • Added the Box Muller random generator method as an alternative to the existing Pseudo Random.
Bug Fixes:
  • Both in Currency Swap and the Yield Curve created from FX Basis Swaps, i.e. from Yield Curve Fxb, the date of the final notional exchange was wrongly set equal to the date of the last coupon payment when a payment lag was specified.
  • Failed to set custom non-flat amortization in Currency Swap.
  • Objects of type Task failed to run on collections of objects that did not correspond to stand alone handle names bound to specific Excel cells.
  • Modified the generic reading of Excel input ranges to keys that expect a one-dimensional array value so that any trailing empty cells in the input ranges are not ignored, but are treated as legitimate - albeit undefined - input, which can be useful in contexts where undefined input is assigned a special interpretation, such as in the case of undefined strikes that are interpreted as ATM strikes. (This change is not backward compatible.)

16 Aug 2023 version 14.8.0

New Features:
  • The vol risk of swaptions in the SABR model can be reported wrt the SABR parameters Alpha, Beta, Nu and Rho by setting the corresponding keys Alpha fixed, Beta fixed, Nu fixed and Rho fixed in the SABR Model to TRUE.
  • Added support for at-the-money swaptions that may also carry an optional strike shift.
  • Enhanced the function Shift in Fxd Flt Swaption so that it can also set the strike - or an optional strike shift if at-the-money - and also return a portfolio of swaptions if an array of text codes is provided.
  • The table with the deposit rates in Yield Curve Dep can now have an optional column titled #Fixing that allows each rate to have its own number of fixing days.
Bug Fixes:
  • OIS creation failed when the notional was not defined and a custom amortization input was used.
  • In the IRS::ChangeDate function, entering a text code such as 0D6M that had a first step of size 0, resulted in error.
  • The Implied Vol function failed on capfloors referencing forward looking oi term rates.
  • Now the wizard can process selected spreadsheet cells even if the referenced Deriscope formula is part of a more complex expression or formula.
  • Removed from the x64 installer file the requirement for the prerequisites Visual C++ "14" Runtime Libraries (x64) and Windows Installer 4.5 since this requirement does not exist in the x32 installer file.

17 Jul 2023 version 14.7.0

New Features:
  • The functions Fair Rate and Fair Spread that applied on objects of type Vanilla IRS and OIS now apply on the wider class of objects of type FxdFlt IRS and have thus become capable of handling amortizing swaps. They have been also enhanced to accept an optional Target Value input that represents the target NPV of the referenced swap.
  • Now Yield Crv Fxb accepts indices being Overnight Index versus Ibor, thus enabling Yield Curve construction out of currency swaps that exchange Overnight Index against Ibor
Bug Fixes:
  • The displayed cash flows associated with the market swaps in a Yield Curve construction had the #AdjIndex differing from the #Index in the first period of each market swap when the global trade date were different from the curve date.
  • Spreadsheet cells containing dates in text format (often sourced from Bloomberg) were automatically modified as soon as they were selected while the wizard was open.
  • By-Bucket DV01 failed when the yield curve was built from deposit rates using Input Method= By Index.
  • The interplay between amortizaion schedules and displayed notionals in IRS or any of its subtypes is now handled more appropriately.
  • An at-the-money Vanilla IRS or OIS can now be easier designated by omitting the key Fxd Rate= or leaving bank the cell that holds its associated value.
  • The default value of the optional key holding the notional of an individual leg in IRS or any of its subtypes is now equal to the notional of the other leg, if the latter is specified. (This change is not backward compatible)
  • Renamed the type FxdIbor Swap to FxdIbor IRS. (This change is not backward compatible)
  • Removed the key Is ATM from the types Vanilla IRS and OIS. (This change is not backward compatible)
  • Renamed the key Fxd Rates to Fxd Rate in OIS and FxdFlt IRS. (This change is not backward compatible)
  • Changed the primary default folder for storing the license deriscope.cdm from %programdata%\Deriscope\ to the folder where the config files are stored, which is either %UserProfile%\Documents\DeriscopeConfigFiles or %UserProfile%\Desktop\DeriscopeConfigFiles if the Documents folder is not accessible.
  • Added the button Remove License from this Device under the ribbon License menu that deletes all deriscope.cdm files that might exist in the expected folders.

24 Jun 2023 version 14.6.4

New Features:
  • Added the optional key Indexed Coupon= in the type Yield Curve Fwd that can have an effect on the maturity date of the FRAs' underlying contracts.
Bug Fixes:
  • The menu options under the ribbon button Recalc had under certain circumstances the sideeffect of modifying some of the hard coded spreadsheet values, especially dates displayed as text in a format other than the Excel's locale.
  • Removed the Live Feeds functionality after Yahoo changed its api.
  • Renamed the item Zero Yield Annual that could be assigned as value to the key Modelled Qty of Yield Curve to Zero Yield Simple to better capture the fact that it relates to simply compounded zero rates.

26 May 2023 version 14.6.3

Bug Fixes:
  • The roll and carry advanced pricing outputs for ATM Vanilla IRS failed with unintelligible error message.

05 May 2023 version 14.6.2

Bug Fixes:
  • The Live Feeds service from Yahoo Finance stopped working on 5 May 2023 due to a change to the required URL. This version uses the correct URL and has also made it configurable under the wizard's Live Feeds Settings so that the user can adjust it as needed in the future.

03 May 2023 version 14.6.1

New Features:
  • The Bond functions Asset Swap Spread and Asset Swap Equiv have been updated to support forward looking overnight index term rates.

02 May 2023 version 14.6.0

New Features:
  • Now the Asset Swap supports forward looking overnight index term rates.
  • Improved the functionality of the Export Formula ribbon button. Now it can properly process spreadsheet formulas of which the arguments may contain algebraic expressions and functions of other ranges. For example, an argument may equal the expression OFFSET(D1,1,0)+F1 and still be correctly exported.
  • Renamed the OIS pricing extra data output Other Leg NPV and Other Leg BPS to Fxd Leg NPV and Fxd Leg BPS respectively.

20 Apr 2023 version 14.5.2

Bug Fixes:
  • Pricing of OIS with positive Lookback failed even if a Model[OI Term Rate] object with Build Approx CA= None was supplied as input.
  • Schedule objects constructed with explicit dates and non-trivial calendar were processed based on their unadjusted dates. Now the adjusted dates are considered.

05 Apr 2023 version 14.5.1

New Features:
  • In the Price function in the wizard, the new key -Known Resets Threshold Date= can be used to set a specific threshold date, which is then used by the wizard to generate the respective Known Resets Model object and - most importantly - the respective series of historical dates and rates up to that threshold date.

04 Apr 2023 version 14.5.0

New Features:
  • Added the type Known Resets Model that represents a very covenient way of defining a threshold date in the future so that all rates destined to be fixed before that date are assigned user-supplied fixed reset values rather than values implied by the provided curves. In practice, during setting up the Price function in the wizard, the newly introduced flag -Add Known Resets Date= can be used to instruct the wizard to generate the appropriate input.

23 Mar 2023 version 14.4.1

Bug Fixes:
  • The recently introduced Fast Mode facility did not work as expected for ATM swaps.
  • The Pause/Resume Bloomberg ribbon button is renamed to Pause/Resume Feeds and applies on the extended set of live feeds formulas BDP, TR and RtGet.

20 Mar 2023 version 14.4.0

New Features:
  • Added the choice Fast Mode in the list of possible inputs to the key Output= of the Tradable::Price function. This is a very powerful input that can speed up pricing calculations by 17 times if used correctly and is thus particularly suitable to trading environments.
  • Added the optional key Shown Data= in the Tradable::Price function that works together with the choice Fast Mode.
  • Added the optional key Store Deltas= in the creation of Yield Curve objects that should be used together with the choice Fast Mode if flat DV01 needs to be calculated in an efficient fashion.
  • Redesigned the Yield Curve to hold a QuantLib RelinkableHandle rather than a QuantLib Handle. This change seems to increase the effciency of several pricing operations by a factor of 3.
  • The ribbon button Pause Bloomberg now works correctly also with BDP formulas returning dates.

21 Feb 2023 version 14.3.2

Bug Fixes:
  • Failed to create Yield Curve out of overnight index futures when Input Method= By Calendar was used.

08 Feb 2023 version 14.3.1

  • Now the market vol input needed for the pricing of fx derivatives may be supplied in terms of either the underlying fx rate or its inverse without loss of efficiency.

26 Jan 2023 version 14.3.0

New Features:
  • Now the OI Term Rate type can represent both forward and backward looking overnight term rates through the optional key Looking=.
Bug Fixes:
  • The historical fixings for the overnight rate defined in Yield Curve Fut and the inflation index defined in Yield Curve Bnd were reset unexpectedly in certain operations and caused errors.
  • The Fixing Days= input in Term Rate was ignored in swap pricing.
  • Several enhancement pertaining to fx options.

04 Jan 2023 version 14.2.0

New Features:
  • Added in Vol Curve the capability to bootstrap interest rate caps and floors on OI term rates - such as SOFR - and create vol surfaces of those rates. The vol type can be normal, lognormal or shifted lognormal so that negative interest rates can be also handled.
  • Now the CapFloor instrument can also represent interest rate caps and floors on OI term rates - such as SOFR.
Bug Fixes:
  • When the function Vol Curve::Create Implied Vol Table acted on market prices of caps did not process correctly the data of the given representative cap.

22 Dec 2022 version 14.1.0

New Features:
  • Added the optional keys Notional= and Pmt Date= in all types inheriting from Vanilla Option. The latter can be used to set the settlement date of the option's payoff to any custom date later than the option's expiry.
  • Added the unit H for Hundred that can be useful in entering fx forward basis quotes on currency pairs such as USD/JPY or USD/INR. For example, the title #Quote(H) in the table of Yield Curve Fxf would instruct Deriscope to convert all entered quotes to their multiples by 100.
Bug Fixes:
  • Live Feeds Historical Data from Yahoo Finance stopped working on 17 Dec 2022 because Yahoo stopped requiring credentials during each web service request. This has now been fixed and a flag has been added on the YF configuration section called Use Credentials that is set to FALSE by default, but can be changed by the user to TRUE if Yahoo changes its credentials policy in the future.
  • Improved the user interface of the types FX Option and Issuer.
  • Now objects of type FX Value are created by using as input an object of type FX that defines the currencies and all involved conventions. (This change is not backward compatible. All FX Value instances must be edited!)

12 Dec 2022 version 14.0.0

New Features:
  • Introduced a new type of volatility surface for FX Options where the strikes are expressed in delta terms. This is achieved in type Vol Curve by setting Vol Input= ATM-RR-BF and supplying as input a 4-column table containing market ATM (At The Money), RR (Risk Reversal) and BF (Butterfly) vol quotes for various expiries.
  • Now the wizard reacts when the user selects cells containing #-prefixed labels that represent table titles, such as #Rate, by displaying the respective description. This is a new feature that currently applies to a few titles, but expected to cover all titles in forthcoming versions.
  • Yield Curve Fxb now supports all index type combinations between Libor and OI. Also a Payment Lag can be now specified.
  • The market swaps in Yield Curve Ois can be now specified by start and end dates in optional columns titled #StartDate and #EndDate respectively, in addition to time intervals. Also the #FwdStart title has been renamed to #StartDelay to better capture its meaning. (This last renaming is not backward compatible)
  • The new key Leg2 Pmt Lag has been added in Yield Curve Ois that makes it possible for the two legs of the supplied market OIS to differ on their payment lag with regard to the respective number of business days. Note, the two lags must still agree on their calendar and date bump conventions.
  • The new keys Flt Pmt Lag and Fxd Pmt Lag have been added in Yield Curve Swp and Vanilla IRS that make it possible for the two legs of vanilla IRS to differ on their payment lag with regard to the respective number of business days. This addition necessitated the removal of the key Pmt Date Bump in Vanilla IRS since the respective information is now captured by the new keys. (This last key removal is not backward compatible)
  • Added the interpolation types Mxd FwdFlat Cubic, Mxd BwdFlat Cubic and their Log equivalents that may be used in building curves that imply flat overnight forward rates between central bank meeting dates at the front end and cubic interpolated rates at longer maturities.
  • Added the optional key Trade Date Fixings= to the input of the Price function, which, if set to TRUE, causes the pricing routine to treat all trade date fixings to be regarded as fixed inputs rather than curve-implied quantities.
Bug Fixes:
  • The values associated with the newly introduced keys ON Quote= and TN Quote= in the type Yield Curve Fxf assumed wrongly that the Quote Tgt/Src= was TRUE, even if it were set to FALSE.
  • Blotter creation based on Parse Method= RatesMatCpDate ignored the Coupon Dates entered in the column titled #Cp Date.
  • In Live Feeds, tickers containing the symbol & - such as the Indian stock GET&D.NS - caused a failure on the live feeds of all tickers referenced by the dsGet function. Now tickers are allowed to contain the symbol &
  • Added list of exact holidays for the United Arab Emirates and Saudi Arabia calendars until the end of year 2053.
  • Now the Pause / Resume Bloomberg Excel ribbon button works with all spreadsheet formulas containing the Bloomberg BDP function regardless of how complex they might be.
  • Linked to the latest libraries: QuantLib version 1.28 and ORE release 8.
  • Renamed the types Vol Spec and Cor Spec to Vol Ref and Cor Ref respectively. Also did the same with the keys Vol Spec= and Cor Spec=. (This change is not backward compatible)
  • Renamed the optional key Holiday= of Single Period to Calendar=. (This change is not backward compatible)
  • Renamed the optional key Forward Start= of Yield Curve Swp to Start Delay=. (This change is not backward compatible)
  • Removed the optional key Settlement= from the creation of objects of type OI Term Rate since it is not used in the case of oi term rates. (This change is not backward compatible)
  • Changed the default for the key Pillar Choice= from Last Date to Maturity.

02 Oct 2022 version 13.4.3

Bug Fixes:
  • Changed the newly introduced United Arab Emirates calendar AE so that it treats the Saturdays and Sundays occurring after 1 Jan 2022 as weekends.

01 Oct 2022 version 13.4.2

New Features:
  • Added the optional keys ON Quote= and TN Quote= in the type Yield Curve Fxf that allows the specification of the ON (OverNight) and TN (Tomorrow-to-Next) fx rates, thus making the key Spot Settle Quotes= unnecessary for the purpose of specifying the ON and TN tenors.
  • In the past, tenors like %2B entered in the market data table of the type Yield Curve Fxf were treated like calendar days. Now they are processed correctly like business days. (This change is not backward compatible)
  • Added the Eibor rate for the United Arab Emirates. It references the also newly added calendar AE, although the latter is still implemented to have the same holidays as the Saudi Arabian calendar SA.

19 Sep 2022 version 13.4.1

Bug Fixes:
  • Due to a recent change, the descriptions of several keys could not be generated in the wizard.

06 Sep 2022 version 13.4.0

New Features:
  • In a yield curve construction, the cross currency swaps used as input in Yield Curve Fxb can now be OI versus OI.
  • Added the interpolation method Log Mxd Lin Cubic as the log counterpart of the existing Mxd Lin Cubic.
  • Added the optional key Notional= to tradables of type Fwd Contract. This also affects the types FX Forward and Fxd Rate Bond Fwd that derive from Fwd Contract.

30 Aug 2022 version 13.3.9

Bug Fixes:
  • Due to a recent change, the lists contained in a few of the cell dropdowns in the wizard consisted of entirely greyed out items. For example, the dropdowns associated with the keys ModelledQty= and InterpMethod= in Yield Curve.

30 Jul 2022 version 13.3.8

New Features:
  • Now implied ois discounting curves in local currencies lacking a domestic ois market (such as MXN) can be implied by market quotes on cross currency basis swaps involving a foreign oi, such as SOFR, even if the basis spread is paid on the local currency leg. Technically this is achieved by improving the object of type ImpYC XCCY Disc so that the entry to its key Ccy Swap Crv= is a Yield Curve of which the element of type Yield Curve Fxb is now allowed to have Spread On Src = FALSE.
Bug Fixes:
  • The _Synthesized Curve element of implied curves built using input of type ImpYC could not be viewed in the wizard if the global valuation date did not match that of the curve.

29 Jul 2022 version 13.3.7

  • Extended the referenced QuantLib code by adding the currency AED.

19 Jul 2022 version 13.3.6

New Features:
  • Now the Ref Values= key in the functions Tradable::Price and Valuation::Revalue can be an array with K rows holding K separate input values associated with the affected keys specified in Ref Keys= that are processed iteratively to produce K corresponding output values that are all returned by the hosting function.

18 Jul 2022 version 13.3.5

Bug Fixes:
  • The MonteCarlo pricing method on asian options returned error due to a failure to incorporate the time grid as part of the extra output data.

17 Jul 2022 version 13.3.4

New Features:
  • Added a new ribbon button that when being clicked toggles between Pause Bloomberg and Resume Bloomberg. It can be used to stop temporarily the action of the Bloomberg live feeds function =BDP(...) that seems to cause stability problems to the Deriscope wizard.

13 Jul 2022 version 13.3.3

Bug Fixes:
  • Several changes relating to the special context where an explicit valuation date is specified through either the key Trade Date= or As Of=.
  • Renamed the optional key Use Par Index= of Yield Curve Swp to Indexed Coupon= so that it is symmetrical to the same named key of Vanilla IRS. In order to produce the same results as before, the boolean value entered in association with the new key must be the opposite of that used originally. (This change is not backward compatible)

08 Jul 2022 version 13.3.2

  • Renamed the Diagnostics ribbon button to Audit and added a status text in the Function Run Recorder popup dialog.

06 Jul 2022 version 13.3.1

  • Added a column titled #Index in the table produced by the Function Run Recorder. Also added a top row with totals for the Gap and Duration columns.

05 Jul 2022 version 13.3.0

New Features:
  • Added a diagnostics facility accessible through a new ribbon button named Diagnostics and its menu item Function Run Recorder that can be used to trace all spreadsheet function calls at runtime and generate a report containing the sequence of these calls and their time durations.

28 Jun 2022 version 13.2.1

Bug Fixes:
  • Carry calculation failed on ois of which the maturity fell on a non-business end of month day.

25 Jun 2022 version 13.2.0

New Features:
  • Added the Lagrange Cubic and Lagrange Log Cubic curve interpolation types that provide for more stable and smooth forward rates, but at the cost of increased bootstrapping times.
  • Reverted the previous changes on Cubic, Fin Cubic, Nat Cubic and their log counterparts. They are now all non-monotonic cubic splines, since being monotonic resulted in big forward rate swings.

21 Jun 2022 version 13.1.1

New Features:
  • Added the new optional key Keep Reset Dates= in the functions Carry and Rolldown that is useful when the horizon date lies in the middle of a floating leg's accrual period. It determines the reset date of the first floating period of the forward swap. Setting its value to false in the case of OIS results in values that match those in Bloomberg.
Bug Fixes:
  • Wrong calculation of Carry and Rolldown of forward swaps starting after the horizon date.
  • Changed the definitions of the yield curve interpolation methods Cubic, Fin Cubic, Nat Cubic and their log counterparts so that are more in line with their usage in ORE. Also the Cubic interpolation method is now by default monotonic as this seems to enhance stability and speed of bootstrapping.

16 Jun 2022 version 13.1.0

New Features:
  • All overnight swap types - i.e. OIS , OiIbor Swap and OiOi Swap - can now accept an array of oi term rates as input so that the overnight index or any related conventions may vary accross the periods of the overnight leg.
  • Now the Carry and Rolldown functions apply also on objects of type OIS.
  • Enhanced the type Term Rate with the key Fixing Days that allows the custom setting of the reset date of any term rate and therefore also of any Ibor or Oi Term rate.

07 Jun 2022 version 13.0.1

Bug Fixes:
  • Changed the default output IRS::Change Dates so that it corresponds to the usual interpretation of a code input for the swap tenor, so that a code like "6M2Y" means a swap starting in 6M and extending for 2Y.

02 Jun 2022 version 13.0.0

New Features:
  • Introduced the new type Task under Util, the objects of which define sequences of functions to be executed in a consecutive fashion and according to specified criteria. The defined functions are executed as soon as the new type's local function Run is invoked. This new type is pivotal in streamlining calculations that have a repeated character, such as the calculation of the yield of each bond that is part of a portfolio of bonds.
  • Added a new Portfolio construction method that is useful when all constituents are tradables of the same type. It is implemented through the addition of the new item Parameters in the list associated with the key Spec Method= in the Portfolio::Create function. Then the portfolio can be constructed by specifying a) the type that is common to all the constituent tradables, eg "Fxd Rate Bond", b) a set of key-value pairs that apply to all tradables and c) a set of key-value pairs that supply those values that happen to vary among the tradables.
  • Added the local functions Carry and Rolldown that act on objects of type IRS.
  • Added the local functions Period Counter and Period Value that act on objects of type IRS and return information pertaining to a specific accrual period of the referenced swap.
  • Now the functions Clean Price and Dirty Price acting on objects of type Bond accept a Ref Date input even when the calculation is based on discounting the bond coupons using a given discounting yield curve.
  • Enhanced the type FxdIbor Swap with the key Fixing Days that allows the custom setting of the reset dates of the ibor index accross the swap.
  • Enhanced the type Vanilla IRS with the key Indexed Coupon that allows choosing between par and not-par ibor rates.
  • Added the optional input key Ref Date in the Bond::KRD function.
Bug Fixes:
  • Due to improper memory management the function Price Simple returned wrong results. It is also likely that this bug may have affected several other areas to a lesser or greater degree. The fix here is therefore expected to provide enhanced stability and accuracy in all calculations.
  • A few daycounts, such as 30E/360 produced errors.
  • Live Feeds failed to update if the dsGet function was on a non-active sheet.
  • The local function Shift acting on objects of type IRS has been renamed to Change Dates that better captures what this function does. It has been also enhanced to support a wide range of possible swap date schedule alterations. (This change is not backward compatible)
  • The key Ignore Accrual in model Advanced Pricing has been renamed to Accr Before Hor that better captures the key's meaning. (This change is not backward compatible)
  • Now all functions exported to Visual Basic return a boolean. True on success and False on failure. If a failure occurs, a diagnostic message is always displayed. A few of these functions have thus been altered. The new interface of all functions is listed at Deriscope VBA
  • In Live Feeds made the third argument to the dsGet function optional.
  • The key Shorten Bond= in the local function Rolldown is renamed to Definition=. The previous boolean values TRUE, FALSE correspond to the text tokens Shorten Spot, Roll Crv to Fwd respectively. (This change is not backward compatible if the mentioned key is explicitly used)
  • Disabled the Live Chat ribbon button by default. It can still be reinstated through Settings.

30 Apr 2022 version 12.6.4

Bug Fixes:
  • Historical data feeds from Yahoo failed because of a technical change on the credentials required by the Yahoo server. This is now fixed.
  • The wizard failed to display the contents of objects when the user selected the cells containing their handle name if these cells were part of an array output of a Deriscope formula.
  • Renamed the seldom used global input key OBJECTASHANDLE= to ASHANDLE=. (This change is not backward compatible)

06 Apr 2022 version 12.6.3

New Features:
  • Various descriptions displayed in the Info Area of the wizard may now include images.
  • Now the first argument of the Excel ds() formula may contain the special text *InputAsText* or *InputAsText_OuterTrimmed* that instructs Deriscope to treat all input data as if they were pure text, at least during the initial parsing. The *InputAsText_OuterTrimmed* also results in the trimming of all leading and trailing white spaces. This special argument can be useful in functions that rely on the precise type of the input data, such as the Set::Parse function.
Bug Fixes:
  • The Set::Parse function failed to parse data as integers if they were passed as text containing leading or trailing white spaces.
  • Forward starting at-the-money Vanilla IRS and OIS produced infinite carry when the horizon date was earlier than the swap effective date.

05 Apr 2022 version 12.6.2

Bug Fixes:
  • OIS instrument indexed with Ester (TARGET calendar) and tenor 2W failed to be created. This also produced an error in the respective yield curve creation.

31 Mar 2022 version 12.6.1

New Features:
  • Added the optional key ATM Shift= in the objects of type Vanilla IRS and OIS that works together with the recently added key Is ATM= and can be used to designate a swap as in-the-money or out-of-the-money by setting its intrincic fixed rate to the dynamically determined atm rate plus a potentially non-zero shift defined through this new key. This key can be also used when Edit Input= TRUE in order to tweak initial atm swaps away from their atm rate by a given shift - typically 1 bp - so that the pricing output equals the DV01 of the referenced atm swaps.
Bug Fixes:
  • The Edit Input= TRUE applied on at-the-money swaps did not work as expected.
  • The Set::Parse failed unexpectedly when data were integers with the form YYYYMMDD with MM not being between 1 and 12.
  • Renamed the recently introduced key Ref Value as Shift= to Edit Methods= and made it to accept as value one of the types labelled as Replace or Shift.

29 Mar 2022 version 12.6.0

New Features:
  • The objects associated with the key Ref Objects= in the functions Tradable::Price, Tradable::PriceSimple and Valuation::Revalue when Edit Input= TRUE can now be of type Portfolio, in which case the modified input values affect all portfolio constituents.
  • Added the optional key Ref Value as Shift= in the functions Tradable::Price, Tradable::PriceSimple and Valuation::Revalue that act as boolean flags the allow to treat the value(s) entered in Ref Values= as shifts rather than absolute values. This, together with the Portfolio treatment above, allow the calculation of the DV01 of a portfolio of swaps defined as the change in price due to a shift by 1 bp of each swap's fixed rate.
    Bug Fixes:
    • Creating a portfolio of swaps out of Blotter data led to atm swaps if the representative swap were atm, even if the Blotter data specified explicit, i.e. non-atm, fixed rates.

    28 Mar 2022 version 12.5.15

    New Features:
    • Added the optional keys Date Format=, Date Format Sep1=, Date Format Sep2= in the Set::Parse function that aply a certain assumption regarding the format of dates in the raw data.
      • Added at-the-money OIS products that can be defined like their Vanilla IRS counterparts, i.e. by setting their rate input to N/A.
      Bug Fixes:
      • The processing of portfolios containing atm swaps produced wrong prices and also wrong carry and roll amounts.

      24 Mar 2022 version 12.5.14

      • Improved the Date::Parse Date function so that it can process an array of text labels at once.

      21 Mar 2022 version 12.5.13

      New Features:
      • Added a Live Chat button at the Deriscope ribbon that allows an Excel-integrated chat between the user and Deriscope Support.
      Bug Fixes:
      • The wizard failed to display descriptions associated with spreadsheet cells that were part of the output range of dynamic array Deriscope formulas.

      04 Mar 2022 version 12.5.12

      Bug Fixes:
      • The recent introduction of the Use Par Index= key caused the market swaps in the creation of a Yield Curve to reference a par ibor index by default. Now the default index is non-par again.
      • Incorrect calculation of the P&L Breakdown and the Carry & Roll= results when Ignore Accrual= was kept at its default value of FALSE.

      27 Feb 2022 version 12.5.11

      Bug Fixes:
      • Due to a recent change, the wizard failed to build certain types.

      25 Feb 2022 version 12.5.10

      New Features:
      • Added the optional keys EOM= and Use Par Index= in the type Yield Curve Swp that allows to build a Yield Curve object out of swaps that have a user-defined End-Of-Month convention and an index that is optionally adjusted so that its maturity matches the end of the corresponding accrual period, an adjustment that turns the floating leg into a par leg.
      • Added the ability to define custom Libor rates, i.e. objects of type Ibor Rate that have a user-defined financial calendar in addition to the standard Libor UK calendar. This is now done by setting Ibor Type= CustomLibor and adding the new optional key Libor Calendar= to supply the financial calendar associated with the given currency. For example, a custom USD Libor could be defined by setting Libor Calendar= %US, in which case the index value date would be determined by first shifting the fixing date by 2 business days according to the %GB calendar and then adjusting that date according to the union of the %GB and %US calendars.

      23 Feb 2022 version 12.5.9

      Bug Fixes:
      • Changed the type of the value associated with the key Settlement of object of type Term Rate from Single Period to Period. This was needed to capture more accurately the settlement of certain rates such as Libor of currencies other than EUR or GBP. These rates (for example the USD Libor) are settled by shifting the fixing date forward by N business days (N = 2) according to a certain calendar (UK), but then the produced date is further bumped according to some other calendar (joint UK + US). While this had been treated correctly in QuantLib, Deriscope assumed only the first calendar in various operations and led to inaccurate results.
      • Added the optional key Calendar in Yield Curve Swp that defines the calendar used in the determination of the accrual period dates of both the fixed and floating legs. If omitted the default is set equal to the calendar of the supplied index. Due to the change above, the latter will be the union of two calendars if the index is a Libor of a currency other than EUR or GBP.

      15 Feb 2022 version 12.5.8

      Bug Fixes:
      • Sometimes, during user interaction with the wizard, a new sheet was suddenly inserted in the active workbook followed by a popup asking the user to confirm its impending deletion. This bug has now been fixed.

      11 Feb 2022 version 12.5.7

      • Now the Date Sequence function can return a specified maximum number of dates and respect a given optional End of Month convention.
      • Renamed the optional key End of Month of Term Rate to EOM. (This change is not backward compatible when the renamed key is explicitly used in the creation of Term Rate objects)
      Bug Fixes:
      • The payment lag specified in Yield Curve Ois applied only on the fixed legs of the swaps.

      10 Feb 2022 version 12.5.6

      Bug Fixes:
      • Removed the key Past Fixings from the Yield Curve type and added it to the Yield Curve Fut type. (This change is not backward compatible when the removed key is explicitly used in the creation of Yield Curve objects)

      09 Feb 2022 version 12.5.5

      Bug Fixes:
      • All functions returned #NUM in the absence of a license.
      • Wizard-only flags did not work as expected. This is a minor technical change, but it may cause serious side effects! Alertness is required.

      31 Jan 2022 version 12.5.4

      Bug Fixes:
      • The function Settle Value in type Bond failed when no clean price was given as input.

      27 Jan 2022 version 12.5.3

      Bug Fixes:
      • In the types Currency Swap replaced the key Amort with the two new keys Src Amort and Tgt Amort so that the two currency legs can have different amortization schedules. This is necessary when the amortization schedule is defined through a custom array of notional balances since the two legs generally have different notionals. (This change is not backward compatible when the Amort key is explicitly used)

      25 Jan 2022 version 12.5.2

      Bug Fixes:
      • In the types Inflation Swap and Inflation Bond replaced the key Imply Base with Base Value so that the base value of the inflation index is defined explicitly rather than being inferred from the supplied historical data. This has been necessary to fix bugs related to the base value estimation in the absence of historical data. (This change is not backward compatible)

      20 Jan 2022 version 12.5.1

      Bug Fixes:
      • Excel crashed when Yield Curve Infl was built with inappropriate observation lag.

      18 Jan 2022 version 12.5.0

      New Features:
      • The carry and roll outputs of the Price function when Advanced Pricing is used as input incorporate now also the accrual amounts due to any partial accrual periods that arise when the horizon date an accrual period of the underlying contract. This treatment reflects better the economic impact associated with unwinding a trade at the horizon date. The previous treatment is still accessible by using the new optional key Ignore Accrual= with a value set to TRUE. The absence of this key leads to the new behavior described here. (This change is not backward compatible)
      Bug Fixes:
      • Zero risk was calculated wrt market rates of FX forwards defined in Yield Curve Fxf.
      • Improved the error messages reported during the calculation of risk wrt a Dividend Curve.

      19 Dec 2021 version 12.4.1

      • Added the read-only key Cash Flows in objects of type Credit Curve that allows inspection of the cash flows of the CDSs used in building a credit curve.

      16 Dec 2021 version 12.4.0

      New Features:
      • Added Inflation Curve construction out of Inflation Bonds.
      • Enhanced the type Yield Curve Bnd so that the bond instruments can be fed to it as an object of type Bonds.
      • The Bond functions Fwd Clean Price and Carry can now take as input an array of repo rates.
      • Added the Bond function Fwd Dirty Price.
      • Impoved the spreadsheet functions dsReplace, dsSort, dsSubRange.

      23 Nov 2021 version 12.3.2

      Bug Fixes:
      • Impoved functions Fwd Clean Price and Carry so that they account for coupons paid before horizon.

      22 Nov 2021 version 12.3.1

      • Redesigned the descriptions of all types to include a standard header with the supported functions and subtypes.

      09 Nov 2021 version 12.3.0

      New Features:
      • Added local functions Fwd Clean Price , Carry and Rolldown in type Bond.
      • Added local function Roll Curve in type Yield Curve.
      • Added input parameter in function Asset Swap Equiv that sets the date bump convention for the swap maturity.
      Bug Fixes:
      • The local functions Asset Swap Spread and Asset Swap Equiv in type Bond now set the date bump convention of the last floating leg cash flow to equal that of the bond schedule. This helps to ensure that the terminal payments on the two legs fall at the same time.

      29 Oct 2021 version 12.2.1

      Bug Fixes:
      • Bugs related to the Fallback functionality.

      28 Oct 2021 version 12.2.0

      New Features:
      • Introduced the new type Fallback Model. When an object of that type is passed as input to the Price function, the pricing routine references a converted tradable of which all affected indices are replaced with their fallback equivalents as prescribed by the supplied model object.
      • Due to the new model type mentioned above, the Fallback function expects now as input an object of that type instead of two objects of types Fallback Table and Fallback Mkt. (This change is not backward compatible)
      • The Fxd Rate Bond blotter is enhanced with the new column #Start.
      • The Asset Swap blotter is enhanced with the new columns bearing the titles #Start and #BondStart. Also the titles of all existing columns have been renamed with the prefix Bond added to them. (This change is not backward compatible)

      24 Oct 2021 version 12.1.1

      Bug Fixes:
      • Sometimes, when necessary historical index fixings were missing in a pricing context, the produced error text was misleading and did not refer to the real cause.
      • Sometimes, setting the first boolean argument to the ds function to false did not have the expected effect of preserving the display of the existing output values.

      19 Oct 2021 version 12.1.0

      New Features:
      • Introduced the two new types Bonds and Inflation Bonds that represent collections of generic bonds and inflation bonds respectively. These types inherit respectively from Bond and Inflation Bond so that all functions that apply on the latter types also apply on the new types. For example, the function Yield can act on an object of type Bonds and the function Yield Real on an object of type Inflation Bonds.
      • Added Blotter construction for Asset Swap.
      • Now the Asset Swap can contain any type of Bond and not just a Fxd Rate Bond. For example, the type of the referenced bond can be Ibor Rate Bond or CMS Rate Bond or even Inflation Bond.
      • Made the Ibor Schedule= entry in Asset Swap optional. If missing, the schedule of the floating leg is generated according to the referenced bond and index. In the latter case, the new optional key Start= can be used to set the start date of the swap to differ from the start date of the referenced bond.
      • The type Model[Asset Swap] is not used anymore for selecting which curves are used for discounting and forecasting. The curve selection is now done through the type YldCrvPickModel, as with the pricing of IRS.
      • Added the local function Fair Spread to objects of type Asset Swap.
      • Added the local functions Asset Swap Spread and Asset Swap Equiv to objects of type Bond.

      10 Oct 2021 version 12.0.1

      Bug Fixes:
      • Bug affecting the carry, roll and P&L calculation.

      05 Oct 2021 version 12.0.0

      New Features:
      • The curves to be used in the course of pricing are now specified by objects of type YldCrvPickModel that contain information previously encoded in objects of type Model[X], where X is some tradable type such as IRS. This change is backward compatible as long as no such explicit curve specification is used, but is not backward compatible if the curves are specified through Model[X]. In the latter case, the text Model[X] must be replaced with Yld Crv Pick Model.
      • Similar to the above, a new type called Vol Crv Pick Model has been introduced that allows selecting the types of vol curves being used in a given pricing context.
      • Introduced time-dependent indices in IRS objects.
      • Added a new optional key named Stub Indices= in objects of type Vanilla IRS. Its associated value is an array of Ibor Rate objects that define the additional reference ibor indices used to construct the interpolated index that applies exclusively to the first period of the floating leg if that period is a short stub period.
      • In Fallback Ibor Oi Table added two new columns titled Tenor and Cessation that provide the tenors and cessation dates of the listed ibor indices. This allows distinguishing between indices that differ only on tenor, such as USD Libor 1M and USD Libor 3M.
      Bug Fixes:
      • In the context of Advanced Pricing a separately defined funding curve could not be found even if it were supplied as input.
      • Portfolio creation out of a Blotter of OIS objects failed to process the dates properly.
      • Corrected the #FixingStart and #FixingEnd columns of the cash flow table in the case of OI Term index (i.e. composite overnight index).
      • The Deriscope taskpane does not flicker anymore if it happens to be visible while Excel runs various calculations. This improvement is also expected to enhance overall Excel stability when the taskpane is visible in a trading environment where several other third party addins are also loaded.
      • Now all currency swaps are treated as sub-types of IRS and are priced with the same unified algorithm. In particlular the types Currency Swap and FX Swap are now direct children of the type IRS. The original types are still accessible under Multi Leg Swap, but have been renamed to Currency Swap Old and FX Swap Old and will be kept for a while as legacy. The revamped types treat a likely fx reset differently in that they require an input object of type FX Reset Spec. Also they do not require the keys Src Leg Type= and Tgt Leg Type=. Also note that the revamped type Currency Swap does not support the function Fair Spread. Note these changes are not backward compatible if the referred keys are explicitly used.
      • The type Model[Yield Curve] that is optionally used in risk calculations has been renamed to Yld Crv Risk Model. This change is backward compatible as long as this type is not explicitly used, but is not backward compatible if this type is explicitly used. In the latter case, the text Model[Yield Curve] must be replaced with Yld Crv Risk Model.
      • The Pillar Choice setting of Last Relevant Date in various curve constructions has been renamed to Last Date. (This change is not backward compatible)
      • The at-the-money strike of a Vanilla IRS cannot be anymore specified by entering a blank cell as a value for the key Fxd Rate=. Now the special text N/A must be entered. (This change is not backward compatible)
      • The key Fxd Rate= in OIS has been renamed to Fxd Rates=. (This change is not backward compatible)

      15 Sep 2021 version 11.5.0

      New Features:
      • Added seasonality in the construction of inflation curves. This is achieved by the addition of the optional key Seasonality= in the construction of objects of type Infl Crv, which expects an object of type Seasonality. Currently the Multiplicative and Kerkhof seasonality types are supported.
      • In the cash flow table added two extra columns titled #ValueStart and #ValueEnd that are meaningful in the case of cash flows linked to a compounded overnight index that carry a non trivial observation lag, in which case contain dates that differ from those in the columns titled #IndexStart and #IndexEnd.

      12 Sep 2021 version 11.4.2

      New Features:
      • Added the column #FixingStart in the table with the cash flows. In particlar, Ibor and OI Term rates now display their start and end dates of their accruing intervals in the columns titled #FixingStart and #FixingEnd.
      • Added custom pillar dates in the construction of Yield Curves out of deposit rates and futures prices.
      • Now the Implied Values function accepts time periods that contain calendars and bump conventions.

      09 Sep 2021 version 11.4.1

      Bug Fixes:
      • Bug affecting the construction of the overnight accrual periods of fallback IRS objects.

      07 Sep 2021 version 11.4.0

      New Features:
      • Added the local function Fallback that acts on objects of type IRS and produces new IRS objects that have their Ibor rates L replaced by fallback rates F = mR+s, where R, m, s are appropriately constructed Overnight Index term rates, multipliers and adjustment spreads. The construction rules are based on Bloomberg. Both rules and adjustment spreads are supplied as objects of the new types Fallback Table and Fallback Mkt respectively.
      • All OI Term Rate objects now contain an optional sub-object of type Fallback Def under the key Pre Fallback. If this sub-object exists, the host OI Term Rate is considered to be the fallback rate of an original ibor rate that is defined in the sub-object. The latter also contains the rules for setting up the term accrual period in any pricing context.
      • Now asset swaps can be priced using distinct curves for discounting and forecasting. The Price function accepts as input an object of type Model[Asset Swap] that specifies the two curves.
      Bug Fixes:
      • A few spreadsheet cells conbtaining N/A were not interpreted properly. For example, the value for the Stub Rate key in Yield Curve Dep.
      • Portfolio creation out of blotter objects led to wrong tenors that affected the itemized DV01.
      • Due to a recent code change, the creation of a few types of curves - such as those from discount factors - failed.

      13 Aug 2021 version 11.3.0

      New Features:
      • Added custom pillar dates in the construction of a Yield Curve out of forwards or OIS. This can have a big effect in the successful curve bootstrapping, especially with regard to the short term market quotes.

      06 Aug 2021 version 11.2.1

      Bug Fixes:
      • Bug affecting the creation of special curves - such as spreaded curves - when they reference flat curves.
      • Bug affecting the creation of blotter objects.

      05 Aug 2021 version 11.2.0

      New Features:
      • Added the optional keys Obs Lag= and Lookback in all types relating to the Overnight Index. The first key specifies an observation lag in business days and sets the period where the daily overnight index is "observed" for the purpose of calculating its average value. The second key defines the number of business days between each observation date and the prior date when the observed index had been set.

      02 Aug 2021 version 11.1.0

      New Features:
      • Redesigned the Inflation Bond type so that it contains an explicit link to the corresponding real bond structure.
      • Added the following local functions to the Inflation Bond type: Dirty Price RY, Clean Price RY, Yield Real, Duration Real, Convexity Real.
      Bug Fixes:
      • The Recalc All button sometimes failed to recalculate all formulas in the spreadsheet.
      • Creation of Blotter containing OIS failed.
      • Creation of Portfolio with Virtual= TRUE failed.
      • Creation of Yield Curve out of bonds with Use Curve Fit= TRUE failed.
      • Changed the meaning of the Rate Cutoff in OIS so that it is at par with its conventional usage as the number of business days prior to the end of the accrual period that marks the last date on which the actually observed overnight index is used. According to the new definition, the default cutoff value assumed in the absence of the corresponding key is 1 rather than the previously used 0. This change is backward compatible as long as the key is not explicitly used, but is not backward compatible if the key is explicitly used. In the latter case, the corresponding value must be increased by 1. For example, a spreadsheet setting with Rate Cutoff= 2 must be now replaced with Rate Cutoff= 3.
      • Now the Model[Bond] used as input in the Price function of a Bond contains the optional key Ignore Settle, which when set to FALSE, the NPV calculation takes into account the bond's settlement and ex coupon period and returns a number comparable with that returned by the Dirty Price function. When set to TRUE, the older approach is used, whereby all coupons paid after the referenced trade date are considered. Due to the fact the default value is FALSE, this change is not backward compatible if the Model[Bond] is not explicitly used as input.

      21 Jul 2021 version 11.0.0

      New Features:
      • Now all Yield Curves can be created with an optional input object of the newly introduced type Curve Booster that speeds all subsequent curve constructions as the market feeds change. The increased efficiency can reduce by a factor of three the time needed for the calculation of dV01s. The cost of this increased efficiency is that the implied rates are approximated and somewhat off the exact ones. The function Check Accuracy is introduced to assist with the determination of the approximation quality of a given curve and booster. The booster implementation is based on first and second degree Taylor expansion and must be used with care as it is still in testing phase.
      • Introduced a read-only element in all tradables with the key Dynamic= that is automatically set by Deriscope mostly to FALSE. When set to TRUE, the corresponding tradable is considered to be "dynamic" in the sense that one or more of the contractual details of the corresponding financial contract are left unspecified and assume context-dependent concrete values as soon as they are used in a specific context comprised of market data and modelling assumptions.
      • The Vanilla IRS can now accept a blank cell as input for the Fxd Rate= key. Then the swap becomes dynamic and assumes a concrete rate equal to the at-the-money rate implied by the applicable market environment. The most recently generated at-the-money rate is stored under the new read-only key Fxd Rate Used=.
      Bug Fixes:
      • A few IRS subtypes, such as the Vanilla IRS produced errors as soon as swaps referencing different currencies were created on the same spreadsheet.
      • In the OIS case, a positive Rate Cutoff input was considered in the pricing result but the displayed projected daily overnight index fixings failed to take it into account.

      25 Jun 2021 version 10.6.2

      New Features:
      • The Advanced pricing of prortfolios now reports itemized data as well.

      21 Jun 2021 version 10.6.1

      Bug Fixes:
      • The Single Day Blotter treated all boolean entries in the column titled #Receiver as TRUE.

      17 Jun 2021 version 10.6.0

      New Features:
      • In Yield Curve Ois it is now possible to use swaps that exchange the overnight index against either ibor or another overnight index.
      Bug Fixes:
      • Creation of Fxd Rate Bond with South Africa government issuer failed due to incompatible daycount conentions.

      08 Jun 2021 version 10.5.1

      New Features:
      • In Yield Curve Bnd it is now possible to use bond yields as input market quotes.
      Bug Fixes:
      • Creation of Fxd Rate Bond with South Africa government issuer failed due to incompatible daycount conentions.

      07 Jun 2021 version 10.5.0

      New Features:
      • Added the overnight indices BRLCdi, CHFSaron, CLPCamara, COPIbr, DKKOis, Ester, INRMiborOis, Nowa, PrimeIndex, SEKSior.
      • Added the ibor indices IDRJibor, ILSTelbor, KRWCd, PHPPhiref, SAibor, THBBibor.
      • In Yield Curve Ois it is now possible to set Pmt Freq= Other and add an extra column titled #PmtFreq in the table with the ois rates so that the quoted ois contracts can have different payment frequencies.
      • In Yield Curve Ois made the keys Rate Cutoff and Fxd DC available even when Build Rule= Compound.
      Bug Fixes:
      • Some elements of the original object were not replicated in the output object returned by the Clone function.
      • Changed the default for the key Standard Dates of Yield Curve Fut::Create from IMM to Any so that no error is issued if the input dates do not match those from IMM.

      04 Jun 2021 version 10.4.4

      Bug Fixes:
      • In Yield Curve Fut set the ASX dates so that their underlying contract span a 90 day period.
      • In Live Feeds the output of the dsGet formula failed for all tickers below one containing the character &, such as the L&TFH.NS. Now an error message is displayed that notifies the user of the problematic ticker.

      02 Jun 2021 version 10.4.3

      Bug Fixes:
      • Yield curve failed to build when setting Standard Dates= ASX in Yield Curve Fut.

      30 May 2021 version 10.4.2

      New Features:
      • Added the ability to create custom calendars out of an existing referenced calendar by adding and/or removing specifed dates regarded as holidays or business days.
      • Added the new function Modify that acts on objects of type Calendar - such on the object %US - and modifies these objects by changing their related set of holidays and business days.
      Bug Fixes:
      • Changed the UK calendar so that the holiday of 30 May 2022 is replaced with 2 June 2022 and 3 June 2022.

      27 May 2021 version 10.4.1

      New Features:
      • Added the four new keys Nominal CF Dates=, Stepwise Disc=, Front Stub=, Back Stub= in the creation of objects of type Int Rate Spec that allows the definition of interest rates equipped with special rules in contexts where these rates are used to discount series of cash flows, such as bond coupons. Among else, these rules allow the definition of bond yields with complex characteristics, such as those prevailing in the South African government bond market.
      • Added the new key Accrued Rate Def= in the creation of objects of type Fxd Rate Bond that allows the specification of special conventions that apply exclusively on the calculation of the accrued interest over stub periods. This is necessary for bonds where the accrued interest over partial periods is calculated differently than the coupon, like for example in the South African government bond market.
      • Added the new key EOM= in the creation of objects of type Yield Curve Ois that allows the construction of yield curves out of OIS rates with specified End-Of-Month convention.
      Bug Fixes:
      • OIS curves assumed EOM convention for the end date of the periods in the swaps linked to the input market rates. This may have led to wrong date generation for certain valuation dates, such as that of 26 Feb 2021.

      20 May 2021 version 10.4.0

      New Features:
      • Added the four new keys Nominal CF Dates=, Stepwise Disc=, Front Stub=, Back Stub= in the creation of objects of type Int Rate Spec that allows the definition of interest rates equipped with special rules in contexts where these rates are used to discount series of cash flows, such as bond coupons. Among else, these rules allow the definition of bond yields with complex characteristics, such as those prevailing in the South African government bond market.
      • Added the new key Accrued Rate Def= in the creation of objects of type Fxd Rate Bond that allows the specification of special conventions that apply exclusively on the calculation of the accrued interest over stub periods. This is necessary for bonds where the accrued interest over partial periods is calculated differently than the coupon, like for example in the South African government bond market.
      • Added the new key EOM= in the creation of objects of type Yield Curve Ois that allows the construction of yield curves out of OIS rates with specified End-Of-Month convention.
      • Added a new function under the Date type called Parse Date that reads a text and returns the corresponding date in accordance with given parsing rules. This function effectively extends the built-in Excel function DateValue by allowing the user to specify the override the default parsing format with a custom one.
      • Added the new optional key Spot Settle Quotes in the creation of objects of type Yield Curve Fxf and Yield Curve Fxb that allows a few front end quotes to refer exceptionally to spot instruments with immediate settlement.
      Bug Fixes:
      • OIS curves assumed EOM convention for the end date of the periods in the swaps linked to the input market rates. This may have led to wrong date generation for certain valuation dates, such as that of 26 Feb 2021.
      • The pricing of cross currency basis swaps was wrong if the referenced Tradable was set to the target currency of the swap.
      • No description was diplayed in the wizard for certain wizard-only keys.

      • Replaced the words Discount, Forecast, Curve found in all keys with Disc, Forc, Crv.(This change is not backward compatible)

      07 May 2021 version 10.3.2

      Bug Fixes:
      • Optional keys of Local Functions of which the value was modified by the user within the wizard were (wrongly) not been kept displayed after the user had clicked to hide all optional inputs.
      • Doubleclicking in the wizard a cell containing [No Date] and then editing the presented today's date into a new date resulted in a cell containing today's date rather than the new date.
      • The Shift function of objects of type inherited from IRS failed to produce the expected swap.
      • This version is not available in 64 bit due to technical reasons!

      06 May 2021 version 10.3.1

      Bug Fixes:
      • Using the Show function to generate spreadsheet objects containing cash flows led to Excel crash.
      • Added the optional key Stub Rate= in the creation of Yield Curve Dep objects so that the related yield curve implies short term zero rates of a specified level.
      • Αll Model[X] types, where X is any subtype of IRS, have been replaced with Model.(This change is not backward compatible)

      03 May 2021 version 10.3.0

      New Features:
      • In the definition of products of type IRS added support for interest rate indices that are the difference (spread) of two swap rates.
      • Added the new function Shift that applies to swaps and swaptions and creates corresponding forward structures based on a text specification such as "6m2y" for a 6 month to a 2 year swap or swaption.
      • Reinstated the Deriv Approx choices SplineOM1, SplineOM2, Akima in the definition of Interpolation objects that are utilized in the construction of Yield, Credit and Inflation curves.
      • Added the new interpolation choices Kruger Cubic and Kruger Log Cubic in the construction of Yield, Credit and Inflation curves. They provide for a more stable built under a wider range of input data.
      • Now composite periods with up to two subperiods can be represented in the spreadsheet through shortcut trivial handles, such as %1M5D for a period representing 1 month followed by 5 days or %1M{US|MF}3B{DE} for a period representing 1 month under the US calendar with Modified Following convention followed by 3 business days under the Gernan calendar
      Bug Fixes:
      • During the creation of Yield Curve inside the wizard, several interpolation methods appeared disabled.
      • Bug related to the interpolation method Comp Linear and all methods involving Log in the Yield Curve creation.
      • The numerical suffix of handle names of objects of type Yield Curve kept increasing even when the respective objects do not change.
      • Any Yield Curve that has Issuer= %Risky Issuer is now automatically selected as the forecasting curve in any pricing context so that there may be no need to supply a Model for defining which curve should play that role.
      • Simplified the wizard-based user interface of objects of type Issuer.
      • The description of the pricing algorithm that appears in the wizard through the message To display the pricing steps click here has become more readable.

      22 Apr 2021 version 10.2.3

      New Features:
      • Added ribbon item that allows setting the local country that is used by Deriscope to build the various default parameters.
      • Improved the transfer of data from the browser area of the wizard to the spreadsheet. Now the created Show has a more intelligent syntax that identifies those elements that lie at the boundary of the initial grid and tags them in such a way so that if the grid later becomes bigger or smaller, the same boundary data will still be returned. For example, using the wizard to paste in the spreadsheet the last element appearing on the grid will now create a formula that will always return the last grid element even if the grid size changes in subsequent invocations.
      Bug Fixes:
      • Trying to inspect the cash flows of certain instruments led to Excel crash.

      20 Apr 2021 version 10.2.2

      New Features:
      • Added optional key Rule= in type Yield Curve Fxb that allows setting the direction of the date generation of the cross currency basis swaps referenced by the entered market basis spreads in the corresponding yield curve construction. Even though a curve is usually built out of swaps without broken periods, this new flag can be useful in the construction of curves implied by implied (i.e. not traded) cross currency basis spreads.
      • Linked to the newest QuantLib version 1.22

      19 Apr 2021 version 10.2.1

      Bug Fixes:
      • Fixes related to FX Swap::Fair Fwd Rate and Currency Swap::Fair Spread. The latter function replaced the older Fair Tgt Spread and Fair Src Spread

      14 Apr 2021 version 10.2.0

      New Features:
      • Added the new live feeds provider Marketstack.
      • It is now possible to return historical data with a custom set and orderring of columns.(This change is not backward compatible)
      Bug Fixes:
      • Excel crashed when trying to edit any Currency value inside the wizard.
      • Several important user interface improvements.
      • Reduced the Excel crashes relating to the wizard by hiding the latter when file operations (opening, closing, saving workbooks) are involved.
      • Made the text displayed on the Info area of the wizard more intelligible through a more representative appearance of embedded objects and dates.
      • Changed the default Range Spec= value for the historical data received from Yahoo Finance from From-To to Range. You would therefore need to add the key/value pair Range Spec= From-To as explicit input in the ds formula that creates the corresponding handles.(This change is not backward compatible)

      16 Mar 2021 version 10.1.1

      Bug Fixes:
      • Critical Fix: The previous version 10.1.0 failed during loading in several Windows systems.

      15 Mar 2021 version 10.1.0

      New Features:
      • Added a ribbon switch that enables the dsGet function to fetch live feeds in two different modes: A regular one where the function inputs are inspected each time new feeds arrive and a fast one where no such inspection takes place.
      Bug Fixes:
      • Now the wizard pastes new formulas in accordance with the Excel's support for dynamic arrays. No unnecessary @ prexixes are thus created in the newest Office 365 where dynamic arrays are supported.
      • Links from other worksheets to cells of the output range of the dsGet function are now updated automatically when Excel is in Automatic Calculation mode.

      08 Mar 2021 version 10.0.0

      New Features:
      • Substantially simplified the Live Feeds interface by replacing the dsLiveGet and dsLiveStartEngine functions with the new dsGet, which expects three arguments as input: The provider code, the array of tickers and the array of fields. This function works under either Manual or Automatic Calculation mode. The refresh frequency is controlled by a ribbon button.(This change is not backward compatible)
      • Added the new live feeds provider Finnhub and removed the WTD and Barchart since they have stopped delivering feeds.
      • Added the additional output PnL Nominal in the PnL report of the Price function.

      13 Feb 2021 version 9.4.3

      New Features:
      • In Live Feeds from Yahoo Finance added four fields related to pre-market trading when the latter is available.
      • Added a menu item called Dynamic Arrays in the menu linked to the Settings button at the Deriscope ribbon. This button allows the user to control whether the wizard-generated formulas are pasted as regular or dynamic arrays.
      • The prefix symbol @ does not appear anymore in the formulas pasted by the wizard.

      10 Feb 2021 version 9.4.2

      New Features:
      • In Live Feeds from Yahoo Finance added four fields related to after hours trading when the latter is available.

      09 Feb 2021 version 9.4.1

      Bug Fixes:
      • Few fixes involving the PnL calculation, among else.
      • Key names that contained the word Payment have been renamed by replacing it with Pmt. (This change is not backward compatible)

      04 Feb 2021 version 9.4.0

      New Features:
      • This release contains two major additions:
      • Major addition 1: The PnL functionality has been revamped to address time-varying portfolios. i.e. portfolios where certain tradables are acquired and/or disposed within the time window referenced by the PnL calculation. Now the PnL Explain table includes the two new numerical outputs: PnL Gross and Cash Flows from Fees. The old PnL output is retained, but it refers to a notion of "Intrinsic PnL", by treating correctly tradables of which the lifetime intersects with the PnL time window. For example, any tradables that are disposed prior to horizon are deemed as having a zero value at horizon, at least for the purposes of calculating the "Intrinsic PnL". If the disposal fees of such tradables are known, the respective corrections to the PnL become part of the reported Cash Flows from Fees and affect the reported PnL Gross, which represents a notion of "exogenous PnL" defined as the sum of PnL and Cash Flows from Fees.
        This more accurate PnL breakdown has been achieved by equipping all Tradable objects with optional information on exogenous transactions unrelated to their contractual payoff specifications. This information is represented as an embedded object of the new type Ledger Entry, which contains the acquisition and disposal dates along with any associated transaction fees. This transactional information is normally supplied by objects of type Blotter, out of which the tradables are created. Now all Blotter objects are of one of the three subtypes: Day Blotter, MultiDay Blotter or Lifetime Blotter. The MultiDay Blotter type is a rename of the old Period Blotter type. The Lifetime Blotter is a new type that can give rise to a time-varying portfolio. A Lifetime Blotter object can be created automatically out of an array of dates and corresponding MultiDay Blotter objects. The created object can be made to contain a fee structure by reading an input object of the new type Ledger that supplies the data pertaining to lifetime dates and fees.
      • Major addition 2: All interest rate swaps have been revamped into a new inheritance paradigm, whereby all inherit from a common ancestor named IRS. The new IRS type is not abstract. It represents a swap consisting of two legs that are treated in a completely symmetrical way. Each leg is linked to a generic interest rate index that may represent a regular term rate, such as Libor, or an averaged overnight index term rate like the one referenced in OIS. A leg may also represent a fixed rate leg. It turns out that an IRS is capable of representing several combinations, such as an exchange between Libor and an averaged overnight index term rate. For convenience, several IRS subtypes (some of them mentioned below) exist that represent commonly used specializations.
      • The new type Oi Term Rate represents an interest rate that equals the compounded or arithmetic average of overnight rates over a given period. This rate may be used to define the interest rate index in instruments, such as swaps.
      • The new types OiIbor Swap and OiOi Swap represent swaps exchanging the above rate (Oi Term Rate) against ibor and another Oi Term Rate, respectively.
      • The time varying notional in amortizing swaps can be now specified through an object of type Amortization. This replaces the old method of specifying arrays of notional amounts.
      • Function Set::Parse has been completely revamped with several new filters that allow for the inclusion/exclusion of selected columns and rows of the input raw data. These filters can lead to an output Set object that has the exact format expected by the Blotter::Create function.
      • The type HistYF now supports setting up requests for historical data from Yahoo Finance that span a user-specified time interval, such as 5 days or one month.
      Bug Fixes:
      • The PnL could fail with unknown error if the horizon date were changed and only a full forced recalculation of all spreadsheets could lead to a correct result.
      • The amortization cash flows of a product of type BondExt were wrongly timed.
      • Removed the wizard Optional Parameters button that was used to show/hide the optional input keys to the selected Deriscope function. Now a special key named Show Optional Keys appears at the top of the other regular input keys, as long as at least one optional input key exists. It is accompanied by a check box that allows the user to toggle between showing and hiding all optional inputs.
    • Improved support for Dynamic Arrays in Excel.
    • Other:
      • Several type and key names that contained the word Fixed have been renamed by replacing it with Fxd. Also keys in plural form have been replaced with their singular form, as for example Rates -> Rate. (This change is not backward compatible)

      18 Nov 2020 version 9.3.2

      Bug Fixes:
      • Bug related to Yield Curve creation out of futures.

      13 Nov 2020 version 9.3.1

      • When the index in type Yield Curve Ois is set to SOFR, the default swap conventions generated by the wizard now match the corresponding market conventions.

      09 Oct 2020 version 9.3.0

      New Features:
      • It is now possible to build a yield curve out of futures on a cumulative overnight index, such as SOFR futures. This new capability is achieved by the introduction of an optional key named Futures Type= in type Yield Curve Fut that can be set to either Ibor or Overnight.
      • The Overnight Index Swaps may now have their floating leg index calculated as the arithmetic average of the overnight rates observed over each accrual period. A rate cut-off number of days is also supported. Such swaps may also be used as market instruments in building a yield curve. This latter capability is useful when long term FedFunds vs USD Libor basis swaps are considered.
      • In type Yield Curve Fut added 3rd Wed to the list of possible values associated with Standard Dates=.
      • In type Yield Curve Fut renamed the title #ID of the table with the market futures prices to #Counter and changed its meaning so that the respective column may now hold increasing - but not necessarily consecutive - positive integers with the following interpretation: The number 1 refers to the first possible futures contract and so on. The enhancement is that gaps in the sequence of referenced futures expiries are now allowed.(This change is not backward compatible).
        Also 1-month and 3-month futures may now coexist in the same table, a useful feature in the case of futures on an overnight index.
      • In type Yield Curve Fut renamed the keys Ibor Index=, Dates=, IMM Start Delay=, IMM Date Shift= to Index=, Standard Dates=, Min Mat Prd=, Date Shift= respectively. Also renamed the Input Method setting By IMM to By Calendar.(This change is not backward compatible)
      • In type Yield Curve Fut renamed the function IMM Dates to Futures Dates and its keys Second Date Lower Bound= and IMM Start Delay= to Mat Later Than= and Start Delay= respectively.(This change is not backward compatible)
      • In type Yield Curve Ois replaced the optional key Tel Dates= with Avg Method= that accepts text values out of an allowed list.(This change is not backward compatible)
      • Added the mandatory key Add Hist Obj= in function Historical Values::Add Values.

      27 Oct 2020 version 9.2.2

      • Added the function ObjectTools::Bare Handle that returns the bare handle name (without suffix/prefix) of the referenced object.
      • Added the function Market::Lookup Markets that returns the embedded Valuation objects corresponding to given IDs. This allows the user to reference specific embedded Valuation objects without the need to apply spreadsheet lookup functions on the output of Market::Embedded Markets.
      • Now the key Values in function Historical Values::Add Values can also accept an object of type Historical Values.

      22 Oct 2020 version 9.2.1

      Bug Fixes:
      • Fixed a few bugs introduced by the recent big changes.
      • Added an alternative user-specific storage path for the Deriscope license file in the rare cases when the user has no write access to the ProgramData windows directory.

      14 Oct 2020 version 9.2.0

      Bug Fixes:
      • Several fixes related to recently introduced Advanced Pricing model.
      • Made the keys Modelled Qty= and Interp Method= of the type Yield Curve mandatory.
      • Renamed the key Payment Date Bump= to Pmt Date Bump=, the key Forecasting Curve Issuer to Forc Crv Issuer, the key Discounting Curve Issuer to Disc Crv Issuer

      05 Oct 2020 version 9.1.0

      New Features:
      • Now portfolio pricing is capable of producing additional implied quantities for the constituent tradables - such as fair rates or leg NPVs - and display them in the breakdown table in new columns next to those containing the prices. The exact implied quantities are defined in an object of type Model[Portfolio]
      • Added the Frequencies 26 Weeks, 26 Weeks(360) and 26 Weeks(365) that represent a repetitive event occurence every 26 weeks. The respective number f in the standard interest rate compounding factor expression (1+r/f)^(ft) is assumed to be 2, 182/360 and 182/365 respectively.
      • In the Price function, introduced the input key Horizon Market that is used when Output= Advanced. Also removed all Market entries from the Create function of the type Advanced Pricing.

      29 Sep 2020 version 9.0.0

      New Features:
      • This is a new major release that primarily enhances the Price function of objects of type Tradable by allowing its Output= input to be set to the text Advanced. Then Deriscope looks in the supplied collection of Model objects for a special object of type Advanced Pricing. If found, rather than calculating the price and/or risk of the referenced tradable, a sequence of calculations are undertaken as specified in that special object. As of now, the Advanced Pricing object allows the undertaking of the following calculations:
        1) Spot price
        2) Carry until some future horizon date based on projected floating rate resets
        3) Income between the specified spot date and some future horizon date based on realized floating rate resets
        4) Forward price as of some future horizon date
        5) Roll-Down calculation as of some future horizon date
        6) PnL between the specified spot date and a later horizon date
        All above calculations, except the Income and PnL, can be optionally carried out under the assumption that a certain user-specified subset of the future floating rate fixings equal given fixed values.
        In the case of PnL, in addition to the single number result, a table with its breakdown into explaining components is also produced.
      • The second major enhancement is the addition of an optional Date element in all objects the type of which inherits from Market, such as - for example - objects of type Yield Curve, Vol Curve or Stock Price. This new element can be specified with the optional key Trade Date=. If it is set to some specific date, the respective object can be used only in a pricing context where the specified global valuation date matches that date. Functions that do not reference a global valuation date - such as the DF function - assume a valuation date that equals the date in this new element. For backward compatibility, all Market objects that have been generated without the Trade Date= key, can be freely used in any pricing context, whereby their internal trade date is assumed to equal the valuation date that happens to be in effect in that pricing context. Essentially, such Market objects carry a "dynamic" trade date, in contrast with Market objects created with an explicit Trade Date= value, which are deemed to carry a "fixed" trade date.
      • Added the local function Has Dynamic Trade Date that acts on all objects the type of which inherits from Market and returns a boolean, which indicates if the above mentioned Trade Date element is set to some specific date or not.
      • Another important enhancement in this release concerns the generation and display of cash flows. Now this cash flow generation process is largely controlled by a user-specified object of type CF Model that has been extended to handle smart filtering of columns and conditional merging of rows with optional summation of their contained values. For ease of use, several predefined cash flow manipulation rules are available. For example, the PmtDt-NetAmt rule produces a cash flow table consisting of only two columns containing the payment date and the corresponding total (net) paid amount.
      • If a user-specified handle name ends with the underscore character _, it is interpreted as custom prefix rather than full handle name. In that case, the object's final handle name starts with that prefix and ends with a unique Deriscope-generated identifier. The major advantage of this practice is the elimination of handle name conflicts when the same object-producing function appears in more than one places in the currently open spreadsheets.
      • Added the two new functions Add Values and Collate that act on objects of type Historical Values. They are useful in creating new Historical Values objects out of old ones.
      • Enhanced the special Deriscope spreadsheet functions dsTrimCols and dsTrimRows so that they can manipulate the input range by applying smart filtering criteria on the values of the source range. Useful when only selected subsets of a big range - such as the cash flows table - need to be displayed.
      Bug Fixes:
      • Wrong discount factors were generated by Yield Curve objects produced by horizontal shifting - for example through the Shift Curve function - of a reference yield curve.
      • Changed the format of all dates generated by Deriscope so that they look like 04-MMM-2020 where MMM is the 3-letter month code in the local language. This format is immune to misinterpretations that often lead to hard-to-diagnose errors.
      • With regard to objects of type Yield Curve made the following not backward compatible changes:
        Renamed the key Accuracy to Tolerance.
        In the functions Zero Rate and Zero Rate At Time, renamed the key Maturity to Maturities.
        In the function Forward Rate, renamed the keys Start Date, End Date to Start Dates, End Dates.
        In the function Forward Rate At Time, renamed the keys Start Time, End Time to Start Times, End Times.
        In the function Forward DF, renamed the keys Fix Dates, Maturities to Start Dates, End Dates.
        In the function Forward DF At Time, renamed the keys Fix Times, Maturities to Start Times, End Times.

      02 Sep 2020 version 8.3.1

      New Features:
      • Added an optional numerical argument in the Date function Add Period that acts as a multiplier on the supplied Period input.
      • Added the local functions Fixing Date, Start Date and Maturity Date on objects of type Ibor Rate.

      01 Sep 2020 version 8.3.0

      New Features:
      • Deriscope now checks at startup if Excel supports dynamic arrays, in which case any generated array formulas are pasted using the new spill range feature.
      • Information on selected cells is now displayed in the wizard even when the arguments in the deriscope formula contain functions such as INDIRECT, dsMergeH, dsMergeV etc.

      31 Aug 2020 version 8.2.2

      Bug Fixes:
      • The Src (Tgt) Past Fixing of objects of type Yield Curve Fxb was used only when the trade date happened to be a non business day with respect to the corresponding index. Now it is used when the settlement date of the corresponding index is in the past.

      07 Aug 2020 version 8.2.1

      • Added the VBA functions IsAutoRefresh and IsFlash.

      04 Aug 2020 version 8.2.0

      Bug Fixes:
      • Low and High fx rates coming from the TFX provider appeared swapped due to a change in the TrueFX json stream.
      • Now pricing of fx forwards or cross currency basis swaps, as well as yield curve building out of such instruments, takes into account the settlement period of the supplied spot fx rate.

      30 Jul 2020 version 8.1.5

      New Features:
      Bug Fixes:
      • Suppressed the annoying display of the popup error window that often occurred during various user operations, such as closing and saving workbooks.
      • Various fixes relating to the functionality of the ribbon DeriLive buttons.
      • Now dates entered in objects of type Historical Values can be in any order.
      • Opening spreadsheets under Automatic Calculation mode will now cause their forced recalculation as this ought to be the expected behavior.
      • The Enabled/Disabled status of the wizard is now remembered for the next Excel session: Quiting Excel with the wizard enabled/disabled determines if the wizard appears when Deriscope DLLs are loaded in the subsequent session.

      29 Jul 2020 version 8.1.4

      Bug Fixes:
      • When the Load when Excel Starts= in the wizard's Settings was checked, the Deriscope DLLs were loaded at startup but the Deriscope ribbon tab was still shown as if Deriscope was not loaded.
      • Now the input range in association with the key Market Data= in YieldCurve::Create can contain blank cells.
      • When Auto Refresh is ON and Excel Calculation is in Automatic state, opening a workbook with Engine-based live feeds automatically starts all engines defined in that workbook.

      27 Jul 2020 version 8.1.3

      Bug Fixes:
      • Improved the reported error merssages.
      • Renamed the type Fixed Rate MM to Fixed Rate CD.

      24 Jul 2020 version 8.1.2

      Bug Fixes:
      • Sometimes, error messages referred to QuantLib failures where - in reality - these failures were caused by missing keys in the input data. Now these error messages inform the user about the missing keys, as they should.
      • Renamed all Constraint types by removing the word "Constraint" from their end.(This change is not backward compatible)

      21 Jul 2020 version 8.1.1

      Bug Fixes:
      • In the Live Feeds - Historical Data functionality of Deriscope, the Filter= settings Block All Zeros and Block First Zero failed to block empty feeds, although they ought to be regarded as "zeros".
      • Selecting cells containing listed values while the wizard was displayed caused the creation of a cell dropdown even when the cell contained formula.
      • Now cell flashing during live feeds display does not interfere with the old colors.
      • The retaining and displaying on the spreadsheet of the most recent Live Feeds can now handle any number of tickers and fields simultaneously.

      20 Jul 2020 version 8.1.0

      New Features:
      • The optional first boolean argument in the ds and dsLive spreadsheet funcions that has been acting as a switcher that controls whether the respective function runs or not, can now be any non-boolean value that is either a number or a text that starts with the hash sign #. Then the function still does not run its intended routine, but returns the supplied first argument rather than its previous output value.
      • In the construction of a yield curve out of fx forward rates, enhanced the type Yield Curve Fxf with the optional boolean key Quote Tgt/Src= that allows the user to choose whether the input fx forward rates refer to the standard or inverted currency pair.
      • In the construction of a discounting yield curve implied from a foreign currency discounting curve, enhanced the type ImpYC XCCY Disc with the optional boolean key Use FX Forwards= that allows the consideration of fx forward rates in the building of the domestic curve discount factors. When set to TRUE, a separate entry named FX Fwd Crv introduces the yield curve object that supplies the FX forward rates.
      • Keys containing the following text tokens have been renamed as indicated:(This change is not backward compatible):
        1) Curve -> Crv
        2) Definition -> Def
        3) Reference -> Ref
        4) Discount -> Disc
        5) Forecast -> Forc
        6) Inflation -> Infl
        7) Source -> Src
        8) Target -> Tgt

      14 Jul 2020 version 8.0.0

      New Features:
      • Added the new optional key Bootstrap Spec in the creation of objects of type Yield Curve that allow the user to customize both the iterative and local bootstrapping algorithms. The associated optional value must be an object, the type of which derives from the newly introduced abstract type Bootstrap. These customizations may help in resolving bootstrapping failures. In particular, the sub-type Iterative Bootstrap supports the No Failure key, which, when set to No true, it results in the creation of a valid Yield Curve object under all circumstances by employing a fallback mechanism further controlled by the No Failure Steps key.
      • Added the new type Global Bootstrap that corresponds to the QuantLib template class GlobalBootstrap. The objects of this type can be used as the value to the key Bootstrap Spec described above in order to introduce additional constraints in the yield curve bootstrapping process. For now, the Global Bootstrap type supports the methods FixImplQuotAsShift and FixImplQuotAsAvg. The former allows the imposition of specific shifts (jumps) on the implied quotes of certain instruments that are not necessarily included in the set of market instruments. The latter adds the requirement that the weighted average of implied quotes of certain defined instruments equals the implied quotes of other defined instruments. All such instruments can be independently defined and need not be part of the set of market instruments. This type of averaging constraint is also used by Bloomberg in order to infer the implied quotes of missing forward contracts, for example those maturing between 18 months and 2 years in the construction of the USD curve.
      • Added the modelled quantity type Zero Yield Annual as an additional choice to the key Modelled Qty= in the creation of objects of type Yield Curve. It differs from the existing Zero Yield choice in that the zero yield is defined as being annually instead of continuously compounded.
      • Added the interpolation methods Nat Log Cubic and Fin Log Cubic as possible values to the key Interp Method= in the creation of objects of type Yield Curve, Credit Curve and Inflation Curve. They apply Natural and Financial cubic interpolation on the logarithm of the modelled quantity specified in key Modelled Qty=.
      • Now objects of type Yield Curve contain detailed cash flows with respect to all types of market instruments.
      • Now objects of type Yield Curve can be created out of swaps that differ on their fixed leg period and/or their index. This is important in certain markets, like that of AUD swaps that are quarterly and linked to the 3 month BBSW when their maturity is less than 4 years, but are semiannual and linked to the 6 month BBSW otherwise.
      Bug Fixes:
      • The Cash Flows function of Tradable objects returned an empty table.
      • Reintroduced a missing optional constraint input in the yield curve parametric fitting to bond prices using models such as Nelson-Siegel or Svensson. The constraint can be used to limit the allowed range of selected model parameters during the fitting process.
      • In the Live Feeds functionality of Deriscope, Historical data included dates that did not exactly matched those implied by the From= and To= settings of the request object.
      • Linked to the latest QuantLib version 1.18 and ORE version
      • Renamed the default value Iterative Bootstrap for the default key Build Method in the creation of Yield Curve objects to Iterative BS.(This change is not backward compatible if the mentioned default value has been explicitly used)

      24 Jun 2020 version 7.9.3

      New Features:
      • Added new build method of objects of type Yield Curve out of a single column of discount factors of which the maturities are assumed to be consecutive calendar days.

      22 Jun 2020 version 7.9.2

      New Features:
      • Added new build method of objects of type Yield Curve out of two columns containing discount factors and their maturities as calendar day offsets from today.
      Bug Fixes:
      • Various bugs related to the creation and pricing of objects of type Portfolio.

      16 Jun 2020 version 7.9.1

      Bug Fixes:
      • The yield curve implied by fx forward rates, i.e. by market data of type Yield Curve Fxf was built incorrectly due to a mismatch with a QuantLib boolean flag.

      15 Jun 2020 version 7.9.0

      New Features:
      • Added the following VBA functions: IsDeriscopeAnalyticsLoaded, IsDeriscopeWizardEnabled, StopAllLiveFeedsEngines, SetAutoCalc and SetManualCalc.
      • Added the new key Check Only= as optional input in the creation of objects of type deriving from Hist Request, such as Hist YF. Its default value is False, but when set to True, it instructs the fetching process to only return a diagnostic boolean about the existence of historical data, rather than the data themselves. This is useful in complex spreadsheets where several trials with different request settings may be needed before deciding on the final request setting to be used for the data retrieval.
      Bug Fixes:
      • The display of historical data of several symbols failed altogether when the first symbol failed, even if the remaining symbols were valid.
      • Removed the constraint of a maximum number of 27 tickers in the acquisition of historical data. Now any number of tickers may be processed by a single request to the live feeds provider server.
      • Changed the behavior of the light bulb button in the DeriLive ribbon tab so that it only reignites the existing engines but does not paste any spreadsheet formulas. It also sets other Excel environment features to guarantee the live feeds will be refreshed as expected.
      • Improved the display of auto-refreshed live feeds so that any missed feeds do not replace the previous values with zeros.
      • For the sake of user's convenience, forced the wizard-generation of the keys Column List= and Base Value= during the creation of objects of type deriving from Hist Request, such as Hist YF, even when these keys are ignored due to previous entries.

      12 Jun 2020 version 7.8.0

      New Features:
      • A new optional global key, i.e. a key that can be used as input to any function, has been introduced. It is named ObjectAsHandle= and determines the type of returned data in the case when the function returns an object. The default value is True, which means the object is stored permanently in memory and its handle name is returned. Setting the value to False instructs Deriscope to return the object's contents and not keep the object in memory. This is handy with returned objects of type Set that contain the cash flows of large portfolios and easily consume hundreds of megabytes of memory.
      • Now the first argument to the spreadsheet functions dsLive and dsLivev can be optionally a boolean value that plays the same role as the first argument added in the functions ds, dsv and dsi in the previous release.
      • Added the function Cash Flows that applies on any object of type Tradable and returns the cash flows associated with that tradable in the form of an object of type Set. It accepts as input an optional object of type CF Model that specifies the subset of cash flows that must be generated and returned.
      • Cash flows may now be generated for objects of type Portfolio when their constituent tradables are of the same type. They are composed by the constituent cash flows sorted by their payment date. In the case of portfolio pricing with Output= Full the cash flows are generated only if an object of type CF Model is used as input that specifically instructs the generation of cash flows.
      Bug Fixes:
      • A few minor side-effects occuring when the first boolean argument introduced in the previous version is present.
      • In a few cases the last input argument of certain functions was not displayed in the wizard.
      • Made the generation of the cash flows linked to any tradable on-demand, meaning they are generated as soon as their presence is necessary in some operation.
      • Made the wizard aware of the new Excel feature of dynamic arrays so that it does not interfere destructively with cells that happen to be part of the spill range of a dynamic array.

      29 May 2020 version 7.7.0

      New Features:
      • Now the first argument to the spreadsheet functions ds, dsv and dsi can be optionally a boolean value that controls if the function should be evaluated when the user presses F9 or Shift-F9 or selects one of the wizard Recalc utilities except that of the Selected Range. When this boolean argument equals true or is missing, the functions is calculated in the normal fashion. Otherwise the function generally returns the value that pre-existed in its output range without any additional computation. It only returns 0 if the function is forcefully calculated by entering it in the formula bar.
      • Removed the global Block key since its intended functionality is now better served by the first input boolean argument described above.(This change is not backward compatible)

      28 May 2020 version 7.6.2

      Bug Fixes:
      • Small fix related to the function Set::Parse.

      27 May 2020 version 7.6.1

      Bug Fixes:
      • Small fix related to historical fixings.

      25 May 2020 version 7.6.0

      New Features:
      • Added expected overnight rate jumps in the yield curve creation by introducing the new type Yield Curve Jmp, which derives from Yield Curve Input and designed to represent a series of jump dates with corresponding overnight rate jumps. Two types of jumps are supported: Permanent and Transient. The former is suitable for expected rate changes due to scheduled central bank policy meetings. The latter is suitable for temporary jumps, like those occurring at year end.
      • Changed the default daycount used in Yield Curve construction from ACT_ACT_ISDA to ACT_365F.(This change is not backward compatible)

      20 May 2020 version 7.5.5

      Bug Fixes:
      • The interpolation types Nat Cubic and Fin Cubic were wrongly linked to the Kruger method, which resulted to identical results. They are now linked to the Spline method.

      17 May 2020 version 7.5.4

      Bug Fixes:
      • Certain objects of type Portfolio failed to be created.
      • The Fair Value output of the Price function could fail when the referenced parameter was part of an implied yield curve or a Tradable object.

      06 May 2020 version 7.5.3

      • Renamed the type ImpYC Disc to ImpYC XCCY Disc so that its name reflects the fact that it deals with two currencies.(This change is not backward compatible)
      • In certain contexts where a numerical entry is expected, the text entry N/A can be valid and means that no number is supplied. In the past, this type of information was handled with a blank cell.(This change is not backward compatible)

      30 Apr 2020 version 7.5.2

      • Changed the construction of a yield curve out of tenor basis swaps so that the short index and its associated spread is paid according to the Flat Compounding convention which is the market standard in most currencies. For example, in a 1v3 tenor swap exchanging 1M vs 3M Libor, the 1M Libor is compounded three times over each 3-month period and paid once at the end of that period. This is the new default in the absence of other optional input that may specify otherwise.

      20 Apr 2020 version 7.5.1

      Bug Fixes:
      • Due to a recent change, portfolio elements with a zero associated weight were kept as part of the portfolio. Now such elements are trimmed away, thus restoring backward compatibility.

      08 Apr 2020 version 7.5.0

      New Features:
      • Added the Excel functions dsTrimCols and dsTrimRows that take as input any range and return the array of values corresponding to the sub-range that results after selected columns or rows have been removed.
      • Added the optional key Virtual in the Portfolio construction out of a Blotter. Default is false for backward compatibility. When true, the Tradable constituents are created only if and when their presence is needed by some operation, such as pricing. This allows the processing of very big portfolios comprising tens of thousands of tradables in a 32 bit Excel environment where the construction of so many objects could exceed the allocated memory limits.
      • Added the function Get Tradable that acts on objects of type Portfolio or Blotter and returns the Tradable object corresponding to a supplied trade ID.
      • Substantially increased the calculation speed of pricing of portfolios under Output= Full mode, i.e. when extra data are requested.
      • If the wizard is open and a cell is selected, Deriscope runs a pre-check on the time needed to process that cell. If the time is deemed too long, the processing is aborted so that Excel does not hang.

      01 Apr 2020 version 7.4.1

      New Features:
      • Added the key Explicit Types in the function DataSet::Parse.
      Bug Fixes:
      • DataSet creation could result in issuing unknown error when certain integers happened to be part of the input data.

      31 Mar 2020 version 7.4.0

      New Features:
      • All objects now contain the optional key ID, which may contain a text value and is empty by default. Objects of type Yield Curve, FX Value or Historical Values can be created with a custom ID value. This new key can be used to distinguish between objects that have otherwise equal contents.
      • Added the global optional key BLOCK that acts as a switcher to all Deriscope functions. It can be added as input to the ds formula and takes a boolean value, which by default equals FALSE. When set to TRUE, the ds formula returns #N/A and the routine associated with the referenced function is completely skipped.
        This new key becomes visible in the wizard if the Global Parameters Visibility button to the left of the Function Selector is set to Shown. The visibility of the latter button is controlled by the Hide/Show Rarely Used Buttons menu item of the Tools button.
      • Added the local function Embedded Markets that applies on any object of type Market and returns all Market objects embedded in the calling object.
      • Made several changes that affect how itemized data relating to Portfolio objects are incorporated in various pricing and risk results. Itemized prices and risks are now stored in vertical fashion in order to handle more efficiently portfolios consisting of several thousand tradables.
        (This change is not backward compatible)
      • Renamed the Product Props Group key of object of type Period Blotter to Props Group.
        (This change is not backward compatible)

      26 Mar 2020 version 7.3.3

      • Made the type Schedule accessible in the wizard regardless of the Type Viewing Filter setting.

      23 Mar 2020 version 7.3.2

      Bug Fixes:
      • The Implied Values function of objects of type Yield Curve failed due to a recently introduced bug.
      • Re-introduced the two keys Tradables and Weights of objects of type Portfolio that had been replaced by the new key Items in version 3.0.0. Now a Portfolio can be created in the original way by supplying these two keys or alternatively through the key Items. This change also reinstates the backward compatibility with regard to Portfolio object creation.

      18 Mar 2020 version 7.3.1

      Bug Fixes:
      • Changing the default currency of a yield curve in the wizard grid did not cause the anticipated currency adjustment in those groups of market instruments (eg swaps or bonds) that depended on that currency. This lack of synchronicity led to a failure that effectively made the currency change in the wizard impossible.
      • In Live Feeds, added symbol lists for stocks traded in various exchanges around the world. Also removed the lists related to specific indices such as AMEX, S&P500, CAC40, DAX etc

      08 March 2020 version 7.3.0

      New Features:
      • The two keys Tradables and Weights of objects of type Portfolio have been replaced by the new key Items that links to an object of type Set containing the tradables and weights of the portfolio constituents. This has been necessary because the previous treatment caused a significant time delay when the wizard attempted to display the portfolio contents in the case of too many constituents.
        (This change is not backward compatible)
      • Selecting a cell in the output range of the ObjectTools::Show function (which also is the output range created clicking Go -> Paste Object Contents) that happens to contain a handle name, causes the wizard to display the contents of the related object. This works even if the handle name points to an expired system object because that object is then recreated on demand.
      • The local function Get Matched Trades called by objects of type Blotter can now also return an object of type Blotter
      • Discrete dividends in objects of type Dividend Curve must be now supplied with strictly increasing payment dates. Otherwise an error is issued.
        (This change is not backward compatible)
      • Introduced two new license payment schemes: Annual subscription and One-off payment for one year access.
      • Increased the time period of the free evaluation license from one week to two weeks.

      27 Feb 2020 version 7.2.0

      New Features:
      • Added the type Period Blotter that is capable of containing trades executed on different dates.
      • Added boolean flag Allow in the Export and Import functions.
      Bug Fixes:
      • Pricing of option on underlying paying discrete dividends failed if any of the dividends was paid after the option's expiry.

      17 Feb 2020 version 7.1.0

      New Features:
      • Added Daily Blotter support to tradables of type Fixed Rate Bond and Vanilla IRS.
      • Added a menu item in both the ribbon and the Settings that allows the evaluation of any inferior license by temporarily downgrading the license that applies in the currently running Excel session.
      • Changed the access to time limited evaluation licenses so that any interested user must supply an email address to which a trial license code is delivered.

      10 Feb 2020 version 7.0.7

      New Features:
      • Added the Daily Blotter local functions Get Matched Trades and Get Matched Portfolio that filter a given daily blotter based on custom parameter criteria and create a sub-blotter or portfolio respectively, consisting of the matched trades.
      Bug Fixes:
      • The phrase To display extra pricing data click here did not show up in the Info Area of the wizard as soon as the user selected a cell containing the pricing output of the ds formula, if the formula happened to contain blank characters.
      • During the display of the main introductory tutorial, when the user clicked on Do not show any tip or tutorial again! resulted in not displaying other tutorials that had nothing to do with the main tutorial. Now the above has been rephrased to Do not show this tutorial again! and affects solely the currently processed tutorial.
      • Attempted to fix a bug affecting Excel versions of 2010 or earlier where a window with an error message appears after saving a workbook if the wizard is displayed.

      31 Jan 2020 version 7.0.6

      New Features:
      • Experimental introduction of a trade blotter represented as object of the new type Blotter that derives from the type Data.

      28 Jan 2020 version 7.0.5

      • Simplified the taskpane by hiding several buttons that are rarely used.
      • Simplified the introductory tutorial.
      • Added a few new controls to the Deriscope Ribbons.

      21 Jan 2020 version 7.0.4

      • Added a new control to the Live Feeds DeriLive Ribbon that enables the memory retention and display of the most recently received live feeds.

      19 Jan 2020 version 7.0.3

      • Added new controls to the Live Feeds DeriLive Ribbon that enable a) the pasting of all available fields per provider, b) the automatic storage of incoming live feeds to a local user-designated CSV file, c) the setting of the colors employed by Deriscope in various operations, such as formula pasting and cell flashing, and d) the setting of the time duration of flashing.

      16 Jan 2020 version 7.0.2

      • Ribbon enhancements plus the addition of an online manual on all Deriscope Excel functions reachable through a corresponding ribbon button.

      14 Jan 2020 version 7.0.1

      • Introduced new license scheme with the same grades (although the Student grade has been renamed to Basic), and four different types of access. All licenses can now support any number of users and may be paid once or through a monthly subscription. They may be also defined to apply on either a fixed or a variable set of devices.

      10 Jan 2020 version 7.0.0

      New Features:
      • Added a new ribbon tab named DeriLive that contains controls specialized to Live Feeds.
      • Added a few useful controls to the Deriscope ribbon tab.
      Bug Fixes:
      • Creating a Deriscope object in Excel by importing an xml file sometimes failed.
      • Repaired the erratic behavior observed during Excel editing when live feeds had been updated automatically. Now Excel stays stable and the user can edit the spreadsheet without the need to pause the live feeds.

      19 Dec 2019 version 6.12.4

      New Features:
      • Added the new static functions Export and Import under the type Object Tools. The former creates a text file that contains the contents of a given Deriscope Excel object in xml format. The latter creates a Deriscope Excel object by reading the contents of a given text file, which text file has been previously created by the Export function.
      • If a required fx rate is missing from the input market data during pricing, an attempt is made to use the rate implied by other existing rates through a first degree linkage. For example, if the required fx rate GBP/EUR is missing, but the two rates EUR/USD, GBP/USD are available, the implied GBP/EUR rate is calculated and used as a valid proxy of the missing rate.
      • If a required volatility curve of a certain fx rate is missing from the input market data during pricing, an attempt is made to use the volatility curve of the inverse rate if that latter curve exists. For example, if the required volatility curve of the fx rate GBP/EUR is missing, but the volatility curve of the rate EUR/GBP is available, the latter curve is used - perhaps with its strike coordinates appropriately transformed if it is in the form of a maturity-strike vol table - as a valid proxy of the missing curve.

      11 Dec 2019 version 6.12.3

      Bug Fixes:
      • Corrected a bug related to the type Ibor Rate introduced by the previous release.

      11 Dec 2019 version 6.12.2

      New Features:
      • Added the interest rate indices Mosprime, Pribor, Robor, Sofr, THBFIX, Wibor used in the creation of objects of type Ibor Rate or Overnight Rate.

      10 Dec 2019 version 6.12.1

      Bug Fixes:
      • Minor bug that made the ribbon button Use Wizard appear when the wizard was already used and the ribbon button Quit Wizard appear when the wizard was already quitted. This bug carried no practical consequences since clicking upon the appeared button would reinstate the correct appearance.

      09 Dec 2019 version 6.12.0

      Bug Fixes:
      • Fixed a rare but catastrophic bug: Closing a workbook immediately and within one or two seconds after another workbook was saved, caused Excel and other open application windows, such as Windows Explorer or Chrome, to crash.
      • The fix introduced in the previous 6.11.1 version concerning the DLL loading failure was not properly implemented. Now a new correct fix has been added.
      • Now a live feeds engine keeps receiving and displaying feeds in asynchronous mode even when the wizard is fully disabled after the user has clicked on the Disable and Hide Wizard Excel ribbon button.
      • Replaced the two ribbon buttons Enable and Show Wizard and Disable and Hide Wizard with the three buttons Use Wizard, Quit Wizard and Load Deriscope.
      • Introduced the new configuration setting Use Wizard after Loading that is set to TRUE by default. Changing it to FALSE can be a convenient choice for bringing Excel automatically to a wizard-free but still Deriscope-enabled state immediately after Excel starts.
      • Renamed the VBA procedure StartWizard to UseWizard and modified slightly its functionality so that it matches that of the same named ribbon button.
        (This change is not backward compatible)
      • Introduced the VBA procedure LoadDeriscope that acts exactly like the same named ribbon button, i.e. it loads the Deriscope DLLs and enables the wizard.

      05 Dec 2019 version 6.11.1

      New Features:
      • Added a new instrument representing a money market loan or deposit as the new type Fixed Rate MM that is equivalent to a Fixed Rate Bond with one accrual period.
      Bug Fixes:
      • Objects of type Payoff created with input Payoff Type= SuperFund or SuperShare ended up having Payoff Type= Vanilla.
      • Dll loading failed when the wizard was enabled after the Deriscope spreadsheet function dsLive was calculated. This situation often arose when a spreadsheet containing live feeds formulas was opened in auto calculation mode and the wizard was enabled afterward.
      • Further improved overall stability during workbook saving and closing as well as Excel exiting.

      26 Nov 2019 version 6.11.0

      New Features:
      • Added new yield curve construction whereby the produced curve has instantaneous forward rates and continuously compounded zero rates that are higher than the corresponding rates of a given reference curve by some given fixed spread. This construction is achieved through the introduction of the new type ImpYC Fwd Spreaded that derives from the ImpYC Fwd.
      • Added a new local function called Add Fwd Spread that acts on any object of type Yield Curve and outputs a new object of type Yield Curve that represents a curve with a spead as described above.
      • Added a new local function called Discount Margin that acts on any object of type Ibor Rate Bond and outputs the approximate discount margin of the referenced bond.
      • Enhanced the existing local function Fair Value that acts on any object of type Valuation so that it can process not only a single key, but a chain of keys that references the complete path down to the numerical element, which element is perturbed by the root finding solver during the search for the fair solution. For example, the Fair Value function can now process a reference object of type Vanilla Option with the reference key being the chain Payoff , Strike. The function's output will then be the "fair" strike. This works because the key Payoff points to a different sub-object that in turn contains the key Strike. Previously one had to supply the sub-object directly as reference object to the input of the Fair Value function. Now one may also supply the container object as input and specify the path to the strike through the key chain Payoff , Strike. Note this second approach is the only one applicable in the case when the sub-object is created on-the-fly by Deriscope and is not accessible through a handle name.
      • Added an optional key named Discounting Curve Issuer in the creation of objects the types of which are Models of : IborRateBond, FixedRateBondForward, FixedFloatIRS, OvernightIndexSwap, CapFloor
        This key enables the user to choose a specific yield curve that can be used solely for discounting purposes.
      • Added a column with the end date of the respective ibor index in the cash flows table. This is very helpful in identifying non-par ibor rate coupons, i.e. coupons for which the interval spanned by the ibor index does not match the accrual interval. Note that the presence of such non-par coupons makes the npv of a floating leg different from the par value.
      • Added a new menu item under the wizard Tools button named Delete All Objects, which can be used to delete all Deriscope objects that have been created through the current Excel session and stored in memory. This can be useful if creation of new objects is thwarted due to naming conflict with earlier objects.
      Bug Fixes:
      • Function Show of Object Tools failed to process deeper level of keys, i.e. keys that were part of sub-objects associated with other keys. This bug also affected the wizard's ability to transfer to the spreadsheet data that were part of sub-objects, i.e. objects that were themselves part of other objects.
      • Failure of pricing of cash flows in a context involving more than two currencies.
      • The Settle Days element of an object of type FX Value was wrongly treated as if it were 0 in the conversion of a spot cash flow to another currency denomination.
      • The settlement period of the Base Ccy and Quote Ccy elements of an object of type FX Value is now properly taken into account in the conversion of a spot cash flow to another currency denomination.
      • Excel crashed under certain rare circumstances. For example, when the trading simulator spreadsheet was saved.
      • The annoying popup window appearing sometimes when a workbook was saved.
      • Minor bug introduced with the previous release that obstructed the display of certain informational text in the wizard.
      • Added detailed information on the various bond analytics functions that include the exact mathematical formulas being used.
      • Did the following renames:
        Yield Curve Imp -> ImpYC
        Yield Curve Imp Disc -> ImpYC Disc
        Yield Curve Imp Forc -> ImpYC Forc
        Yield Curve Imp Shifted -> ImpYC Shifted
        (This change is not backward compatible)

      13 Nov 2019 version 6.10.1

      Bug Fixes:
      • Small fixes relating to VaR and the Price Simple function.
      • Modified the license scheme so that the free upgrades period is 6 months for all license types except the Professional where it is only 3 months.

      11 Nov 2019 version 6.10.0

      New Features:
      • The VaR (Value at Risk) calculation has been revamped so that it takes as input an object of type Model Sim.An array of quantile probabilities may be requested so that the VaR may be calculated for many different confidence levels. Most importantly the Low Discrepancy (Sobol) quasi random number generator is fully supported and an estimate of the standard deviation is reported when the technique of randomized simulation is used. This has a dramatic effect on efficiency, which is now increased by a factor of 100 bringing down the VaR calculation time to under one second.
      Bug Fixes:
      • An annoying popup window with long error information sometimes appeared when a workbook was saved.
      • Creation of objects of type VaR Spec failed when a proper correlation matrix was supplied, with the error message complaining about the supplied matrix.
      • VaR computation failed, with the error message complaining that a certain market element could not be found.

      02 Nov 2019 version 6.9.0

      • Substantially reduced the interference with the Excel events that occur when a) an existing regular workbook file is opened, b) an existing workbook file in protected view is opened, c) before a workbook is saved, d) after a workbook is saved and e) before a workbook is closed. Hopefully this would make Deriscope more stable when the user saves or closes workbooks, especially in the presence of other add-ins. Interference with other Excel events, such as opening new workbooks or switching windows, is retained in order to facilitate the simultaneous wizard display over several windows.
      • Removed the Always Save As Dirty flag from the configuration screen in Settings. Now all workbooks are saved without any alteration of the "dirty" state of their cells.

      30 Oct 2019 version 6.8.2

      • Introduced monthly subscriptions in the offered license scheme.

      25 Oct 2019 version 6.8.1

      Bug Fixes:
      • The value entered by the user in the Tickers Per Request entry in the wizard's settings section of WTD and BC live feeds was ignored.

      23 Oct 2019 version 6.8.0

      New Features:
      • Substantially enhanced the Model[Simulation] type that is a required input when the pricing involves Monte Carlo. It now supports the Quasi Monte Carlo (Low Discrepancy) of the Sobol type with two additional options: 1) Running a Randomized Monte Carlo that is capable of estimating the standard error associated with a Sobol simulation of any given sample size and 2) Running the simulation in parallel processing mode, when a multithreading environment is in place.
      • Introduced the new type Exec Policy dedicated to Monte Carlo multithreading. It covers two different types of parallel processing, that differ from each other with regard to their support for vectorization.
      • Introduced the new type Simulation Report designed to hold detailed data concerning the full run of a Monte Carlo simulation. Fo example, it contains averages and standard deviations but also the full array of values and paths generated during the course of the simulation.
      Bug Fixes:
      • Descriptions of fields in Yahoo Finance live feeds appeared shuffled. Some of them were inaccurate too.

      06 Oct 2019 version 6.7.0

      New Features:
      • When the wizard Tools button is clicked, in the group of menu items associated with each live feeds provider under Insert Function -> Live Feeds, added the menu item Paste All Fields that pastes in the spreadsheet the full list of fields supported by the respective provider along with their descriptions.
      • Added the menu item Refresh Selection & Copy Allowed Values accessible through a right-mouse-click when any spreadsheet range is selected. It performs the same actions invoked by the same named taskpane menu item. In particular, it recalculates the selected range, refreshes any cell validation dropdowns that happen to be part of the selected range and also copies the items listed in those dropdowns to the clipboard.
      Bug Fixes:
      • Risk (delta) calculation failed when it was related to more than two market objects of the same type. For example, when the DV01 risk was requested with respect to three different yield curves.
      • In seldom situations - actually observed in the course of a vba Auto_close() routine - the closing of a last workbook could cause Excel to not quit properly and stay alive in a zombie state, necesitating the user to kill the Excel process through the task manager.

      28 Sep 2019 version 6.6.0

      • Relinked to the IEX live feeds provider after the discontinuation of part of its service last June. The new linkage requires that the user acquires a license key from the IEX web site, which can be free or subscription-based, depending on usage volume.
      • Removed the Basic and Basic Enhanced Deriscope licenses. For backward compatibility, upon installation of the latest Deriscope version by an existing Basic license holder, all Deriscope features pertaining to the current Student license become accessible.

      24 Sep 2019 version 6.5.0

      New Features:
      • Added a new creation method of a Yield Curve object out of discount factors. This new curve can be created within the wizard by setting ~Use Discount Factors = TRUE. Then the wizard creates a curve that is linked to an object of the newly introduced type Yield Curve Dis, which is a subtype of Yield Curve Input. Particularly useful in producing curves within Deriscope that exactly match those from external systems, such as Bloomberg, that publish their implied discount factors.
      • Added a new creation method of a Yield Curve object that is implied from a given "spot" yield curve. The produced forward discount factors have the exact same shape as that of the given "spot" curve, apart from the fact that they are parallel shifted on the time axis by a given shift interval. This new curve can be created within the wizard by setting ~Implied Curve = TRUE and then ~Curve Type = Implied Shifted. Then the wizard creates a curve that is linked to an object of the newly introduced type Yield Curve Imp Shifted, which is a subtype of Yield Curve Imp. The latter type comes with a few switches that allow the further modification of the shifted discount factors, such as multiplying them with a constant number or forcing some of them to equal zero. These switches are useful in tweaking a given discounting curve so that the implied price of any financial product equals either its carry or roll value as of the carry & roll horizon date.
      • Added the new local function Shift Curve that can be called by objects of type Yield Curve, which builds and returns the shifted curve as described above.
      • Enhanced the Cash Flows table about the dates and rates of the market instruments used in the - successful or unsuccessful - building of objects of type Yield Curve so that it can handle all types of instruments. Also three more date columns have been added with titles Earliest, Pillar and Latest.
      • Removed the previously introduced optional boolean flag Use IMM Dates in the creation of objects of type Yield Curve Fut, but kept its funcionality through the addition of the new item By IMM in the list of options associated with the Input Method key.
      • In association with the above mentioned By IMM item, introduced the optional keys named IMM Start Delay and IMM Date Shift that give more control over the exact dates being used in the construction of the futures contracts.

      09 Sep 2019 version 6.4.0

      New Features:
      • In the creation of a yield curve the input object of type Yield Curve Fut that holds the futures prices can now accept an optional boolean flag named Use IMM Dates. If this flag is set to TRUE, the input table should contain no dates, but only the futures prices and convexities. Nevertheless, when the object is created and its table is displayed, it includes the dates as these are implied by the forthcoming IMM dates in relation to the trade date. The usage of this flag is practically necessary when one wants to calculate the price of a given tradable under different trade date choices without the need to adjust the dates in the yield curve input.
      Bug Fixes:
      • Pricing failed when cash flows were encountered that depended on a past-setting floating index, even if they were paid in the past and were thus irrelevant.
      • The wizard failed to display information on keys that carried an optional unit suffix. For example, selecting a cell containing the key Rate=(%) meaning that the associated numerical value is interpreted in percentage terms, did not produce the corresponding key information in the Info Area of the wizard.
      • Renamed the optional key Trade Date Cash Flows expected by the Price function to Trade Date CFs for brevity purposes. Also renamed the key Total expected by the static IMM Dates function of the Date type to Number of Dates. (These changes are not backward compatible)

      29 Aug 2019 version 6.3.1

      • When the model object that carries the specification of the risk calculation has the setting Delta Mode= By Bucket the risk part of the pricing output has been enhanced to include the flat risk as well, i.e. the risk due to a simulatneous parallel shift of all rates contained in the referenced market element. So now one may use Delta Mode= By Bucket to calculate in one step both the by-bucket deltas (key rate durations in the interest rate case) and the flat delta. Note this change breaks backward compatibility in those spreadsheets that use the Show function to display the by-bucket deltas. Use the wizard to regenerate the correct formulas.

      28 Aug 2019 version 6.3.0

      New Features:
      • Added the optional keys Src Past Fixing and Tgt Past Fixing in objects of type Yield Curve Fxb. These are only required when the trade date is a non business day with respect to the corresponding ibor index, in which case they provide the index value that applies on the first accrual period of the corresponding leg of the supplied xccy basis swaps.
      • Added a new menu item labeled Boost Error Detection in the menu popup that appears when the Tools button inside the wizard is clicked. It causes Deriscope to execute certain spreadsheet formulas with increased awareness for faulty input arguments and output useful diagnostic messages as needed. In particular, it causes the Clone function to return an error message if any of the supplied keys is not recognized. This setting can be used to diagnose hard-to-catch user input errors by simply recalculating the spreadsheet. It applies only on the current Excel session - until it is reset by the user - because it has the negative side effect of prolonging the execution time of certain functions by up to 50%.
      Bug Fixes:
      • Under certain circumstances, clicking on any menu item under Tools -> Force Recalc in the wizard could cause Excel to hang.
      • Linked to the newest QuantLib version 1.16 and ORE version 4.

      18 Aug 2019 version 6.2.0

      New Features:
      • Added the local function Fair Rate applicable on objects of type Inflation Swap. It takes as input an inflation curve and optional historical index fixings. It returns the rate that the fixed leg needs to have so that the price of the referenced swap becomes zero.
      Bug Fixes:
      • The local functions Fair Rate and Fair Spread applicable on objects of type Vanilla IRS and Overnight Index Swap did not accept historical index fixings as input. In fact, the calculation made use of historical fixings that may had been registered with the respective indices during prior runs of the Price function. The consequence of this hidden, implied reliance on historical fixings used elsewhere was that the output of these two functions depended on the order by which the spreadsheet formulas were calculated. Thus the output was often an error message, which would be replaced with the correct number after a recalculation attempt.
        Now historical index fixings are an optional input to these functions, defaulting to no fixings if this input is absent.Note this change might break backward compatibility in those spreadsheets that rely on historical fixings but happened to work properly due to a coincidental order of the involved calculations.
      • The dsPipe failed if any one cell in its input range contained an error.

      16 Aug 2019 version 6.1.0

      New Features:
      • Added the utility spreadsheet functions dsSubRange, dsReplace, dsSort under the Insert Function menu item of the wizard's Tools button.
        dsSubRange extracts a specified subset of the input range and can be used in constructing the input range to a ds formula when the exact size of that range is not fixed. It has the major advantage over other approaches based on the built-in Excel INDIRECT formula in that it is not volatile.
        dsReplace returns the data of the input range, but with a specified subset replaced with new data. It can be used in constructing the input range with modified data to a ds formula out of an existing range that contains the initial data, without the need to create a separate range that holds the modified data.
        dsSort returns the data of the input range, but reordered according to specified criteria.
      Bug Fixes:
      • Modifying the trade date on the wizard or calling the Price function with a modified trade date input had a sticking effect on the historical fixings registered with QuantLib that resulted in wrong output in subsequent calculations.

      07 Aug 2019 version 6.0.0

      New Features:
      • Extended the Price function so that it can run with respect to a) a supplied valuation date that may differ from today's date and b) a subset of the original input data replaced with new temporary values. This allows, for example, to compute the DV01 array of a tradable product with respect to a future valuation date and under the condition that part of the input market rates have certain values.
      Bug Fixes:
      • Excel crash occured when the live data section of a Stock object was pasted as a formula in the spreadsheet.
      • Further improved the efficiency of the flat and non-flat delta risk generation.
      • Sped up the execution of the generic Fair Value function by a factor of 10.
      • Restricted the access to the non-flat delta risk generation (such as the by-bucket or tenor-based yield curve DV01) to users holding a professional Deriscope license. In effect, this change breaks backward compatibility for all users who hold a standard license and use non-flat delta risk. Such users should either purchase a professional license or refrain from upgrading to this version.

      17 Jul 2019 version 5.10.0

      New Features:
      • Added the optional key Delta Def in the model objects that control the delta risk calculation. This new key can be set to either NPV Change or Ratio, with the default being NPV Change. (This change is not backward compatible)
      • Now the functions that calculate the price and risk of a Portfolio also return the prices and risks of its constituents.
      • Substantially improved the error message generated when the Create function fails due to unrecognized key input. It now includes a clickable element that resets the wizard to contain the default form of the Create function with its correct set of input keys.
      • Optimized the calculation of the flat and by-bucket delta risk of all tradables with respect to any input of type inheriting from Valuation. A typical example is the flat and by-bucket DV01 of any tradable with respect to the market rates of a particular yield curve, when the latter is part of the pricing input.
      • Made the execution time (in seconds) always part of the returned Valuation object, regardless of the setting of the input Extra Data parameter.

      17 Jun 2019 version 5.9.1

      Bug Fixes:
      • Memory leak observed during risk calculation when implied yield curves are involved.
      • Optimized the by-bucket risk calculation so that only the affected market elements are recomputed for each bucket rate shift. Depending on context, the efficiency gained in terms of execution time may exceed 50%.

      11 Jun 2019 version 5.9.0

      New Features:
      • Added the generic ability to create a yield curve implied from other given yield curves and various market data. Now the wizard presents a choice called Implied when a new curve is created.
        The first implemented case concerns the creation of an implied discounting curve - typically representing a riskless (OIS) curve - as implied by a given discounting curve in another currency plus cross currency basis swaps. Such an implied curve is the appropriate discounting curve that should be used in the pricing of instruments (eg swaps) denominated in a given currency that are collateralized in a different currency.
        The second implemented case concerns the creation of an implied forecasting curve as implied by a given market curve without an embedded discounting curve plus a given separate discounting curve. This implied curve takes no input market rates and relies solely on the two pre-built input curves.
        In all cases, the resulting implied curve is based on a curve that is being synthesized from the inputs. The thus synthesized curve is displayed as a read-only component of the returned Yield Curve object under the key Synthesized Curve.
      • In parallel to the existing %Riskless Issuer, introduced the %Risky Issuer trivial handle name that represents a default object of type Issuer. This is particularly handy in the context of dual curve pricing, since it allows the user to "mark" any curve as "risky" by simply adding the key-value pair Issuer= %Riskless Issuer in the input data of its Create function.
      • Added optional unit specifier in keys and table titles, as follows: Any key labeled "KeyName=" or table title labeled "#TitleName" can be optionally replaced by "KeyName(x)=" and "#TitleName(x)", where x can be one of N, %, bp, K, M, B. Then any input numerical value associated with that key or title will be interpreted as number of x units. For example, the key-value pair Rate(%)= 2.3 will mean a rate of 0.023 or 2.3%. Similarly the key-value pair Notional(M)= 10 will mean a notional of 10,000,000. The specifier N means Natural and has no effect on the associated value. It is the default in the sense that Rate(N)= 0.023 is the same as Rate= 0.023
      • The changes below are not backward compatible. Please use the wizard to create the correct formulas.
      • Renamed the keys Dom Ccy, For Ccy used in FX and FX Value to Quote Ccy, Base Ccy respectively, as these are the standard references to the currencies in a traded currency pair.
      • Replaced all traces of Dom and For in keys where no domestic or foreign context is apparent with Src and Tgt respectively. Those domestic and foreign quantities are now understood as source and target quantities respectively.
      • Renamed the keys Overnight Index, Payment Lag, Payment Frequency, Tel Value Dates used in yield curve creation from OIS rates to ON Index, Pmt Lag, Pmt Freq, Tel Dates respectively.
      • Renamed the key Discounting Curve used in certain yield curve creation contexts to Disc Curve.
      • Several key renamings affecting the optional Interpolation input object in yield curve creation.
      • IMPORTANT: All Deriscope licensed users are strongly advised to download and install this or a later version before their free Deriscope upgrade status expires! The reason is that all previous versions carry a bug that may manifest itself after a windows 10 upgrade and results in treating the existing Deriscope assembly as having been installed when the windows upgrade took place. The consequence is fatal as the license then refuses to load the assembly, with the consequence that Deriscope becomes inaccessible!

      27 May 2019 version 5.8.0

      New Features:
      • Added yield curve bootstrapping capability out of interest rate tenor basis swaps
      • Added yield curve bootstrapping capability out of forward starting cross currency basis swaps.
      • Added yield curve bootstrapping capability out of non-standard cross currency basis swaps, whereby one or both of the legs may carry an index multiplier and/or a spread. In particular, setting one or both of the index multipliers to zero allows for yield curve generation out of fixed-to-fixed and fixed-to-floating cross currency basis swaps.
      • Added the new interpolation methods Compounded Linear and Compounded Cubic in yield curve construction that respectively apply linear and cubic interpolation on a rate (typically zero rate) that is discretely rather than continuously compounded.
      • Significantly enhanced yield curve diagnostics by reporting full cash flow information regarding the input market rates.
        In particular, when N market rates are used in a yield curve construction, this new information is presented as an array of N tables, where the ith table contains the detailed cash flows associated with the ith market instrument.
        Importantly, this information is made available even if the yield curve fails to be built so that the user can easier investigate the source of failure. A few instrument types, such as deposit rates, are not supported. This new functionality does not incur any efficiency loss because the tables are populated on demand, only when the user decides to inspect their contents.
      • Added a function in Vanilla IRS that calculates and returns the fair spread on the floating leg.
      • Added functions in Currency Swap that calculate and return the fair domestic and foreign spreads on the domestic and foreign Ibor index respectively. These functions obviously apply on currency swaps that are of Ibor vs Ibor type.
      • Added functions in Overnight Index Swap that calculate and return the fair rate and spread.
      • Added the time unit L that represents a time period of four weeks, sometimes also referred as Lunar month or Lunar period. It follows that a time period of xL is fully equivalent to 4xW for any integer x. This unit is useful in markets - such as the Mexican - where swaps roll on a four-week cycle.
      • Added the currency-specific ibor indices with custom defined tenor: AUDbbsw, CZKPribor, DKKCibor, HKDHibor, HUFBubor, IDRIdrfix, INRMifor, KRWKoribor, MXNTiie, NOKNibor, NZDBKBM, PLNWibor, SEKStibor, SGDSibor, SGDSor, SKKBribor, TWDTaibor
      • Added the currency-specific overnight indices: CHFTois, CORRA, Tonar
      • Added the function Get Holidays that returns all dates between two given dates that are regarded as holidays by a given calendar.
      Bug Fixes:
      • The yield curve interpolation methods Log Linear and Log Cubic always failed, when used with a modelled quantity of type Zero Yield.
      • Incorrect construction of Ibor Rate objects with custom conventions.
      • The forward starting, pre-defined overnight rates CADLibor, CHFLibor, EURLibor, GBPLibor, JPYLibor, USDLibor were not correctly implemented.
      • Several yield curve interpolation methods led to failure, due to not being compatible with the input interpolator object. This made the respective items in the local cell validation dropdown to appear with the (na) prefix. Now an incompatible interpolator object is ignored and the curve stripping proceeds based on a default interpolator object that is compatible with the specified interpolation method.
        The big advantage is that the user may now switch through the various interpolation methods and immediately see the results, without having to modify the input interpolator object.
      • Substituted the entry of calendar daily deposit tenors with business daily tenors in the yield curve construction because QuantLib interpretes daily deposit tenors in business day sense. So an entry like %3D is not any more allowed and should be replaced with %3B. (This change is not backward compatible)
      • Lowered the criteria according to which a yield curve is regarded as a valid input in any pricing context. Now only its currency - and not its issuer - needs to match the currency being applicable in the given context, as long as only one yield curve with that currency is present. If more than one curves with the same currency are present, the issuer of those curves becomes relevant to curve selection.
      • Renamed the keys Quote Ccy, Base Ccy, Quote Calendar, Base Calendar within the types FX and FX Value into Dom Ccy, For Ccy, Dom Calendar, For Calendar respectively in order to match the naming used in other related types. (This change is not backward compatible)
      • Renamed the keys Settlement Days and Settlement Rule into Settle Days and Settle Rule respectively in order to make them shorter. (This change is not backward compatible)

      17 Apr 2019 version 5.7.0

      Bug Fixes:
      • Various fixes relating to the new Price Simple function.
      • Enhanced the Revalue function of the Valuation type and the Price Simple function of the Tradable type in that the edited parameter value can now be either a number or a date.

      11 Apr 2019 version 5.6.0

      New Features:
      • Added a category of products called Structured under the Portfolio group. Inside that category added the first product called Asset2 Linked, the payout of which resembles that of a European option on an underlying being the minimum of the prices of two assets as observed on maturity. In addition, a) a leverage factor is in effect under the condition that the total return does not exceed a specified threshold and b) a loss is realized if the minimum falls below a certain trigger.
      Bug Fixes:
      • Various fixes relating to the new Price Simple function.
      • Several of the Price Simple function inputs are now allowed to also be handles of already created objects. For example, the Int Rate input can be a single number such as 0.01, but it can also equal the handle name of an object of type Yield Curve that has been created elsewhere in the spreadsheet.

      05 Apr 2019 version 5.5.0

      New Features:
      • Introduced the new local function Price Simple applicable to most Tradable objects. It acts similar to the Price function, but it has the advantage that all market data are supplied in a much more compact form as elements of a single object. It also contains optional flags that allow for the calculation of the fair value of any given parameter, the repricing based on modified input data and the repricing based on a modified trade date. It conveys therefore similar benefits to those of the Fair Value and Revalue functions introduced in the previous version.
      Bug Fixes:
      • In 5.1.0 a fix was introduced that involved the forced termination of Excel in those cases when the user quit Excel after live feeds had been running in asynchronous mode. That fix had the drawback of potentially interfering with the terminating behavior of other installed addins. Now that fix has been fixed - i.e. removed - so that Excel quits normally without forced termination.

      28 Mar 2019 version 5.4.0

      New Features:
      • Introduced the new local function Revalue applicable to all objects of type Valuation that happen to contain the result of either a Tradable pricing or Quotable valuation. Such objects can be created by applying the usual Price function on any Tradable with the Output parameter set as described below. The Revalue function takes as input any array of N reference objects along with N reference keys and N numerical values. It outputs a number that results from the revaluation of the caller Valuation object based on the specified input. In the case where the caller represents the price of some tradable, the output number is typically the price of that tradable, but it can also be specified to equal any other related output, such as a greek or a leg npv. This function can process any reference objects on which the caller depends, regardless of recursive depth. It is particularly useful in creating spreadsheet tables that show the price dependence on any variable set of input parameters, making thus obsolete the older approach of creating intermediate objects by means of the Clone function.
        The Revalue function takes also an optional date input that is used to reset the trade date, also known as valuation date. It can thus be used without any reference objects input in order to calculate the price of a tradable on a certain future date without the need to change the global trade date in the wizard.
      • Introduced the new local function Fair Value applicable to all objects of type Valuation as defined above. The Fair Value function takes as input any reference object - regardless of type - on which the caller Valuation object depends. It also requires a) the naming of a reference key that is part of the reference object and b) the target type and specific target number that must be produced when the value associated with the given reference key is set to the found solution. In the case where the caller represents the price of some tradable, the target type is typically the price of that tradable, but it can also be any other related output, such as a greek or a leg npv. This function can process any reference object on which the caller depends, regardless of recursive depth.
      • Added three more choices in the Output setting of the Price function. These are the Full, Price+Input and Full+Input. The Full choice results in the pricing output containing any additional data that might be generated during the pricing routine. The remaining two choices turn the pricing output into an object of type Valuation that includes the input data so that it can be reused as input in other functions, such as the Revalue and Fair Value described above. These additions have made the earlier optional input keys Add Input and Add Extras redundant and therefore have been removed. (The removal of these two keys is not backward compatible)
      • Introduced the new menu item Include Trade Date Events in the Tools button of the wizard that affects the pricing result in the case when events - such as cash flows - relevant to the undertaken pricing occur on trade date. For example, the price of a zero bond maturing on trade date will equal zero in the default case when trade date events are not included, but will be non-zero when trade date events are included. As a visual hint, the trade date displayed at the top-left of the wizard will always appear in a dark red background when trade date events are included. The most recently used setting remains valid when Excel restarts.

      18 Mar 2019 version 5.3.0

      New Features:
      • Added custom pricing code that can evaluate the price of a MinMax Option when the payoff is Cash or Nothing because it could not be handled by QuantLib.
      • Renamed the key Tradable Price of the Price Value::Create function to Reference since this new name better indicates that it refers to an object rather than just a number. In the same function, also renamed the key Spot Price that refers to the quoted numerical price of the referenced tradable to Quote in order to avoid any semantics overlap with the existing quotable type Spot Price. (This change is not backward compatible)
      • Performed the same key changes as above with regard to Stock Price Value::Create and Stock Index Value::Create. (This change is not backward compatible)
      • Combined the types Option on Minimum and Option on Maximum into the new type MinMax Option. (This change is not backward compatible)
      • Renamed the type No Underlying Option to Base Option. (This change is not backward compatible)
      • Renamed the key Reference Option that appears in multi-asset and exotic options to Base Option. (This change is not backward compatible)

      14 Mar 2019 version 5.2.0

      New Features:
      • Introduced the new local function Implied Value that can be called by any object of type Vol Curve. This is a particularly powerful function that returns the vol and total variance on every point of the time-strike underlying space, the dimensionality of which becomes 3 in the case of swaption volatility curves. Exceptionally for volatility curves pertaining to asset options, the respective forward quantities are also reported. This function may be employed to construct 2d, 3d and 4d charts of the implied volatility
      • Under Data -> Math -> Function -> Real Function added the new types Normal, Normal2d MinMax and Integral. The first returns the cumulative probability and the probability density of a normal distribution with specified mean and standard deviation. The second returns the cumulative probability of the minimum or maximum of a bivariate normal distribution. The third returns the integral of any supplied real function of a single real variable.
      • Under Data -> Math -> Function -> MultiReal Function added the new type Normal2d that returns the cumulative probability of a bivariate normal distribution with specified means, standard deviations and correlation.
      • All types that inherit from Real Function are equipped with the new local function Integrate, which returns their integral.
      • Renamed the quotable type Price that represents the quotient of two tradables to the most appropriate name Spot Price since its value at time t represents the spot price at time t of the numerator tradable denominated in units of the denominator tradable. (This change is not backward compatible)
      • Made quite a lot of changes in the interface of Currency Swap. Please use the wizard to create the correct formulas. (This change is not backward compatible)

      06 Mar 2019 version 5.1.0

      Bug Fixes:
      • In certain environments, an Excel remained active in a zombie state after it was quit by the user after live feeds had been started in asynchronous mode. The noticable effect was the lack of the Deriscope ribbon item when the user started Excel again. The provided fix involves the forced termination of the Excel application in these particular circumstances. Note this fix may interfere with other addins, if they rely on Excel's termination event.
      • Wizard permanently failed to create a yield curve under certain circumstances after the task pane had been refreshed with the only remedy being an Excel restart.
      • Descriptions and lists of possible fields and tickers could not be displayed when the cells containing the respective keys in the Live Engine::Create function were selected.
      • A few non-frequently used keys in Schedule have been renamed. (This change is not backward compatible)
      • Renamed the two FX Swap direction types Receiver, Payer into Borrower, Lender respectively. (This change is not backward compatible)
      • Renamed the two keys Currency 1, Currency 2 in FX Swap::Create into Dom Ccy, For Ccy. (This change is not backward compatible)
      • Replaced the two keys Notional 1, Notional 2 in FX Swap::Create with the four keys Start Dom Not, End Dom Not, Start For Not, End For Not. (This change is not backward compatible). The extra notionals allow the specification of fx swaps where the notional exchanged at maturity is linked to the forward fx rate observed when the swap is entered.
      • Renamed the two keys Domestic Currency, Foreign Currency in FX Forward::Create into Dom Ccy, For Ccy. (This change is not backward compatible)

      23 Feb 2019 version 5.0.0

      New Features:
      • Expanded the analytics support beyond QuantLib to the new open source library ORE.
        The new flagship product is called Multi Leg Swap and represents an extended swap with an unlimited number of legs, where each leg represents a stream of cash flows that may be fixed or linked to an interest rate or inflation index. The legs can be denominated in different currencies.
      • Added the new product Currency Swap, which is a child of Multi Leg Swap and represents a regular cross currency two-leg swap, where each leg may be fixed or floating. In the latter case the linked index may be ibor, cms or cpi. It turns out this product is capable of representing regular currency basis swaps as well.
      • Added the new product FX Swap, which is a child of Multi Leg Swap and represents a regular fx swap, whereby two currencies are exchanged at some initial time and then again - but with the opposite direction - at some time later.
      • Added the new product FX Forward, which is a child of Forward Contract and represents a forward contract where the underlying is a currency, which is exchanged by another currency at some future time. Effectively it is an FX Swap with its initial notional exchange stripped away.
      • Added the ability to store incoming live feeds in one or more local text files. The new menu item Store Feeds in File accessible in the wizard under Tools->Insert Function->Live Feeds pastes the necessary functions in the spreadsheet.
      • Added the interpolator types Natural Cubic and Financial Cubic in the bootstrapping of the various curves.
      Bug Fixes:
      • Failure to retrieve historical data and/or time stamps from various live feed providers.
      • Linked to the 1.14 version of QuantLib.
      • Revamped the construction of YieldCurve objects so that market prices associated with a particular instrument type - eg swaps - are supplied through separate objects of a respective type - eg YieldCurveSwp. (This change is not backward compatible)

      • Several of the keys that were originally part of YieldCurve objects are now part of these other objects and their name is slightly different. The easiest way to get the correct YieldCurve creation formulas is by letting them generated by the wizard. Frequently cases are:
        • During flat curve construction, the key Use Flat Rate is not needed and its presence produces error.
      • Introduced a new key called CashFlows that is part of all objects of type Tradable. Its associated read-only value displays the non market-linked cash flows of the linked tradable as a table with at most 18 columns. The table's structure is standardized accross all tradables that support such cash flow reporting. Currently these are:
        • All types of bonds
        • All types of swaps
        • Caps, floors and collars on both interest rate and inflation index
        • All types of interest rate swaptions
        A similar table is returned as part of the extra results when the tradable is priced.
        The older function Cash Flows and several product-specific cash flow keys have been removed, since they are no longer needed after this new unified cash flow reporting. (This change is not backward compatible)
      • All changes below break backward compatibility!
      • Renamed the type Forward Rate Agreement to FRA
      • Removed the Parameter Constraint input from the Yield Curve::Create function due to its removal from the 1.14 version of QuantLib.
      • Removed the Flat Payoff Extrapolation input from the Gaussian 1d Swaption Model::Create function due to its removal from the 1.14 version of QuantLib.
      • Renamed the key Interpolation Method in the Create function of Credit Curve and Inflation Curve to Interp Method.
      • Renamed the key Coupon Payment Delay of Bond to Payment Delay
      • Removed the Full Cash Flow Details input from the BMA Swap::Create function due to the new unified cash flow treatment.
      • Changed the read-only key prefix ¬ to _.

      12 Dec 2018 version 4.6.2

      New Features:
      • Added the static function Date::IMM Dates that returns an array of future IMM dates.
      • Added several new local functions under the type Bond that return various properties of the calling Bond object.
      Bug Fixes:
      • Removed the types SplineOM1 and SplineOM2 as valied values for the Derivative Approximation= key of objects of type Interpolation because it can lead to Excel crash when used to build the Interpolator input in yield curve construction. (This change is not backward compatible)
      • Changed the default compounding convention from Simple to Continuous in the local Yield Curve functions Implied Values, Zero Rate and Forward Rate. Also did the same change in the Yield Curve construction out of a flat rate. (This change is not backward compatible)
      • Improved the local Bond::KRD function so that its output exactly matches the bond's modified duration when the rate shift becomes arbitrarily small.
      • Changed the function DayCount::Time Length from static to local. (This change is not backward compatible)

      02 Dec 2018 version 4.6.1

      Bug Fixes:
      • Most of live feeds functions returning historical time series failed due to coding error.

      29 Nov 2018 version 4.6.0

      New Features:
      • Added three more ibor types: The Australian Bank Bill Swap Rate Bbsw, the New Zealand Bank Bill Benchmark Rate Bkbm and the Shanghai Interbank Offered Rate Shibor.
      • Added two more overnight rate types: The Australia Overnight Index Average Aonia and the New Zealand Official Cash Rate Nzocr.
      Bug Fixes:
      • Empty cells supplied as input for mandatory keys resulted in "unexpected error" message. Now a proper diagnostic message is issued.
      • Reintroduced the default feature of user notification about the availability of a new Deriscope release when Excel starts. This behavior can be shut off in Settings.
      • Substantially improved the process of upgrading to a new Deriscope release from within Excel. The new process is seamless and effective because it also performs a deinstallation prior to the final installation.
      • Restricted the allowed maximum number of scenarios employed in the VaR calculation to 1,000 under all licenses below the Professional.

      22 Nov 2018 version 4.5.0

      New Features:
      • Added the KRD (Key Rate Duration) function under Bond
      Bug Fixes:
      • Barchart historical data were displayed in wrong columns. Also volume data were missing.
      • Various bond function enhancements.

      02 Nov 2018 version 4.4.2

      Bug Fixes:
      • Fixed minor bugs relating to TrueFX.
      • Introduced intraday time series from World Trading Data. One minute intraday time interval and range up to last 30 days.
      • Re-enabled the Enable when Excel Starts feature in the wizard Settings.

      01 Nov 2018 version 4.4.1

      Bug Fixes:
      • Deriscope loading failure after certain spreadsheets have been opened directly through the file manager.

      30 Oct 2018 version 4.4.0

      • The spreads column in the swap rate table input of Yield Curve is now optional.
      • The keys Rate DayCount and Rate Frequency in the local functions Zero Rate and Forward Rate of Yield Curve objects have been renamed to DayCount and Frequency respectively.(Note this change break backward compatibility with regard to the spreadsheet formula ds, when its input references one of these functions.)
      • Various enhancements in the output produced by the local VaR function of Tradable objects.

      23 Oct 2018 version 4.3.8

      Bug Fixes:
      • Descriptions for wizard-only keys could not be displayed.
      • Made inflation curve generation available to no-license.

      21 Oct 2018 version 4.3.7

      Bug Fixes:
      • OIS pricing failed on non-flat, non-USD curves

      18 Oct 2018 version 4.3.6

      • Small license scheme readjustments.

      16 Oct 2018 version 4.3.5

      Bug Fixes:
      • The license dialog failed to show when Deriscope was installed under insufficient security privileges.
      • Changed the license scheme.

      12 Oct 2018 version 4.3.4

      Bug Fixes:
      • The live data portion of the contents of an object of type Stock failed to display in the wizard.
      • Changed the license scheme.

      08 Oct 2018 version 4.3.3

      New Features:
      • Added the dsSort spreadsheet function that can sort the data of any input range, even when the range contains formulas.

      02 Oct 2018 version 4.3.2

      New Features:
      • Added search function from World Trading Data.
      Bug Fixes:
      • Display of historical data extending beyond 30 years failed due to a date representation bug.

      29 Sep 2018 version 4.3.1

      New Features:
      • Added historical data feeds from IEX concerning US stocks and ETFs.
        A demo is accessible under Tools -> Insert Function -> Live Feeds -> (IEX) -> Time Series.
      • All output fields in historical data are now alphabetically sorted.
      Bug Fixes:
      • The order of output columns in intraday historical data from Yahoo Finance was not stable over time.

      24 Sep 2018 version 4.3.0

      New Features:
      • Added synchronous and asynchronous real time feeds and historical data from Barchart concerning global stocks, indices, mutual funds, options, futures and forex rates (both fiat and crypto) supported by this provider.
        A demo set of live prices and historical time series is produced by the wizard menu items available under Tools -> Insert Function -> Live Feeds -> (Barchart).
      Bug Fixes:
      • Various stability enhancements.

      16 Sep 2018 version 4.2.3

      New Features:
      • Increased the maximum granularity of the historical data received from Yahoo Finance from daily down to one minute. Intermediate intervals such as 5 minutes or one hour also apply. In technical terms, the key Interval of an object of type HistYF can now also accept the intra-day values: Minute, 2 Min, 5 Min, 15 Min, 30 Min, 60 Min, Hout, 90 Min
      Bug Fixes:
      • Two separate api calls were sent to the live feeds server for each single request. This had the negative side-effects of doubling the overall feed acquisition time delay and the much faster exhaustion of the api call quotas associated with the user's data feed license.
      • Deriscope loading failure after opening certain workbooks.
      • Occasional unwarranted display of error messages by the wizard when switching between open workbooks.

      15 Sep 2018 version 4.2.2

      • Technical changes related to license management. No need to update to this version if you have already installed the previous one!

      11 Sep 2018 version 4.2.1

      New Features:
      • Added synchronous and asynchronous real time feeds and historical data from World Trading Data concerning several global stocks, indices, US mutual funds and forex rates supported by this provider.
        A demo set of live prices and historical time series is produced by the wizard menu items available under Tools -> Insert Function -> Live Feeds -> (World Trading Data)
        The successful operation requires a special code that can be obtained for free here.
        Higher feed rates are also supported by World Trading Data on a paid basis.
      Bug Fixes:
      • Deriscope failed to load if spreadsheet cells containing Deriscope formulas have been calculated before clicking on the "Enable and Show Wizard" button.
      • Contents of objects containing tables could fail to be displayed in wizard for certain types of table data.
      • Calculations involving the daycount convention ACT/ACT(ICMA) could lead to Excel crash if the related time interval had zero length.
      • In live data acquisition, changed the names of several fields returns by the various live feed providers. So for example the IEX field latest Price, the Alpha Vantage field close and the Yahoo Finace field regularMarketPrice have been all renamed to price.(Note this fix breaks backward compatibility with regard to various functions that rely on these field names. Read the produced error messages for details on the new valid names)
      • In Historical Data requests, changed the name of the key Reverse Order to the more intuitive Descending.(Note this fix breaks backward compatibility with regard to Create functions of HistDataRequest, when this key is explicitly used)

      29 Aug 2018 version 4.2.0

      New Features:
      • The following special Deriscope functions are now exported to Excel VBA:

      27 Aug 2018 version 4.1.0

      New Features:
      • Added synchronous and asynchronous real time feeds from Yahoo Finance concerning all securities supported by this provider. In particular international stocks, indices, currencies, commodities and certain options are supported.
        A demo set of live prices is produced by the wizard menu items Synchronous (extended) and Asynchronous (extended) accessible through Tools -> Insert Function -> Live Feeds -> (Yahoo Finance)
        The involved time delays are between 0 and 30 minutes as described here.
        For each ticker, not only the last traded price is returned, but also several more quantities as described below.
      • Reactivated the ~Live Data item contained in each object of type Stock so that it displays the pertinent live data reported by Yahoo Finance. These are the following:
        ask askSize averageDailyVolume10Day averageDailyVolume3Month bid bidSize bookValue currency earningsTimestamp epsTrailingTwelveMonths exchange exchangeDataDelayedBy exchangeTimezoneName exchangeTimezoneShortName fiftyDayAverage fiftyDayAverageChange fiftyDayAverageChangePercent fiftyTwoWeekHigh fiftyTwoWeekHighChange fiftyTwoWeekHighChangePercent fiftyTwoWeekLow fiftyTwoWeekLowChange fiftyTwoWeekLowChangePercent fiftyTwoWeekRange financialCurrency fullExchangeName gmtOffSetMilliseconds longName market marketCap marketState priceHint priceToBook quoteSourceName quoteType region regularMarketChange regularMarketChangePercent regularMarketDayHigh regularMarketDayLow regularMarketDayRange regularMarketOpen regularMarketPreviousClose regularMarketPrice regularMarketTime regularMarketVolume sharesOutstanding shortName sourceInterval symbol trailingAnnualDividendRate trailingAnnualDividendYield trailingPE twoHundredDayAverage twoHundredDayAverageChange twoHundredDayAverageChangePercent
      • Significantly increased the run-time efficiency of live data acquisition on the presence of failed feeds. Now Excel never freezes, even when hundreds of failing feeds are requested per second.

      15 Aug 2018 version 4.0.3

      Bug Fixes:
      • Fixed a small but annoying bug, whereby Deriscope failed to load if the user clicked on Enable and Show Wizard after one minute had lapsed since Excel start.

      14 Aug 2018 version 4.0.2

      Bug Fixes:
      • Due to a change to the feeds format received from Alpha Vantage (received 5 min chain although requested 1 min), Dericope could not parse the price quote associated with indices such as ^DJI.
      • Introduced the new configuration entry Alpha Vantage Fetch Interval in Settings -> INTERNET that allows you to customize the time delay between successive api calls to Alpha Vantage. This is an important addition that enables receiving live feeds on several symbols without violating the limit imposed by Alpha Vantage on the number of api calls per minute.
        Note this entry is different from the takt input in the live feeds engine that determines how often the whole set of tickers is processed.
        The default value is set to 20 seconds because testing indicates it is best compatible with the current Alpha Vantage free version policy of allowing only up to 5 api calls per minute.
        You should set it to an appropriate custom value if you possess a commercial Alpha Vantage license that grants you a higher feed rate.
      • Changed the default value of the Alpha Vantage Time Out entry in Settings -> INTERNET from 3 to 12 seconds, since the free version of Alpha Vantage allows only up to 5 api calls per minute, which means there will be no discernible time delay even when the time out interval is occasionally used up.
      • Removed the Alpha Vantage Time Out 2 entry from Settings -> INTERNET because now only a single api call is made to the Alpha Vantage server per live quote request, in order to reduce the overall rate of api calls.
      • Granted non-licensed Deriscope users a 7-day grace period with 30 minutes per Excel session for evaluation purposes.

      29 Jul 2018 version 4.0.1

      • Do not upgrade to this version if you already have the 4.0.0
        The only change introduced here is improved diagnostic messages during non-licensed Deriscope access.

      27 Jul 2018 version 4.0.0

      New Features:
      • The main change that affects this release 4.0.0 is the fact that Deriscope assumes a semi-commercial character by levying a small one-time fee for its unrestricted usage. The application may still be downloaded and installed anonymously without any registration or payment, but the lack of a user license imposes certain usage restrictions.
      • The second major addition in this release is the local function VaR that applies to all objects the types of which inherit from Tradable. This function is capable of calculating the Value at Risk of the associated tradable instrument. In particular, the tradable instrument can be of type Portfolio, which represents a weighted collection of various other tradable instruments, some of which may be portfolios themselves. With regard to portfolios, the VaR function imposes an upper limit of 5 elementary constituent products. A special commercial Deriscope license that lifts this limit is available.
      • Added the payoff type RSO in the definition of European options on any underlying. The name RSO derives from Risk Scaling Options, which are European options with payoff at expiry given by the formula max{ ε(βS(T)-λK(1-α)S(T)α) , 0 } , where β, λ, K, α are all constants and S(T) is the price of a specified underlying at the option expiry time T. The pricing of these options is done outside of the QuantLib library and is based on an analytical formula derived by Lloyd Blenman and Steven Clark as described here. Several risk figures (greeks) are also reported.
      • Added the tradable instrument with type Power Exchange Option that represents a combination of a spread and power option. It is a European option with payoff at expiry given by the formula max{ λ1*S1(T)α1-λ2*S2(T)α2 , 0 } , where λ1, α1, λ2, α2 are all constants and S1(T), S2(T) are the prices of two specified underlyings at the option expiry time T. The pricing of this option is done outside of the QuantLib library and is based on an analytical formula derived by Lloyd Blenman and Steven Clark as described here.
      Bug Fixes:
      • Setting Add Risk = TRUE and selecting at least one of the Delta, Vega or Rho in the input parameters of the Price function within the wizard, followed by a click on the Optional Parameters Visibility button to hide all unchanged optional inputs, resulted in a pasted formula that lacked the important inputs Risk Ref and Risk Models and thus returning error. The resolution has been to redefine the Risk Ref and Risk Models inputs as mandatory if Add Risk = TRUE. (Note this fix breaks backward compatibility with regard to the spreadsheet formula ds, when it is used to process a Price function taking the explicit input Add Risk = FALSE in combination with the Risk Ref and Risk Models entries. Please edit all such spreadsheet occurrences by following the instructions in the produced error message. A simple resolution for example would be to change the name of the affected formulas from ds to dsi.)
      • Renamed the keys Cash Payoff and Second Strike in the creation of objects of type Payoff to Cash and Strike2 respectively.(Note this fix breaks backward compatibility with regard to the spreadsheet formula ds, when it is used to create Payoff objects with explicit reference to any of these two keys. Please edit all such spreadsheet occurrences by renaming the affected keys.)

      07 Jul 2018 version 3.12.0

      New Features:
      • In order to allow custom filtering of the rows in the historical data coming from Alpha Vantage or Yahoo Finance, added the optional entry Filter in the creation of objects of type HistAV and HistYF that can be set to one of:
        NoFilter: No filter is applied
        BlockFirstZero: Blocks the rows of which the first data element (after the initial date element) is zero
        BlockAllZeros: Blocks the rows of which all data elements (after the initial date element) are zero.
        BlockDates: Blocks the rows of which the left date element is part of a supplied list of dates. This option requires the additional entry Blocked Dates that supplies the array of excluded dates.

      30 Jun 2018 version 3.11.0

      New Features:
      • Added four new output fields in the Alpha Vantage live feeds for stock prices: open, high, low and volume.
      • In Yield Curve construction, futures maturities can now follow the australian ASX schedule, in addition to the more common IMM schedule. This is achieved by adding the optional input Futures Dates that may be set to either IMM or ASX.
      Bug Fixes:
      • When the Pricing Method of a Model[CDS] object was set to Isda Cds a wrong price of CDS was produced during the first calculation attempt.
      • The yield curve creation out of BMA rates failed when the valuation date was different from Wednesday or Tuesday due to a missing historical BMA index fixing as of the prior Wednesday. This is now resolved by supplying an additional mandatory entry called Previous Wednesday Fixing that supplies the missing fixing.(Note this fix breaks backward compatibility with regard to the spreadsheet formula ds, when it is used to create a yield curve out of BMA rates. Please edit all such spreadsheet occurrences by adding the new mandatory key/value input.)

      01 May 2018 version 3.10.0

      New Features:
      • Added the stochastic processes: Geometric Brownian, Ornstein Uhlenbeck, Exponential Ornstein Uhlenbeck with Jumps, Square Root, Heston.
      • Added the function Simulated Values that takes as input an array of stochastic processes and a time grid and returns the simulation-generated paths attained by the stochastic processes on the given time grid.
      • Added the following functions that apply on any stochastic process: Initial Value, Drift, Diffusion, Expectation, Std Deviation, Covariance, Evolve. In particular the Expectation, Std Deviation, Covariance, Evolve functions take as input a time interval.
      • Added three new Heston model discretization types: Broadie Kaya Exact Scheme Lobatto, Broadie Kaya Exact Scheme Laguerre and Broadie Kaya Exact Scheme Trapezoidal.
      Bug Fixes:
      • The stand alone creation of a SABR Model contained an Optimization element that was set with default Max Iterations and Max State Iters values that were too low for a successful SABR calibration.

      22 Apr 2018 version 3.9.0

      New Features:
      • Added the read-only elements ¬Sparse SABR Params, ¬Dense SABR Params, ¬Market Vol Cube and ¬Vol Cube ATM Calibrated as part of a Vol Curve object that are visible only when the Vol Input is set to Swaption Cube. These elements contain valuable information about the SABR calibration. In case the SABR calibration fails, then a new read-only element called ¬Calibration Failure Info appears that contains diagnostics about the failure.
      • Removed the item SABR from the list Vol Type that lives within the type Vol Spec. It is not needed because now the SABR model is automatically used when the Vol Input element within a Vol Curve object is set to Swaption Cube.

      11 Apr 2018 version 3.8.0

      New Features:
      • Added the volatility specification types Normal and Shifted Lognormal
      • Added the pricing methods Bachelier and Black Displaced to the instruments Vanilla Swaption and CapFloor
      • Added the optional input Reverse Order in the creation of HistYF and HistAV, which controls the chronological ordering of the historical data received from Yahoo Finance and Alpha Vantage.

      04 Apr 2018 version 3.7.0

      New Features:
      • Enhanced the Yield Curve constructor out of bond prices in the parametric fit case by adding a new optional key called Parameter Constraint that expects an object of type Constraint. The later object defines the constraint applied on the parametric model parameters, which may be one of No Constraint, Positive Constraint, Boundary Constraint, Nonflat Boundary Constraint and Composite Constraint

      29 Mar 2018 version 3.6.5

      New Features:
      • Added several new wizard menu items under Tools -> Insert Function -> Live Feeds -> xyz that insert a minimal version of dsLiveGetSync and dsLiveGetAsync in the currently selected single cell.
      Bug Fixes:
      • Excel was hanging for a few seconds as it was trying to locate dependencies. This bug appeared when a big subset of an object's contents were displayed in the spreadsheet through the Show function and became worse the bigger the displayed subset was.
      • Failure of the rescaling of historical data in certain cases where the last row in the live feeds contained only the date but no values.

      28 Mar 2018 version 3.6.4

      • Enhanced the output of the wizard menu item Paste Demo Formulas under Tools -> Insert Function so that it includes usage demos of the special Deriscope functions dsMergeH and dsMergeV.

      27 Mar 2018 version 3.6.3

      New Features:
      • Added the wizard menu item Paste All Currency Pairs under Tools -> Insert Function -> Live Feeds -> TrueFX that simply pastes all currency pair symbols supported by the TrueFX live feeds provider.
      Bug Fixes:
      • The spreadsheet formula =dsLiveGetSync("TrueFX","XYZ/ABC") failed when it was applied on a single cell.

      25 Mar 2018 version 3.6.2

      Bug Fixes:
      • Wrong calculation of the target price presented as default input parameter within the wizard when the Implied Vol function was selected.

      21 Mar 2018 version 3.6.1

      Bug Fixes:
      • The automatic creation of the default bond referenced by a CDS during its construction in the wizard resulted in a maturity extending beyond the end of the swap.

      17 Mar 2018 version 3.6.0

      New Features:
      • Enhanced the Clean Price function of the Bond type so that it can handle a Z-spread input.
      • Added the following 22 Bond functions:

        • Is Tradable
        • Previous Cash Flow Date
        • Next Cash Flow Date
        • Previous Cash Flow Amount
        • Next Cash Flow Amount
        • Previous Coupon Rate
        • Next Coupon Rate
        • Accrual Start Date
        • Accrual End Date
        • Reference Period Start
        • Reference Period End
        • Accrual Period
        • Accrual Days
        • Accrued Period
        • Accrued Days
        • BPS
        • ATM Rate
        • Duration
        • Convexity
        • Basis Point Value
        • Yield Value Basis Point
        • Z-spread
      Bug Fixes:
      • The wizard's Browse Area consumed unnecessarily space by showing up as an empty rectangle when new information was displayed in the Info Area, even though it was supposed to be collapsed due to an earlier user action.
      • Changed the names of the Bond functions Get Start Date and Get Maturity to Start Date and Maturity Date respectively. Changed the names of a few input keys to various Bond functions. Changed the names of the Schedule functions Get Start Date and Get Last Date to Start Date and Last Date respectively.(Note these changes break backward compatibility with regard to the spreadsheet formula ds, when its input references one of these functions. Please replace all spreadsheet occurrences with the correct function syntax, which you can create using the wizard.)

      10 Mar 2018 version 3.5.0

      New Features:
      • Added the date bump conventions Half Month Modified Following and Nearest.
      • Added the day count conventions ACTUAL/365 for Canadian bonds, ACTUAL/365 no leap and Bus/252BR for Brazilian bonds.
      • Introduced two optional input parameters to the Time Length function of the DayCount type, so that the reference dates required by certain day counts can be specified.
      Bug Fixes:
      • Creation of Yield Curve failed when a mixture of zero and fixed rate bonds was used as input data.
      • Changed the hierarchy with regard to zero bonds so that the Zero Bond type inherits from the Fixed Rate Bond type. This has the advantage that now a Zero Bond object can be used wherever a Fixed Rate Bond object is required.

      06 Mar 2018 version 3.4.0

      New Features:
      • In the case of the yield curve creation out of a flat rate, added the optional Compounding and Frequency inputs that specify the respective rate conventions.
      • Added Compounded Then Simple interest rate compounding convention that is essentially the reverse of the existing Simple Then Compounded convention.
      • Added the United States calendars US_LiborImpact and US_FederalReserve.
      • Added the Chinese calendar CN_IB for Interbank calendar.
      • Added the Israelish calendars TASE and TASE_GENERIC.
      • Changed the Icelandish calendar name from IS to ICEX.

      23 Feb 2018 version 3.3.0

      • Minor wizard-level improvement concerning the display ordering of the keys used as input to the Create function of the type Yield Curve. More specifically the keys Modelled Qty, Interpolation Method, Build Method and Accuracy have been shifted to the bottom of the Browse Area screen.

      20 Feb 2018 version 3.2.0

      New Features:
      • Introduced the spreadsheet function dsReplace that takes input a) a source range with dimensions NxM containing any data, b) the coordinates of an orthogonal subset of that range with dimensions nxm, c) a target range with dimensions nxm and returns an array with dimensions NxM, the data of which match those of the source range except of the nxm subset, which is replaced with the data of the target range. This function is particularly useful in cloning objects that contain array data - such as Yield Curve objects containing a table of deposit rates -, whereby only a subset of the original array data needs to be replaced with new data.

      04 Feb 2018 version 3.1.1

      Bug Fixes:
      • Serious bug that caused severe Excel sluggishness (almost freeze) as soon as the contents of an object containing an array were displayed in the taskpane.

      02 Feb 2018 version 3.1.0

      • Linked to the recently released QuantLib version 1.12. The QuantLib list of changes for this release is here.

      29 Jan 2018 version 3.0.2

      Bug Fixes:
      • Failure to report the latest available Deriscope version during startup, which was caused by the host server's Transport Layer Security (TLS) upgrade to the latest TLS 1.2

      08 Jan 2018 version 3.0.1

      Bug Fixes:
      • Small bug introduced in version 3.0.0

      05 Jan 2018 version 3.0.0

      New Features:
      • Added a new version of the Stock Trading Simulator spreadsheet that is capable of retaining the received live feeds for further processing by the user. Available for download here. Video tutorials available: Stock Trading Simulator and Stock Trading Simulator - version 2.
      • Added a new Forex Trading Simulator spreadsheet that is capable of retaining the received live feeds for further processing by the user. It handles most important currency pairs and powered by the TrueFX live feeds provider. Available for download here. Video tutorial available: Forex Trading Simulator.
      • Introduced real time FX rates in Excel on the most important currency pairs powered by the TrueFX live feeds provider. The respective formulas can be generated under Tools -> Insert Function -> Live Feeds -> (TrueFX). Video tutorial at Real Time forex rates in Excel from TrueFX Demo spreadsheet at ExcelRealTimeTrueFX.xlsx
      • Enhanced the Live Feeds Engine so that it can retain in a memory buffer a specified number of incoming live feeds. This can be achieved by starting the Engine through a new spreadsheet formula called dsLive that takes as input a single handle name. If that handle name points to an object of type Live Engine, then dsLive starts the Engine according to the specifications in that object. Among else, the Live Engine object determines the number and type of the received live feeds that need to be retained in memory. Note the dsLiveStartEngine spreadsheet formula is still retained because of its simplicity, but it cannot be used to start an Engine with buffer capabilities. Video tutorial at Real Time data in Excel with retention of the received feeds Demo spreadsheet at ExcelRealTimeAdvanced.xlsx
      • The buffered feeds can be displayed on the spreadsheet through the dsLiveGetAsync formula, by setting a newly introduced last optional parameter to true. Alternatively they may be displayed through the dsLive formula, provided that its input is the handle name of an object of the new type Live Display Async.
      • The dsHist formula has been replaced by the dsLive formula.(Note this change breaks backward compatibility with regard to the spreadsheet formula "dsHist"! You must replace all occurrences of dsHist in your spreadsheets with dsLive). Note also that the second input GoToURL argument to the original dsHist formula does not exist in the new dsLive formula. The GoToURL boolean still exists, but is now part of the object that is fed as input to the dsLive formula.
      • The strategy is to elevate dsLive as an all-in-one formula that can do various live data related jobs according to the specs in some object being fed to it as its single input argument.
      • Changed the names of the types HistRequestAV, HistRequestYF, HistRequestComp to HistAV, HistYF, HistComp respectively, in order to reduce their length and thus the width of the Excel columns containing these names. (Note this change breaks backward compatibility with regard to the spreadsheet formula ds, when its input references one of these types! Please replace all spreadsheet occurrences as suggested here!)
      • Introduced new Yield Curve calibration to bond prices based on non-linear optimization. The popular Nelson-Siegel and Svensson parametric fitting methods are supported. Additional supported methods are: Exponential Splines, CubicB Splines, Simple Polynomial and Spread. Video tutorial at Bond Curve Fitting in Excel using the QuantLib Nelson-Siegel and Svensson methods Demo spreadsheet at YieldCurveNelsonSiegelSvensson.xlsx

      24 Dec 2017 version 2.7.2

      Bug Fixes:
      • Bug that seemed to affect primarily the fx and cryptocurrency rates received from Alpha Vantage but had the potential to affect all feeds that are received in decimal format.
      • Bug that caused the suppression of the "Loading Values, Please wait!" alert meant to appear when the user clicked on a cell in the taskpane that contained a large number of possible values, such as the value cell for the "Name" of an Issuer object with country set to "United States", which contains over 35,000 possible values.

      21 Dec 2017 version 2.7.1

      Bug Fixes:
      • Related to first call of dsLiveHist

      20 Dec 2017 version 2.7.0

      New Features:
      • (A)synchronous live data from IEX (Investors Exchange) include now the top section of the IEX Order Book. In other words, live quotes on the best bid and ask prices and sizes are (a)synchronously reported. This is achieved through a new provider code named "IEX Tops". For demonstration purposes the wizard generates the complete set of formulas under Tools -> Insert Function -> Live Feeds -> (IEX Tops).
      • Introduced the new Deriscope formula dsAny that is capable of producing in Excel anything that IEX delivers in json format! This new formula works like dsLiveHist, i.e. it expects as input an object of type AnyRequestIEX, the role of which is to specify the details of the request to be sent to the server of the live feeds provider. For demonstration purposes the wizard generates the complete set of formulas under Tools -> Insert Function -> Live Feeds -> (IEX) -> Any.
      • Changed the name of the Deriscope spreadsheet formula dsHist to dsLiveHist in order to make it clear that it retrieves live feeds. (Note this change breaks backward compatibility with regard to this spreadsheet formula!)
      • Removed the Deriscope spreadsheet formulas dsStats, dsFin because their output is now produced by the new spreadsheet formula dsAny that references a Request object of type AnyRequestIEX that has its Service property set to one of stats, financials, earnings. (Note this change breaks backward compatibility with regard to these spreadsheet formulas!)
      • Removed from wizard the menu items Stats, Financials under Tools -> Insert Function -> Live Feeds -> (IEX) due to the change above.

      05 Dec 2017 version 2.5.4

      New Features:
      • Live data from IEX (Investors Exchange) are now available. They cover true real time (sub-second time delay) prices of over 8,000 US stocks and ETFs. Both synchronous and asynchronous requests are supported. Also several statistical indicators - called stats by IEX - and company quarterly financial data are reported.
      • The synchronous and asynchronous live data from IEX are accessed through the same functions as those used for AlphaVantage by setting the feeds provider code to "IEX".
      • The statistical indicators are accessed through the new Deriscope formula dsStats.
      • The quarterly financial data are accessed through the new Deriscope formula dsFin.

      28 Nov 2017 version 2.5.4

      New Features:
      • No Deriscope taskpane is any more loaded when Excel starts. This allows the user to work with Excel without any interference with Deriscope. It is nevertheless possible to configure Deriscope so that it loads automatically.
      • A new ribbon group item called Deriscope - a top menu item in versions earlier than Excel 2007 - appears that allow the user to switch on and off the Deriscope taskpane. A similar option is made available through the Tools button and Excel's context menu appearing after a mouse right-click.
      Bug Fixes:
      • About overall taskpane stability in Excel 2013 and later by redesigning the taskpane manager. Also about third party Add-Ins loaded together with Deriscope.
      • Now Deriscope works fine in Excel 2013 when Excel starts after the user opens a spreadsheet directly through the Windows Explorer.
      • Removed the Deriscope-managed workbook saving dialog introduced in version 2.5.0 and re-enabled Excel's native dialog.

      15 Nov 2017 version 2.5.3

      Bug Fixes:
      • When the number of tickers processed by Hist Request AV or Hist Request YF exceeded 27, a failure was caused by a built-in Excel limitation. A similar restriction was also imposed on Hist Request Comp, this time with regard to the total number of individual requests.
      • Related to Hist Request Comp or when several tickers were processed by Hist Request AV or Hist Request YF, whereby the whole report failed even if only one of the constituent requests failed.

      13 Nov 2017 version 2.5.2

      New Features:
      • Enhanced the type Hist Request Comp to also accept individual requests that happen to share the same Function Name. Now, for example, a composite request may comprise two SMA requests differing on their time_period property.
      • Added the optional key Function Label in the Hist Request AV and Hist Request YF types so that the user can customize the label under which the respective data are reported in the combined (composite) report.
      Bug Fixes:
      • Failure of the wizard menu option TimeSeries (Composite) under Tools -> Insert Function -> Live Feeds

      10 Nov 2017 version 2.5.1

      Bug Fixes:
      • About the dsHist formula: Ticker inputs containing blanks (invisible characters) caused url failures. Now such blanks are trimmed away.

      09 Nov 2017 version 2.5.0

      New Features:
      • Introduced live fx rates for physical and digital currencies (cryptocurrencies) from the Alpha Vantage provider. A total of 165 physical and 392 digital currencies are supported. All possible cross fx rates can be requested.
      • Introduced historical bitcoin fx rates from the Alpha Vantage provider. The intraday series is updated in real time every 5 minutes. Available are also daily, weekly and monthly time series.
      • Added an optional input parameter to the special Excel formulas dsHist and dsLiveGetSync called GoToUrl. It takes a boolean value. If set to true, each produced url will be also visited through the default browser. If omitted it is set to false. It enables the user to run diagnostics by examining the raw data as they produced by the feeds provider before they are intercepted, processed and relayed to the spreadsheet by Deriscope.
      • Released API for Visual Basic. This Programming Interface allows the user to interact with Deriscope through Visual Basic code.
      • Replaced Excel's native dialog appearing when a workbook is closing with a Deriscope-managed dialog. This protects Deriscope's stability under various scenarios of user actions, such as cancelling the closing operation or saving the workbook before closing.
    Bug Fixes:
    • Problem relating to starting Deriscope from workbooks that have been opened in protected view, such as workbooks that were email attachments at the time of their opening. In particular, this affected only Excel 2013 as well as Excel 2016 64 bit. Notably Excel 2016 32 bit was not affected! In addition the problem appeared only when the user attempted to open a protected view workbook from within Excel and only if at least one other workbook was already open!
    • Time series properties were displayed in a non-constant order.
    • Problem relating to saving and reopening a workbook that has been repaired by Excel due to the existence of validation dropdowns with too many items.
    • Interference problem with external objects that happened to have the BackgroundQuery property set to true. These objects were refreshed as a side-effect of the tutorials with sometimes disastrous consequences.

    04 Nov 2017 version 2.4.1

    Bug Fixes:
    • This version is a pure bug fix release that addresses a very serious issue confronting the Excel 64 bit users. The Excel 32 bit users who are already in possession of the previous 2.4.0 release, do need to download this version! The bug fixed in this release was the inability to enter the Settings area of Deriscope, which rendered the registration of the Alpha Vantage User key impossible, thus incapacitating the acquisition of live feeds from the Alpha Vantage provider!

    02 Nov 2017 version 2.4.0

    New Features:
    • Added support for historical data from the Yahoo Finance provider. Now the special dsHist Excel formula accepts also input objects of the new type HistRequestYF.
    • Added two additional menu items called Time Series and Time Series (Composite) under Tools -> Insert Function -> Live Feeds -> (Yahoo Finance) that demonstrate the new feature above.
    • Added an additional menu item called Refresh Yahoo Credentials under Tools that enables the user - when the link to the Yahoo Finance web service fails - to rebuild the security tokens that Deriscope uses internally in order to execute the web service call.
    • Added an additional permanent configuration setting called Yahoo Finance Auto Refresh Credentials under Tools -> Settings -> Internet that instructs Deriscope to automatically rebuild the Yahoo Finance security tokens mentioned above before each and every web service call.
    • Added an additional menu item called Copy Allowed Parameter Values under Tools that (re)creates all Deriscope validation dropdowns in those cells within the currently selected range, where such dropdowns are applicable and also copies the values associated with these dropdowns into the clipboard so that the user may paste them afterward in the spreadsheet or anywhere else.
    • Removed the Force Recalc menu item under Tools and replaced it with a submenu consisting of 6 options that provide for fine-tuned forced recalculation of one of: Everything, active workbook, active worksheet, selected range, as well as targeted recalculation of only the error-containing cells found in either the active worksheet or the selected range. The latter is particularly useful when sparse errors have occurred, but a full Excel recalculation is not desired, due to either a) processing time considerations or b) the risk of replacing healthy formula outputs with newly introduced errors.
    Bug Fixes:
    • Bug that was responsible for an alert display when the user quit Excel. This fix seems to also have a positive effect on the ability to open an Excel spreadsheet directly from the File Manager before having started Excel. The latter issue still persists though in Excel 2013.
    • Introduced a special storage procedure specifically for the Alpha Vantage User Key entered by the user so that it is permanently stored and is automatically available at a subsequent Excel session, even if the rest of the configuration settings are reset to their default values.
    • Changed the names of the types HistDataRequest, HistDataRequestAV, HistDataRequestComp to HistRequest, HistRequestAV, HistRequestComp respectively, in order to reduce their length and thus the width of the Excel columns containing these names. (Note this change breaks backward compatibility with regard to the spreadsheet formula ds, when its input references one of these types!)

    27 Oct 2017 version 2.3.1

    Bug Fixes:
    • Problems relating to starting Deriscope from workbooks that have been opened in protected view, such as workbooks that were email attachments at the time of their opening.
    • Substantially stopped the very annoying taskpane flickering by removing an unnecessary highlighting feature. Now the taskpane reacts much faster and more smoothly as the user hovers the mouse over and out of its area.
    • Improved the TaskPane Reactivity High setting so that Excel's undo history is not deleted as the user select various cells.
    • Improved the TaskPane Reactivity High setting so that Excel does not hang for a few seconds as text-containing cells referenced by special formulas, such as dsHist or dsLive, get selected. These functions contain no key-value pairs so there is no reason for the taskpane to waste resources analyzing these functions.

    23 Oct 2017 version 2.3.0

    New Features:
    • Introduced integrated Excel tutorials, tips and warnings that appear automatically when and if a need arises.
    • Added multi-ticker and composite request support to the Alpha Vantage Historical data through the new HistDataRequest type. Also the dsHist Excel formula now takes only one argument that is expected to be a handle name of an object of type HistDataRequest. (Note this new feature breaks backward compatibility with regard to the spreadsheet formula "dsHist"!)
    • Added a new timeout property in the HistDataRequest type that takes precedence over the respective timeout definitions under Settings.
    Bug Fixes:
    • Bug observed in the stand-alone Excel version 2016 (not the 365 one!), whereby the opening of a spreadsheet directly from the File Manager before Excel had started, led to taskpane corruption.
      Note that a similar attempt to open a workbook in 365 results to the taskpane being completely absent. Users of 365 are therefore advised to start Excel prior to opening workbooks from the file manager.

    09 Oct 2017 version 2.2.1

    New Features:
    • The ISDA pricing method has been added in the pricing of Credit Default Swaps
    • The Analytic Heston method has been added in the pricing of european options, which includes the Andersen Piterbarg engine for the representation of the complex logarithm.
    Bug Fixes:
    • Any cell-bound validation dropdowns that are created by Deriscope with data exceeding 255 characters are now removed before a workbook is saved. This solves an existing bug, whereby the message "Excel found unreadable content" appeared when the user attempted to open a previously saved workbook that happened to contain such validation items.
    • Date parsing bug, whereby a certain type of text (eg "193.2000") was wrongly interpreted as date (19.03.2000)
    • Several bugs that led to task pane corruption during workbook saving in Excel 2016
    • Made dsHist - the function that retrieves historical time series from a live feeds provider, such as Yahoo Finance or Alpha Vantage - persistent, in the sense that it keeps trying - up to a certain number of repetitions - until the feeds are received. This resolves the frequent "timeout error" appearing after dsHist was executed for the first time.
    • Changed the default setting that controls Excel's calculation state when Deriscope starts, from Manual to Inherited. Under the new setting, the default behaviour will be so that Excel's calculation state will not change when a user presses the Start button in order to load Deriscope analytics into Excel. As before, that default behaviour can still be changed in the Settings.
    • Enhanced the diagnostic message "Object named xyz does not exist!" with a suggestion that the user ensures that the responsible formula has been calculated.
    • Integration with the latest QuantLib version 1.11
      The QuantLib version history is available here

    24 Sep 2017 version 2.2.0

    New Features:
    • Complete revamp of the the live feeds interface. The synchronous method is now accomplished through the new function dsLiveGetSync. The asynchronous method now requires a) a live feeds engine initiated through dsLiveStartEngine and b) the display of the latest acquired data through the function dsLiveGetAsync.
    Bug Fixes:
    • Now getting live feeds does not erase Excel's undo history, provided that flashing has been switched off. Also several other user actions, such as selecting cells containing keys, does not necessarily interfere with either the clipboard or the undo history.
    • A warning is issued before an action is undertaken that is accompanied with a negative sideeffect, such as clipboard or undo history deletion.

    31 Aug 2017 version 2.1.1

    Bug Fixes:
    • The grid data entry dialog appears now with the right size and position with respect to all grid cells and various windows text size settings
    • The "About" option in wizard now returns correct operation system information in the cases of Windows 8.1, Windows Server 2012 R2, Windows 10 and Windows Server 2016
    • Integration with the latest QuantLib version 1.10.1
      The QuantLib version history is available here

    29 Aug 2017 version 2.1.0

    New Features:
    • On Yield Curve construction:

      • Implementation of Dual Curve Bootstrapping through an additional exogenous Discounting Yield Curve input in the swap market data
      • Optional specification of the Forward Start and Pillar Choice in the market swap rates input
      • New mandatory Spread column in the table of market swap rates, where the floating leg spread for each swap is specified. (Note this new feature breaks backward compatibility with regard to function "Create" of type "Yield Curve"!)
      • New mandatory Pillar Date column in the table of market swap rates in case the Pillar Choice is set to Custom Date
      • Two more Yield Curve building market instrument choices: a) OIS rates and b) BMA Ibor fractions, both with exogenous Discounting Yield Curve input capability
    • On Real Time Data:

      • Addition of Alpha Vantage as a Real Time Data provider. The spreadsheet functions dsLive and dsQuote have been slightly modified so that they can request live data from either Yahoo Finance or Alpha Vantage.
        Note the big current advantage of Alpha Vantage in relation to Yahoo Finance is the delivery of prices with only up to one minute delay. It also supplies quotes, such as DJI, that are not made available by Yahoo (Note this new feature breaks backward compatibility with regard to the spreadsheet functions "dsLive" and "dsQuote"!)
      • Addition of Alpha Vantage as a Historical Data provider. The dsHist spreadsheet function has been slightly modified so that it can request historical data from either Yahoo Finance or Alpha Vantage. Whereas Yahoo Finance historical data service is currently completely broken, Alpha Vantage delivers time series of intraday and daily quotes as well as several statistical indicators that can go back to 20 years (Note this new feature breaks backward compatibility with regard to the spreadsheet function "dsHist"!)
      • Improvement of the information returned to the user by the spreadsheet function dsLive. Instead of long cell-bound sentences and flashing text appearing temporarily in the task pane, an object is now returned that contains all relevant information in a persistent fashion
    • Data Entry change (see below under Bug Fixes)

    Bug Fixes:
    • A major user interface issue affecting Excel 2016 users has been addressed. With the previous version users of Excel 2016 were unable to enter data in the task pane using the keyboard. That was due to Excel 2016 resisting to release the focus away from the spreadsheet, which resulted in keyboard-generated user input flowing to the wrong destination.
      The solution required a dramatic change of user input interface towards a new data entry screen, at least in those cases where keyboard is required. This new interface actually is more stable and leads to fewer surprises than the older one.
      As a useful byproduct, users now have the additional option to select a custom date from a calendar pop-up window, while they edit the date inside a grid cell.
    • The mouse right-click context menu choice “Copy selected cells preserving grid structure” has been fixed to work as intended, namely to transfer the selected grid cells to the spreadsheet respecting their original geometric location on the grid
    • Reduction of the noticeable flickering of various task pane elements during user interaction

    18 Aug 2017 version 2.0.0

    Initial Deriscope release