Jump to content
Savvysoft Forums
Rich_Tanenbaum

Current version of TOPS

Recommended Posts

The current version of TOPS is 060516, meaning it was posted on May 16, 2006. Attached is the readme.txt file which displays the version history of TOPS. Your version is the last revision in the readme.txt file in your TOPS directory.

readme.txt

Share this post


Link to post
Share on other sites

readme.txtA new version of TOPS has been uploaded to ftp.savvysoft.com/tops32.zip. The changes as noted in the readme.txt file are:

 

060524 INTQUOTE: If holidays is not the right size, return

error code.

 

060530 Added Mercenne Twist algorithm for random

number generation. This code is:

 

Copyright © 1997 - 2002, Makoto Matsumoto

and Takuji Nishimura,

All rights reserved.

 

 

The names of its contributors may not be used to

endorse or promote products derived from this

software without

specific prior written permission.

 

THIS SOFTWARE IS PROVIDED BY THE

COPYRIGHT HOLDERS AND CONTRIBUTORS

"AS IS" AND ANY EXPRESS OR IMPLIED

WARRANTIES, INCLUDING, BUT NOT

LIMITED TO, THE IMPLIED WARRANTIES OF

MERCHANTABILITY AND FITNESS FOR

A PARTICULAR PURPOSE ARE DISCLAIMED. IN

NO EVENT SHALL THE COPYRIGHT OWNER OR

CONTRIBUTORS BE LIABLE FOR ANY DIRECT,

INDIRECT, INCIDENTAL, SPECIAL,

EXEMPLARY, OR CONSEQUENTIAL DAMAGES

(INCLUDING, BUT NOT LIMITED TO,

PROCUREMENT OF SUBSTITUTE GOODS OR

SERVICES; LOSS OF USE, DATA, OR

PROFITS; OR BUSINESS INTERRUPTION)

HOWEVER CAUSED AND ON ANY THEORY OF

LIABILITY, WHETHER IN CONTRACT, STRICT

LIABILITY, OR TORT (INCLUDING

NEGLIGENCE OR OTHERWISE) ARISING IN ANY

WAY OUT OF THE USE OF THIS

SOFTWARE, EVEN IF ADVISED OF THE

POSSIBILITY OF SUCH DAMAGE.

 

060623 FRNVAL: Price forward starting floating leg

using routine which interpolates if a range

is entered for par.

 

060625 Change for AsOfDate on 050704 affects

SWAPTION, SWAPTION2, SWAPTION3,

SWAPTION4, SWAPTIONPROB.

ALL FIXED INCOME MODELS: Previously

undocumented change on 050704 which

removed error messages

that should not have been generated when

ranges were entered with dates earlier than

valuation date.

In particular, models which use other models,

including SWAPTION calling into BONDVAL, are

affected.

Share this post


Link to post
Share on other sites

readme.txtA new version of TOPS has been uploaded to the ftp site. The changes are:

 

 

060707 ALL MODELS: Added more error checks on return values after internal calls

to high-level TOPS functions.

 

ACCRUALSWAPFIXSKIPDISC, ACCRUALSWAPFLTSKIPDISC, CAPFLRDISC,

ADDFPS: Added new models.

CAPTION: If maturity inside tree

calling into model.

MOVEYIELDCURVE: Check for 1 column range coming in and convert if necessary.

 

060711 COMMODITYBASKETBONDVAL, ISTOPSERROR: Added new models.

Share this post


Link to post
Share on other sites

readme.txtA new version of TOPS has been uploaded to the ftp site. The changes are:

 

060724 All interest rate models which accept 5 element ranges for maturity: Switched all models to use date

generation code which always includes maturity date and effective date even when roll date is earlier than

effective or later than maturity. Previously, some models called the routine with this fix but not all. When

a single maturity date is passed to a model this change has no affect.

 

060725 All interest rate models which accept 5 element ranges for maturity: Check of validity of 5 dates fixed to

check when effective start of last OR first payment maturity (previously had checked with AND

instead of OR).

 

060726 SWAPTION, SWAPTION2: When generating binomial periods in which exercise can occur, in the case where a single

first exercise is entered, and exercise on coupon dates is Yes or a frequency, then do not include the input first

exercise date in the list of exercise dates, since it may not fall on a payment or exercise date.

 

060727 SWAPTION, SWAPTION2: When (1) a 5 cell maturity range is entered, (2) with a single first exercise, and (3) either

