Current version of TOPS
Posted 26 June 2006 - 08:42 AM
060524 INTQUOTE: If holidays is not the right size, return
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
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,
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
In particular, models which use other models,
including SWAPTION calling into BONDVAL, are
Posted 13 July 2006 - 10:04 AM
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 <= 1/12 then set cap value to 0 instead of
calling into model.
MOVEYIELDCURVE: Check for 1 column range coming in and convert if necessary.
060711 COMMODITYBASKETBONDVAL, ISTOPSERROR: Added new models.
Posted 04 August 2006 - 06:31 PM
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).
Posted 20 October 2006 - 09:46 AM
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.
Posted 06 November 2006 - 03:36 AM
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.
Posted 06 December 2006 - 12:49 PM
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
Posted 19 January 2007 - 10:25 AM
070119 Exported calc_breakeven_bond_yield. Moved get_row_column. Added VOLCUBETOGRID, VOLGRIDTOCURVE, INTERP2DXARRAY, INTERP2DYARRAY,
Posted 26 January 2007 - 01:59 PM
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.
Posted 01 February 2007 - 02:50 PM
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.
Posted 08 February 2007 - 04:50 PM
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.
Posted 06 March 2007 - 10:22 AM
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.
Posted 12 March 2007 - 02:36 PM
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.
Posted 18 April 2007 - 02:43 PM
070413 CONVERTIBLE: Improved the narrowing of stock price changes. CONVERTIBLE3: Added new model which uses triggerlevel
and triggerdays to add in mandatory conversion.
Posted 19 October 2007 - 10:37 AM
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.
Posted 22 April 2008 - 03:14 PM
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.
Posted 23 April 2008 - 08:45 AM
080423 CANCELLABLECMSSPREAD: Added to distribution. CREDITPROBALL, CREDIT, DEFAULTSWAPVAL, DEFAULTSWAPVAL2: Previous
fix for absolute diffeence in survival rate did not make it into previous distribution.
Reply to this topic
2 user(s) are reading this topic
0 members, 2 guests, 0 anonymous users