coupon exercise is yes or there is an exercise frequency, then any dates that fall within the first and last period

are considered exercise dates. For example, a six month last period with quarterly exercise will now include an

exercise date three months before maturity.

 

060728 SWAPTION, SWAPTION2, SWAPTION3, SWAPTION4, SWAPTIONM, SWAPTIONPROB, SWAPTIONSTK, BARRIERSWAPTION, CONVERTIBLE,

CONTSWAPTION: In calculation of strikes, one more call into BondVal uses a par, maturity, coupon, and holidays

which have been converted from terms back to dates. SWAPTION2: When combining coupon range and spread range,

don't consider two consecutive entries in the combined range to be the same if they are 1 day apart.

 

060802 RESETDATES: When calculating earlytoday variable (date which can be used as valdate to generate list of

dates for current payment period) don't go back 1 day before payment date that's just before valdate, if

that date is also in date list (in this case, keep it at payment date prior to valdate).

Share this post


Link to post
Share on other sites

README.TXTA new version of TOPS has been uploaded to the ftp site. the changes are:

 

060815 RATCHET, ARM, RATCHET2, RATCHET_ASSET: Pass actual valuation date, not 0, into inner cash flow generation calls.

 

060828 SUBTRACTTIMEFPS: added new model.

 

061020 BASISCURVEGENF_FAST: Added new model which calculates the same as pre-050311 change.

Share this post


Link to post
Share on other sites

README.TXTThe latest version of TOPS has been posted. The changes are:

 

061105 All interest rate models which accept 5 date maturity ranges (SWAPINST, SWAPTIONFWD, SWAPTION2, SWAPTION2_KEYRATE,

SWAPTION3, SWAPTION4, CREDIT, CREDITPROBALL, DEFAULTSWAP, CONVERTIBLE, SWAPTIONSTK, SWAPTIONMULTI, CONTSWAPTION,

BARRIERSWAPTION, SWAPTIONPROB, DEFAULTSWAPVAL, DEFAULTSWAPVAL2, POWERBOND, OPPOWERBOND, POWERBOND2,

OPPOWERBOND3, OPPOWERBOND3, MUNIGICFLTGEN, MUNIGICFLTVAL, MUNIGICGEN, MUNIGICVAL, MUNIGICSWAPVAL, ZEROCOUPONSWAPVAL,

CFGEN, BONDVAL, NEXTCOUPONDATE, FLTCFGEN, FRNVAL, SWAPVAL, SWAPVALKEYRATE, CANCELLABLESWAP, CALLABLEBOND,

CMS_CMT_CAPFLR, BASISSWAP, ZEROCOUPONACCRUED, INTSWAP2, INTSWAP3, INTSWAP3_KEYRATE, CMSSPREAD, CMSSPREAD2,

CMSSPREAD3, MULTIIDXSWAP, TRIPLECHOOSER, TREETOPS_IR): Added error check during date generation to be sure

maturity > valuation date.

README.TXT

Share this post


Link to post
Share on other sites

README.TXTA new version of TOPS has been uploaded to the ftp site. The changes are:

 

061206 POWERBOND2: Convert first column of forward price curve, home and foreign curves to terms, in case they are

dates. INTQUOTE: If frequency is 'K' (money market) calculate maturity date using 365.25 day year to match what

CURVEGENF2 does.

Share this post


Link to post
Share on other sites

README.TXTA new version of TOPS has been uploaded to the ftp site. The changes are:

 

070119 Exported calc_breakeven_bond_yield. Moved get_row_column. Added VOLCUBETOGRID, VOLGRIDTOCURVE, INTERP2DXARRAY, INTERP2DYARRAY,

CAPVOLGRIDTOCAPVOLCURVE.

Share this post


Link to post
Share on other sites

readme.txtA new version of TOPS has been uploaded to the ftp site. The changes are:

 

070126 CREDITPROBALL2: Internal call to Credit model uses input valdate instead of 0 (which implied system date). makes a difference

when the inputs to CreditProbAll2 are dates instead of terms.

Share this post


Link to post
Share on other sites

README.TXTA new version of TOPS has been uploaded to the ftp site. The changes are:

 

070130 CDXTRANCHE, MUNIGICFLTCFGEN, MUNIGICCFGEN, SWAPVAL, KNOCKOUTSWAP, INTSWAP3, INTSWAP4, FLTCFGEN2, BASISCURVEGENF,

BASISCURVEGENFIXEDF: Added more error checks when date generation is bad, particularly when maturity = valdate.

COMMODITYBASKETBONDVAL: Made routine to calculate short rate drift more accurate.

 

 

070201 CDXTRANCHE, MUNIGICFLTCFGEN, MUNIGICCFGEN, SWAPVAL, KNOCKOUTSWAP, INTSWAP3, INTSWAP4, FLTCFGEN2, BASISCURVEGENF,

BASISCURVEGENFIXEDF: Generate error when valdate >= maturity, not just =.

OPACCRUALSWAP: If expiration = maturity, calculate a 0 value for that state instead of generating an error message.

Share this post


Link to post
Share on other sites

README.TXTA new version of TOPS has been uploaded to the ftp site. The changes are:

 

070202 SWAPTION, SWAPTION2, SWAPTION3, SWAPTION4: Invalid model no longer returned when vol matrix entered with amortizing notional

for those who don't have BondVal model.

 

070203 TREETOPS_MULTI_IR,TREETOPS_MULTI_IR_XL2C: Added new model for multi-factor recombining interest rate tree. This is a

version of the Libor Market Model, also known as BGM.

VOLGRIDCORRELATION: Added new model for calculating implied correlation of CMS rates based on volatility matrix.

 

070208 SWAPTIONLMM, SWAPTIONLMM2: Added new models for pricing swaptions using new multi-factor recombining interest rate

tree. This is a version of the Libor Market Model, also known as BGM.

TREETOPS_MULTI_IR_GETRATE: Added new model to display CMS rates in multi-factor tree based on period and state.

CMSSPREAD4: Uses new multi-factor recombining interest rate tree.

Main menu dialog box is also available as menus by product type, so there is one menu for interest rates, another

for equities, etc.

Share this post


Link to post
Share on other sites

README.TXTA new version of TOPS has been uploaded to the ftp site. The changes are:

 

070209 SWAPTIONLMM, SWAPTIONLMM2,TREETOPS_MULTI_IR_GETRATE,TREETOPS_MULTI_IR,TREETOPS_MULTI_IR_XL2C: Use faster alternative

to calling into CURVEGENF2 when calculating drift. SWAPTIONLMM: Set maturity factor based on maturity at expected

exercise date. VOLGRIDCORRELATION: If either maturity is out of the range of maturities on the curve, set them

equal to the min/max in the grid.

 

070302 BONDVAL, INTSWAP3, INTSWAP4, FLTCFGEN2, BASISCURVEGENF, BASISCURVEGENFIXEDF, RESETDATES: Remove code which attempted to

inadvertently free memory when date generation failed. ARM, RATCHET, RATCHET2, RATCHET_ASSET, SWAPTION, SWAPTION2,

SWAPTION3, SWAPTION4, CREDIT, SWAPTIONSTK, TREETOPS_IR, TREETOPS_MC, FRNVAL, INTSWAP2, INTSWAP3, INTSWA4,

FLTCFGEN2: When date generation fails, immediately jump out of routine in more cases.

 

070305 FLTCFGEN2, RESETRATES, INTSWAP4: When generating cash flow for current period, if observation date is in the past

and intonint or intonintspread is true, check the size of the array of payment dates to be sure we don;t read one

past the end.

Share this post


Link to post
Share on other sites

README.TXTA new version of TOPS has been uploaded to the ftp site. The changes are:

 

070308 FLTCFGEN2, RESETRATES, INTSWAP4: Changed the order of the test from if(_a_ && _b_) to if (_b_ && _a_) so short circuiting

would not allows out of bounds error to still cause an otherwise meaningless exception.

 

070312 CONVERTIBLE: Change the range of stock prices to be narrower for path dependence. CONVERTIBLE2: Added new model,

which values a make whole provision.

Share this post


Link to post
Share on other sites

README.TXTA new version of TOPS has been uploaded to the ftp site. The changes are:

 

070413 CONVERTIBLE: Improved the narrowing of stock price changes. CONVERTIBLE3: Added new model which uses triggerlevel

and triggerdays to add in mandatory conversion.

Share this post


Link to post
Share on other sites

readme.txtA new version of TOPS has been uploaded to the ftp site. The changes are:

 

070710 SWAPTION,SWAPTION2,SWAPTION3,SWAPTION4: When par is not constant and a vol

matrix is entered, and the par range has dates in it the dates are converted to terms

before a comparison is made to calculate the amortization-adjusted vol.

 

070812 Changed online help to HTML format. Added dialog boxes for TARN, SNOWBALL and SNOWBLADE, also added these to template builder.

 

071019 DIGITALSPREAD: Added new model. SWAPTIONLMM, SWAPTIONLMM2: Added new licensing. Added MOVEYIELDCURVEMULT to DLL. SWAPTION, SWAPTION2, SWAPTION3, SWAPTION4: Removed excess memory deletes of excfpars variable. SWAPTIONLMM: R returns correlation used, F returns factor maturity used.

Share this post


Link to post
Share on other sites

readme.txtA new version of TOPS has been uploaded to the ftp site. The changes are:

 

080102 GENNORMRANSEED: Added new model which stores place in sequence between calls (after the session has started).

ALPHABANKCALLER: Added new model.

 

080103 SWAPTION,SWAPTION2,SWAPTION3,SWAPTION4: When calculating strike, do not add in coupon when accrued is 0 on a forward

date if that is the effective date of the swap.

 

080422 CREDITPROBALL, CREDIT, DEFAULTSWAPVAL, DEFAULTSWAPVAL2: When calculating default probabilities given default swaps,

and when pricing default swaps, touches, annuities, ends, and fees with 0 volatility, convert terms to dates if

necessary in fast_fee function and value_credit_zeroprob, and also build risk free array with both term and

df columns in fast_fee. Also, probability of default from t12 to t2 based on absolute difference in survival

rate instead of ratio of survival rates. TREETOPS: All routines renamed to OmniPricer. ROLLDOWN_ARRAY_INTERP,

ROLLDOWN_VOL_ARRAY: added new routines. SWAPTION_LMM, SWAPTION_LMM2, CANCELLABLECMSSPREAD,

OMNIPRICER_MULTI_IR: When walking back through the tree explicitly set the size of the return array from the

payoff function. Put in correct faster license key generator.

Share this post


Link to post
Share on other sites

readme.txtA new version of TOPS has been uploaded to the ftp site. The changes are:

 

080423 CANCELLABLECMSSPREAD: Added to distribution. CREDITPROBALL, CREDIT, DEFAULTSWAPVAL, DEFAULTSWAPVAL2: Previous

fix for absolute diffeence in survival rate did not make it into previous distribution.

Share this post


Link to post
Share on other sites

readme.txtA new version of TOPS has been uploaded to the ftp site. The changes are:

 

080429 CFGEN,SWAPTION,SWAPTION2,SWAPTION3,SWAPTION4,SWAPTIONLMM,SWAPTIONLMM2,DEFAULTSWAPVAL2,SWAPVAL,KNOCKOUTSWAP,

CDXTRANCHE,ALL OMNIPRICER,SNOWBALL,SNOWBLADE,TARN,CANCELLABLECMSSPREAD: When an intermediate error occurred,

in some cases memory was being freed before it was used to determine the error code. CANCELLABLECMSSPREAD: Turn

off cell logging. ADDFP, MULTIPLYFP: Allow single cell FPs to be passed in.

Share this post


Link to post
Share on other sites

readme.txtA new version of TOPS has been uploaded to the ftp site. The changes are:

 

080507 OMNIPRICER_MC: Calculate forward price curve for all cases,not just some, for correctly conditioning each random

number series to its asset's expected forward price across time. Removed writing to log file.

Share this post


Link to post
Share on other sites

A new version of TOPS has been uploaded to the ftp site. The changes are:

 

080725 MIRRORYIELDCURVEMOVE, COMBINEFORWARDFXCURVES, ROLLDOWNYIELDCURVE: Added new model. RolldownArray: Reset maximum

array bound, and handle situation where first data point has a zero value and non-zero date/term.

OpPowerBond: Correctly handle 1 by 5 matuity range. CDXTranche: update to handle floating rate spread. Fixed

text of errorcode for tgoycpoints. VolGridToYieldCurve: Handle case where maturity is date. SwaptionLMM2: Handle

1 by 1 correlation input. DefaultSwapVal3: Fill out spreads after calling recoverspreads.

 

080729 All models: Removed diagnostic call to forcefunc from topsall to standalone tmath.

readme.txt

Share this post


Link to post
Share on other sites

readme.txtA new version of TOPS has been uploaded to the ftp site. The changes are:

 

 

080811 OMNIPRICER_MULTI_XLS2C_2: Added version which can use Calc4Web generated callback functions. SPLICEV, STRIPCOLUMNS,

STRIPROWS: Added new models. Splice: Fixed to take only 30 arguments. CancellableCMSSpread: Reverted to

single factor version. Also rebuilt with newest Calc4Web. Put Excel 2007 compatible (Excel 95 incompatible) version

of tops.xla in distribution.

 

080812 FLTCFGEN, FLTCFGEN2: Export routines from topsall to return array. SPLICEV: Fixed rows/cols bug. COMMSPREAD2: Added

new model

 

080820 SWAPTION3: Handle case where vol curve is input.

 

080926 FLTCFGEN2: Don't convert input ranges par, idxmat, multiplier, spread, cap and floor to terms before interpolating.

MOVECURVE, MOVECURVEMULT: Make additive and multiplicative shifts correct. COMMSWAP2: Added new model.

 

081016 FLTCFGEN2: Allow index frequency of 'K'.

 

090106 MOVECURVEHISTORICAL, CAPFLR3, COMBINE_FORWARD_FX_CURVES,SCENARIOCFGEN: Added new models.

FLTCFGEN2: Better handling of cash flow cases. Still needs to handle other cases.

CDXTRANCHE: Handle floating rate CDOs.

Share this post


Link to post
Share on other sites

A new version of TOPS has been uploaded to the ftp site. The changes are:

 

090213 FLTCFGEN2, FLTCFGEN3: Whether set in advance or not, set calculation period start and end dates the same way.

Also when determining payment dates use

trailing zeroes at the end of the curve.

 

090316 SCENARIOSWAPCFGEN: Added new model. FLTCFGEN2, FLTCFGEN3: When determining payment dates use

(back to old way). ROLLDOWN_ARRAY: Handle case of 0 rolldown correctly, and also better handle cases where

top of range is shorter than rolldown period.

 

090327 MBSVAL_STARSACCRUED: Added new model. Allocate memory with GlobalAlloc.

 

090401 MULTIPLYVOLFP: Added new model. MBSVAL_STARSACCRUED: Accept spread in basis points.

 

090928 FLTCFGEN2: Clean up internal variable before exit. Fix off by 1 error in date generation for certain cases. Allow '5' and '8'

for frequency. OMNIPRICER_MC: Set error code correctly when generating matrix based on correlations. MOVEYIELDCURVE: Short

circuit calculation if 0 shift entered. INTSWAP3: Handle discounting more accurately when cash flow dates are not on period

dates in tree. OMNIPRICER, RESETDATES: When rolling down curve handle 0 in middle more accurately. COUNTRY frequency and

basis: Added new routines. SWAPTIONPROB: Note 3 columns generated when vol curve input.

 

091005 SWAPINST, SWAPTIONFWD, SWAPTION2, SWAPTION2_KEYRATE, SWAPTION3, SWAPTION4: Calculate strike using single maturity if

range not entered.

 

091208 SCENARIOSWAPCFGEN: Fixed calculations for credit spreads. SPLICE: Declare variables up top.

 

091231 OPPOWERBOND2: Removed memory leaks, check for negative forward rates. Made ROLLDOWN more precise and robust.

ROLLDOWN_ARRAY: Fixed off by 1 error. US_FREQ, US_BASIS: Added routines for internationalization. OMNIPRICERSTD: Fixed

memory leak.

 

100112 ZEROCOUPONINFLATIONSWAP, INFLATIONCURVEGENF, PRICEINDEXINFLATIONSWAP, INFLATIONBOND, REALYIELDINFLATIONSWAP, INFLATIONCURVEGENF2:

Added new routines.

 

100301 SWAPTIONPROB: Don't attempt to delete installment array if it was never allocated.

 

100309 Remove calls to solver dll.

 

100414 SCENARIOSWAPCFGEN: Fixed i and j indices in loops for cash flow generator. BARRIERSKEW2, BARRIERSKEW, SHIFTVOLGRID,

CONVERTFXVOLS, CONVERTFXVOLSARRAY,ILNMER,OPTILNMER,OMNIPRICER_STD_MULTI,DIGITALBARRIER: Added new models.

README.TXT

Share this post


Link to post
Share on other sites

×