1history(3) QuantLib history(3)
2
3
4
6 history - Version history Release 0.8.1 - June 2007
7
8 PORTABILITY
9
10 · Version 0.8.1 adds support for Boost 1.34 on Linux systems. If you
11 are using version 0.8.0 on Windows systems, you do not need this
12 upgrade.
13
14 Release 0.8.0 - May 30th, 2007
15
16 PORTABILITY
17
18 · Version 0.8.0 is the last QuantLib release to support the Metrowerks
19 CodeWarrior compiler (which was discountinued by Metrowerks.) If you
20 use such compiler and want support to continue, you can volunteer for
21 maintaining the necessary patches: contact the QuantLib developers
22 for information.
23
24 SOURCE TREE
25
26 · Files and folders in the source tree have been reorganized (hopefully
27 for th ebetter.) If you only included <ql/quantlib.hpp>, all changes
28 were taken care of for you. if you included specific headers, you
29 might want to check its current location; in particular, all folder
30 names are now lowercase.
31
32 CALENDARS
33
34 · Added 2007 holidays for Indonesia, Saudi Arabia, and South Korea
35 calendars.
36
37 CASH FLOWS
38
39 · Added floater range-accrual coupons.
40
41 INDEXES
42
43 · Added EuriborSwapFixB family.
44
45 INSTRUMENTS
46
47 · Added capped/floored floating-rate bond. It can also be used for
48 reverse floaters.
49
50 · Added delta, gamma and theta to binomial option engines (thanks to
51 Steve Cook.)
52
53 · Refactored basket engines to allow for more payoffs.
54
55 LIBOR MARKET MODEL
56
57 · This release includes an experimental implementation of a Libor
58 market model developed with Mark Joshi. Improvements since release
59 0.4.0 include normal forward-rate market model, lognormal CMS market
60 model, lognormal coterminal-swap market model, and calibration to
61 caplets and coterminal swaptions. The interface of the model and its
62 integration with the bulk of the library are still in development.
63
64 MATH
65
66 · Adaptive Gauss-Kronrod integration added.
67
68 · Added Higham's nearest correlation matrix method (thanks to Neil
69 Firth)
70
71 · Refactored optimization framework.
72
73 PROCESSES
74
75 · Added new discretization schema to Heston process.
76
77 UTILITIES
78
79 · The Handle class was split into RelinkableHandle (behaving like the
80 old Handle class) and Handle (which is notified when its copies are
81 relinked, but cannot itself be relinked.) The former can safely be
82 returned from inspectors.
83
84 Release 0.4.0 - February 20th, 2007
85
86 PORTABILITY
87
88 · Starting with release 0.4.0, the Borland free compiler 5.5 and
89 Microsoft Visual C++ 6.0 are no longer supported. If you use one of
90 these compilers and want support to continue, you can volunteer for
91 maintaining the necessary patches: contact the QuantLib developers
92 for information.
93
94 CALENDARS
95
96 · Added 2007 holidays for Hong Kong, India, Singapore, and Taiwan
97 exchanges.
98
99 LIBOR MARKET MODEL
100
101 · This release includes an experimental implementation of a Libor
102 market model developed with Mark Joshi. Improvements since release
103 0.3.14 include the use of quasi-random number generators and the
104 calculation of Greeks and of upper bounds for instruments with early-
105 exercise features. The interface of the model and its integration
106 with the bulk of the library are still in development.
107
108 INSTRUMENTS
109
110 · Added helper classes to make it easier to instantiate swaps,
111 caps/floors, and CMS instruments.
112
113 INTEREST RATES
114
115 · Added capped/floored floating-rate coupons (including convexity
116 adjustment.)
117
118 MATH
119
120 · Curve, domain and surface interfaces added.
121
122 PROCESSES
123
124 · Added reversion level to Ornstein-Uhlenbeck process (thanks to Roland
125 Lichters.)
126
127 VOLATILITY TERM STRUCTURES
128
129 · Added stripping of caplet-volatility term structure from cap quotes.
130
131 · Improved SABR interpolation and calibration.
132
133 Release 0.3.14 - November 6th, 2006
134
135 PORTABILITY
136
137 · Version 0.3.14 is the last QuantLib release to support the Borland
138 free compiler 5.5 and Microsoft Visual C++ 6.0. If you use one of
139 these compilers and want support to continue, you can volunteer for
140 maintaining the necessary patches: contact the QuantLib developers
141 for information.
142
143 LIBOR MARKET MODEL
144
145 · This release includes an experimental implementation of a Libor
146 market model developed with Mark Joshi. The interface and its
147 integration with the bulk of the library are still in development.
148
149 CURRENCIES
150
151 · Added Romanian new lev.
152
153 DATES, CALENDARS, AND DAY COUNTERS
154
155 · Added all serial 3M IMM futures (thanks to Toyin Akin.)
156
157 · Reworked the Schedule class so that it follows market conventions
158 more closely.
159
160 · Added business/252 day-count convention (thanks to Piter Dias.)
161
162 INTEREST RATES
163
164 · Added base swap-rate class and a number of actual swap rates.
165
166 · Added constant-maturity swap coupons (including convexity
167 adjustment.)
168
169 INSTRUMENTS
170
171 · Added asset swaps.
172
173 · Added face amount to bonds (defaulting to 100.)
174
175 MATH
176
177 · Added hypersphere and lower-diagonal salvaging algorithms (thanks to
178 Yiping Chen.)
179
180 PRICING ENGINES
181
182 · Added Longstaff-Schwartz Monte-Carlo algorithm for American/Bermudan
183 equity options with deterministic interest rates.
184
185 TERM STRUCTURE
186
187 · Added piecewise-spreaded yield curve (thanks to Roland Lichters.)
188
189 Release 0.3.13 - July 31st, 2006
190
191 CALENDARS
192
193 · Added NERC calendar (thanks to Joe Byers.)
194
195 INSTRUMENTS AND PRICING ENGINES
196
197 · Added continuous fixed and floating lookback options (thanks to
198 Warren Chou.)
199
200 · Added FRA and forward fixed-coupon bonds; examples provided (thanks
201 to Allen Kuo.)
202
203 · Added variance swaps (thanks to Warren Chou.)
204
205 · Added composite instrument; example provided.
206
207 · Added cash-settled swaption pricing in Black swaption engine; test
208 provided.
209
210 · Added discrete dividends and soft callability to convertible bonds.
211
212 INTEREST RATES
213
214 · Fixed business-day conventions for Euribor and LIBOR indices
215 (following below one month, month-end from one month onwards.)
216
217 MODELS
218
219 · Added more complex market parameterizations and performance
220 improvements for Libor market model (thanks to Klaus Spanderen.)
221
222 PROCESSES
223
224 · Renamed BlackScholedProcess to GeneralizedBlackScholedProcess;
225 specialized classes added for Black-Scholes, Merton, Black and
226 Garman-Kohlhagen processes.
227
228 · Added Hull-White and G2 processes for Monte Carlo simulation (thanks
229 to Banca Profilo.)
230
231 RANDOM NUMBERS
232
233 · Added possibility to skip directly to the n-th item in a Sobol
234 sequence (thanks to Richard Gould.)
235
236 MATH
237
238 · Added SABR interpolation for volatilities.
239
240 · Added general linear least-squares regression (thanks to Klaus
241 Spanderen.)
242
243 Release 0.3.12 - March 27th, 2006
244
245 CALENDARS
246
247 · Added Brazilian calendar (thanks to Piter Dias.)
248
249 · Added Argentinian, Icelandic, Indonesian, Mexican, and Ukrainian
250 calendars.
251
252 INSTRUMENTS AND PRICING ENGINES
253
254 · Added convertible bonds (thanks to Theo Boafo.)
255
256 · The cash flows returned by the Bond::cashflows method now include the
257 redemption.
258
259 · SimpleSwap can now be set an engine. If none is set, the old cash-
260 flow-based calculation is used.
261
262 · Generalized McVanillaEngine so that it can manage n-dimensional
263 processes; it now subsumes McHestonEngine.
264
265 · Added pricing of Bermudan options on binomial trees (thanks to Enrico
266 Michelotti.)
267
268 · Separated accrual and payment conventions for bonds.
269
270 · Modified basis-point sensitivity calculation so that it returns the
271 cash variation for a basis-point change in rate (it used to return
272 the figure to be multiplied by the variation in order to obtain the
273 same result.)
274
275 MODELS
276
277 · Added weights to short-rate model calibration (thanks to Enrico
278 Michelotti.)
279
280 · Added Libor market model (thanks to Klaus Spanderen.)
281
282 OPTIMIZATION
283
284 · Added Levenberg-Marquardt optimization method (thanks to Klaus
285 Spanderen.)
286
287 EXAMPLES
288
289 · Merged American and European option examples; added Bermudan option.
290
291 · Added convertible-bond example (thanks to Theo Boafo.)
292
293 Release 0.3.11 - October 20th, 2005
294
295 GLOBAL FEATURES
296
297 · Added configuration option for adding current function information to
298 error messages.
299
300 · Added hook for multiple sessions to Singleton.
301
302 CALENDARS
303
304 · Added Bombay and Taipei calendars.
305
306 CURRENCIES
307
308 · Added new Turkish lira.
309
310 INDEXES
311
312 · More accurate LIBOR calendars (thanks to Daniele de Francesco.)
313
314 · Added DKKLibor, EURLibor, and NZDLibor indexes.
315
316 · Added TRLibor index (thanks to Sercan Atalik.)
317
318 PRICING ENGINES
319
320 · Added Bates stochastic-volatility model; tests provided (thanks to
321 Klaus Spanderen.)
322
323 · Added vega to analytic discrete-averaging Asian engine; test provided
324 (thanks to Gary Kennedy.)
325
326 · Added stochastic process for caplet Libor market model; tests
327 provided (thanks to Klaus Spanderen.)
328
329 TERM STRUCTURES
330
331 · Added fixed-coupon bond helper for curve bootstrapping (thanks to
332 Toyin Akin.)
333
334 MATH
335
336 · Added tabulated Gauss-Legendre quadratures (thanks to Gary Kennedy.)
337
338 · Added more precise implementation of bivariate cumulative normal
339 distribution (thanks to Gary Kennedy.)
340
341 Release 0.3.10 - July 14th, 2005
342
343 GLOBAL FEATURES
344
345 · The suggested syntax for setting and registering with the global
346 evaluation date is now:
347
348 Settings::instance().evaluationDate() = date;
349 registerWith(Settings::instance().evaluationDate());
350
351
352 CALENDARS
353
354 · Istanbul calendar added (thanks to Serkan Atalik.)
355
356 LATTICE FRAMEWORK
357
358 · Faster implementation of binomial and trinomial trees.
359
360 MONTE CARLO FRAMEWORK
361
362 · Added generic multi-dimensional stochastic process.
363
364 · Added stochastic process array (thanks to Klaus Spanderen.)
365
366 · Multi-path generator now takes a generic stochastic process; tests
367 provided.
368
369 · New Path class implemented which stores asset values rather than
370 variations; this makes pricers independent on whether or not log-
371 variations were calculated. The new class is enabled when
372 QL_DISABLE_DEPRECATED is defined; the old class is used otherwise.
373
374 INSTRUMENTS
375
376 · Multi-asset option now takes a generic stochastic process.
377
378 MODELS
379
380 · Added Heston stochastic-volatility model; tests provided (thanks to
381 Klaus Spanderen.) Provided code include:
382
383 · a corresponding stochastic process;
384
385 · analytic and Monte Carlo option-pricing engines;
386
387 · parameter calibration.
388
389 CASH FLOWS
390
391 · Cash-flow analyses such as NPV, IRR, convexity and duration added
392 (thanks to Charles Whitmore.)
393
394 MATH
395
396 · Added Gaussian orthogonal polynomials and Gaussian quadratures; tests
397 provided (thanks to Klaus Spanderen.)
398
399 · Convergence statistics added; tests provided (thanks to Gary
400 Kennedy.)
401
402 Release 0.3.9 - May 2nd, 2005
403
404 GLOBAL FEATURES
405
406 · QL_SQRT, QL_MIN etc. deprecated in favor of std::sqrt, std::min...
407
408 · Added a tentative tracing facility to ease debugging.
409
410 · Formatters deprecated in favor of output manipulators. A number of
411 data types can now be sent directly to output streams.
412
413 · Stream-based implementation of QL_REQUIRE, QL_TRACE and similar
414 macros. Together with manipulators, this allows one to write simpler
415 error messages, as in:
416
417 QL_FAIL('forward at date ' << d << ' is ' << io::rate(f));
418
419
420 INSTRUMENTS
421
422 · Improved Bond class
423
424 · yield-related calculation can be performed with either compounded
425 or continuous compounding;
426
427 · added theoretical price based on discount curve;
428
429 · fixed-rate coupon bonds can define different rates for each coupon;
430
431 · added zero-coupon and floating-rate bonds (thanks to StatPro.)
432
433 · Option instruments now take a generic StochasticProcess; however,
434 most pricing engines still require a BlackScholesProcess. They should
435 be checked to see whether the requirement can be relaxed. Following
436 this change, Merton76Process no longer inherits from
437 BlackScholesProcess. This avoids erroneous upcasts.
438
439 · Partial fix for Bermudan swaptions with exercise lag (thanks to Luca
440 Berardi for the report and discussion.)
441
442 · Fix for analytic cap/floor engine; caplets/floorlets whose fixing is
443 in the past are now calculated correctly (thanks to Aurelien
444 Chanudet.)
445
446 CALENDARS
447
448 · Added Bratislava and Prague calendars.
449
450 INDICES
451
452 · Fixed calendars for LIBOR fixings (thanks to Daniele De Francesco.)
453
454 FINITE_DIFFERENCES FRAMEWORK
455
456 · Migrated finite-difference pricers to pricing-engine framework
457 (thanks to Joseph Wang.)
458
459 YIELD TERM STRUCTURES
460
461 · Added generic piecewise yield term structure. Client code can choose
462 what to interpolate (discounts, zero yields, forwards) and how
463 (linear, log-linear, flat) by instantiating types such as:
464
465 PiecewiseYieldCurve<Discount,LogLinear>
466 PiecewiseYieldCurve<ZeroYield,Linear>
467 PiecewiseYieldCurve<ForwardRate,Linear>
468
469
470 · Interpolated discount, zero-yield and forward-rate curves can now be
471 set any interpolation.
472
473 · FlatForward can now take rates with compounding other than
474 continuous.
475
476 · Fix for extrapolation in zero-spreaded and forward-spreaded yield
477 term structure (thanks to Adjriou Belak for the report.)
478
479 MATH
480
481 · Added backward- and forward-flat interpolations.
482
483 Release 0.3.8 - December 22nd, 2004
484
485 REQUIRED PACKAGES
486
487 · Boost version 1.31.0 or later is now required.
488
489 DOCUMENTATION
490
491 · Documentation now includes a FAQ page.
492
493 GLOBAL FEATURES
494
495 · Global evaluation date added through Settings class. Used for index-
496 fixing and exchange-rate lookup.
497
498 · added InterestRate class, which encapsulate the interest rate
499 compounding algebra. It manages day-counting convention, compounding
500 convention, conversion between different conventions, and
501 discount/compounding factor calculations. It also has its own
502 formatter.
503
504 INSTRUMENTS
505
506 · Bond and FixedCouponBond classes added (thanks to Jeff Yu) providing
507 price/yield conversions; tests provided.
508
509 DATE, CALENDARS, AND DAY COUNT CONVENTIONS
510
511 · Reworked Date interface. Added nextWeekday() and nthWeekday() static
512 methods to the class Date. Added nextIMM() for the calculation of the
513 next IMM date.
514
515 · Added WeekdayFormatter and FrequencyFormatter
516
517 · Added '1/1' day counter. The Actual365 is deprecated: as per ISDA
518 documentation 'Actual/365' is the same as 'Actual/Actual'. Use the
519 ActualActual class instead, or the Actual365Fixed class.
520
521 · Added dayCounterFromString(std::string) to QuantLibFunctions.
522
523 · Improved Beijing calendar (thanks to Zhou Wu.)
524
525 CURRENCIES AND FX RATES
526
527 · Added currency classes; CurrencyTag replaced in library code.
528
529 · Added money class providing arithmetic with or without conversions;
530 tests provided.
531
532 · Added exchange-rate class; tests provided.
533
534 · Added exchange-rate manager with smart rate lookup, i.e., able to
535 derive a missing exchange rate as a chain of provided rates; tests
536 provided.
537
538 MONTE CARLO FRAMEWORK
539
540 · Added Faure low-discrepancy sequence (thanks to Gianni Piolanti;)
541 tests provided.
542
543 · Added randomized (shifted) low discrepancy sequences that will be
544 used for randomized quasi Monte Carlo.
545
546 · Added SeedGenerator class, for random generation of seeds when they
547 are not given by the user.
548
549 · Added the implementation of Sobol sequences using the coefficients of
550 the free direction integers as provided by Bratley and Fox, who
551 credited unpublished work of Sobol's and Levitan's.
552
553 · Added an implementation of Sobol sequences using the coefficients of
554 the free direction integers of Lemieux, Cieslak, and Luttmer.
555 Coefficients for d<=40 are the same as in Bradley-Fox. For dimension
556 40<d<=360 the coefficients have been calculated as optimal values
557 based on the 'resolution' criterion. The values has been provided by
558 Christiane Lemieux, private communication, September 2004.
559
560 · PathGenerator now works correctly with processes describing S instead
561 of log S. Geometric Brownian process added (thanks to Walter
562 Penschke.)
563
564 LATTICE FRAMEWORK
565
566 · Reworked the DiscretizedAsset interface.
567
568 PRICING ENGINES FRAMEWORK
569
570 · Added pricing engine for American options with Ju quadratic
571 approximation.
572
573 · Average-price Asian pricers have been deprecated. New equivalent
574 pricing engines added.
575
576 FIXED INCOME
577
578 · Added current coupon to discretized swap and cap/floor.
579
580 · Added IndexManager as a singleton (will replace XiborManager--already
581 obsoleted in library code.)
582
583 · Added DayCounter parameter to ParCoupon (to be used for accruing
584 spreads and past fixings.) When missing, it defaults to that of the
585 term structure.
586
587 · Added compilation flag to select default floating-coupon type.
588
589 · IndexedCoupon can now take a generic index rather than a Libor
590 (thanks to Daniele De Francesco.)
591
592 · Added hooks for convexity adjustment in floating-rate coupons;
593 implemented adjustment for InArrearIndexedCoupon.
594
595 YIELD TERM STRUCTURE
596
597 · TermStructure renamed to YieldTermStructure (the former name was
598 deprecated.)
599
600 · New base class BaseTermStructure which can calculate its reference
601 date based on the global evaluation date. YieldTermStructure,
602 BlackVolTermStructure, LocalVolTermStructure,
603 CapFlatVolatilityStructure, CapletForwardVolatilityStructure, and
604 SwaptionVolatilityStructure are now derived from BaseTermStructure so
605 that they inherit its functionality.
606
607 PATTERNS
608
609 · Added Singleton pattern.
610
611 MATH
612
613 · Added N-dimensional cubic spline (thanks to Roman Gitlin.)
614
615 · Added CovarianceDecomposition class (decomposes a covariance matrix
616 into standard deviations and correlations)
617
618 MISCELLANEA
619
620 · Renamed RelinkableHandle to Handle.
621
622 PORTABILITY
623
624 · Support for Dev-C++ IDE added.
625
626 · Fixes for gcc 2.95 added (thanks to Michael Dirkmann.)
627
628 Release 0.3.7 - July 23rd, 2004
629
630 IMPORTANT
631
632 QuantLib now depends on the Boost library (www.boost.org).
633
634 You will need a working Boost installation in order to compile and use
635 QuantLib. Instructions for installing Boost from sources are available
636 at <http://www.boost.org/more/getting_started.html>. Pre-packaged
637 binaries might be available from other sources. Google is your friend
638 (or Debian, or Fink...)
639
640 DATE, CALENDARS, AND DAY COUNT CONVENTIONS
641
642 · Working on differentiating calendars depending on country or
643 exchange, instead of city.
644
645 · Added Italy (Settlement, Exchange), United Kingdom (Settlement,
646 Exchange, Metals), United States (Settlement, Exchange,
647 GovermentBond), Xetra.
648
649 · Milan, London, and NewYork calendars have been deprecated.
650
651 · Added (old-style) calendars: Beijing, Hong Kong, Riyadh, Seoul,
652 Singapore, Taiwan.
653
654 · RollingConvention has been renamed BusinessDayConvention, as for ISDA
655 definitions.
656
657 MATH
658
659 · Added rounding algorythms as per OMG enumeration/definition.
660
661 TEST SUITE
662
663 · Moved to Boost unit test framework. CppUnit is no longer needed.
664
665 · Added test for quanto and forward compound engines.
666
667 · Added test for roundings.
668
669 · Added test for discrete dividend European options.
670
671 · Added test for cliquet options.
672
673 MISCELLANEA
674
675 · enable/disableExtrapolation() methods were added to a few classes
676 such as TermStructure. They make it possible to persistently allow
677 extrapolation without the need of specifying it at every method call.
678
679 · Added user-configurable flag to disable usage of deprecated classes.
680
681 PORTABILITY
682
683 · Fink package available
684
685 · Visual C++ 7.x project files added
686
687 Release 0.3.6 - April 15th, 2004
688
689 Bug-fix release for QuantLib 0.3.5. A bug was removed where calls to
690 impliedVolatility() would break the state of the option and of all
691 options sharing the same stochastic process.
692
693 Release 0.3.5 - March 31th, 2004
694
695 BOOST SUPPORT
696
697 · When available, QuantLib 0.3.5 now uses parts of the Boost library.
698 The presence of Boost is detected automatically under Unix/Linux
699 systems; on Windows systems, it must be enabled by uncommenting the
700 relevant line in ql/userconfig.hpp.
701
702 · In the next QuantLib release, the presence of the Boost library will
703 be mandatory.
704
705 MONTE CARLO FRAMEWORK
706
707 · Modified MultiPath interface to remove drifts. They are now in the
708 stochastic processes.
709
710 · Preliminary implementation of Longstaff-Schwartz least-squares
711
712 · Monte Carlo pricer for European basket options
713
714 · Brownian-bridge bugs fixed
715
716 · StochasticProcess base class and derived classes (diffusion, jump-
717 diffusion, etc.) have been created.
718
719 PRICING ENGINES FRAMEWORK
720
721 · Pricing engines now use Payoff and Exercise classes.
722
723 · American basket options.
724
725 · Binary barrier option replaced by vanilla option with digital payoff.
726
727 · Stulz engine for max and min basket calls and puts on two assets.
728
729 · American binary option added (a.k.a. one-touch, american digital,
730 americal barrier, etc.) with different payoffs (cash/asset at
731 hit/expiry, etc.)
732
733 · Added engine for Merton 1976 jump-diffusion process.
734
735 · Added Bjerksund and Stensland approximation for American option
736 (still unstable.)
737
738 · Added Barone-Adesi and Whaley approximation for American option.
739
740 · Improved Black formula engine with more greeks added.
741
742 · Discrete geometric asian option.
743
744 · Added Leisen-Reimer binomial tree.
745
746 SHORT RATE MODELS
747
748 · Model renamed to ShortRateModel. A typedef is provided for backward
749 compatibility--it will be removed in subsequent releases.
750
751 VOLATILITY FRAMEWORK
752
753 · bug fix for short time (0<=t<=Tmin) interpolation
754
755 OPTIMIZATION FRAMEWORK
756
757 · Method renamed to OptimizationMethod. A typedef is provided for
758 backward compatibility--it will be removed in subsequent releases.
759
760 PATTERNS
761
762 · Composite pattern
763
764 MATH
765
766 · Improved cubic spline interpolation. It now handles end conditions
767 such as first derivative value, second derivative value, not-a-knot.
768 Hyman filter for monotonically constrained interpolation has been
769 implemented. Primitive calculation has been enabled in addition to
770 derivative and second derivative.
771
772 · Primitive, first derivative, and second derivative functions are
773 available for linear interpolator.
774
775 · Singular value decomposition improved.
776
777 · Added bivariate cumulative normal distribution.
778
779 · Added binomial coefficient calculation, binomial distribution,
780 cumulative binomial distribution, and Peizer-Pratt inversion (method
781 2.)
782
783 · Added beta functions.
784
785 · Added Poisson distribution and cumulative distribution.
786
787 · Added incomplete gamma functions.
788
789 · Added factorial calculation.
790
791 · Added rank-reduced square root and improved pseudo-square root of
792 square symmetric matrices.
793
794 · Added Cholesky decomposition.
795
796 TEST SUITE
797
798 · Added test for cubic spline interpolation.
799
800 · Added test for singular value decomposition.
801
802 · Added test for two-asset baskets using the Stulz pricing engine.
803
804 · Added test for Monte Carlo American cash-at-hit options.
805
806 · Added test for jump-diffusion engine.
807
808 · Added test for American and European digital options.
809
810 MISCELLANEA
811
812 · Inner namespaces have been deprecated.
813
814 · Added frequency enumeration, including 'once'.
815
816 · MarketElement renamed to Quote.
817
818 · Handling strike=0.0 where possible.
819
820 · More Payoff classes have been introduced: gap, asset-or-nothing,
821 cash-or-nothing. Payoff is now extensively used.
822
823 · Exercise class is now polymorphic. More derived classes have been
824 introduced, and they are now extensively used.
825
826 · Introduced QL_FAIL macro.
827
828 · Added calendar for Copenhagen
829
830 · 14 April 2004 (election day) added to Johannesburg calendar as a one-
831 off holiday.
832
833 · Documentation generated with Doxygen 1.3.6.
834
835 · Win32 installer generated with NSIS 2.0.
836
837 Release 0.3.4 - November 21th, 2003
838
839 MONTE CARLO FRAMEWORK
840
841 · MC European in one step with strike-independent vol curve (hopefully)
842
843 · Path pricer for Binary options. It should cover both European and
844 American style options. Also known as: Digital, Binary, Cash-At-Hit,
845 Cash-At-Expiry.
846
847 · Path pricers for barrier options
848
849 PRICING ENGINES FRAMEWORK
850
851 · More options moved to the new pricing engine framework: binary,
852 barrier
853
854 · Changed setupEngine() into setupArguments(args)
855
856 · Moved pricing-engine machinery up to Instrument class
857
858 FIXED INCOME
859
860 · New basis-point sensitivity functions
861
862 · Added Swap::startDate() and maturity()
863
864 · Cap/floor fixing days taken into account
865
866 SHORT RATE MODELS
867
868 · An additional constraint can now be passed to the calibration
869
870 VOLATILITY FRAMEWORK
871
872 · Visitable volatility term structures
873
874 OPTIMIZATION FRAMEWORK
875
876 · Added composite constraint
877
878 PATTERNS
879
880 · Visitor, Alexandrescu-style (saves some code duplication)
881
882 MATH
883
884 · Added more integration algorithms contributed by Roman Gitlin
885
886 · Relaxed constaints on interval boundaries for integration algorithms
887
888 · Interpolation traits
889
890 TEST SUITE
891
892 · Added implied cap/floor term volatility test
893
894 · Added test for binary options in PricingEngine Framework.
895
896 · Added tests for Barrier options in PricingEngine Framework. Some
897 Monte Carlo tests, but not comprehensive.
898
899 MISCELLANEA
900
901 · Conditionally allowed negative yields (disabled by default)
902
903 · Null calendar and simple day counter for reproducing theoretical
904 calculations
905
906 · Fixed for VC++.Net compilation
907
908 · Added spec file for RPMs
909
910 · Added global flag for early/late payments
911
912 · Enabled test suite for Borland
913
914 · Removed OnTheEdge VC++ configurations
915
916 · Added VC++ configurations for static and dynamic Multithread
917 libraries
918
919 · Upgraded to use Doxygen 1.3.4
920
921 Release 0.3.3 - September 3rd, 2003
922
923 MONTE CARLO FRAMEWORK
924
925 · Re-templatized Monte Carlo model based on traits.
926
927 · New path generator based on DiffusionProcess, TimeGrid, and
928 externally initialized random number generator.
929
930 · Added Halton low discrepancy sequence.
931
932 · Added sequence generators: random sequence generator creates a
933 sequence generator out of a random number generator.
934 InvCumGaussianRsg creates a gaussian sequence generator out of a
935 uniform (random or low discrepancy) sequence generator.
936
937 · RNG as constructor input constructor( long seed) deprecated.
938
939 · Mersenne Twister random number generator added
940
941 · Old PathPricers, PathGenerators, etc are available with a trailing
942 _old
943
944 · Added Jäckel's Brownian Bridge (not used yet.)
945
946 · Sobol Random Sequence Generator. Unit and Jäckel.
947
948 · Added randomized Halton sequences.
949
950 FINITE DIFFERENCE FRAMEWORK
951
952 · Old class Grid no longer exists, use CenteredGrid to obtain the same
953 result.
954
955 LATTICE FRAMEWORK
956
957 · Abstracted discretized option.
958
959 · Additive binomial trees. All binomial trees now use DiffusionProcess.
960
961 · Added Tian binomial tree.
962
963 PRICING ENGINES FRAMEWORK
964
965 · Partially implemented.
966
967 · Quanto forward compounded engines.
968
969 · Integral (european) pricing engine.
970
971 YIELD TERM STRUCTURE
972
973 · ZeroCurve: a term structure based on linear interpolation of zero
974 yields.
975
976 FIXED INCOME
977
978 · Up-front and in-arrear indexed coupon.
979
980 · Specific implementation of compound forward rate from zero yield.
981
982 · Added compound forward and zero coupon implementations.
983
984 · Added Futures rate helper with specified maturity date.
985
986 · Added bucketed bps calculation.
987
988 · Added swap constructor using specified maturity date as well as added
989 functionality in Scheduler.
990
991 · Added date-bucketed basis point sensitivity based on 1st derivative
992 of zero coupon rate.
993
994 OPTIMIZATION FRAMEWORK
995
996 · Solvers now take any function. ObjectiveFunction disappeared.
997
998 PATTERNS
999
1000 · Abstracted lazy object.
1001
1002 · Abstracted the curiously recurring template pattern.
1003
1004 DATE AND CALENDARS
1005
1006 · Added joint calendars.
1007
1008 · Tokyo, Stockholm, Johannesburg calendar improved.
1009
1010 ·
1011
1012 · Added basic date generation starting from the end.
1013
1014 MATH
1015
1016 · Added Gauss-Kronrod integration algorithm.
1017
1018 · Added primitive polynomial modulo 2 up to dimension 18 (available up
1019 to dimension 27.)
1020
1021 · Added BicubicSplineInterpolation.
1022
1023 · Numerical Recipes algorithm is back since there is a problem with
1024 Nicolas' code: it is unable to fit a straight line, it waves around
1025 the line.
1026
1027 · Prime number generation.
1028
1029 · Acklam's approximation for inverse cumulative normal distribution
1030 function (replaced Moro's algorithm as default.)
1031
1032 · Added error function.
1033
1034 · Improved Cumulative Normal Distribution function using the error
1035 function.
1036
1037 · Matrix pseudo square algorithm using salvaging algorithm(s).
1038
1039 · Added SequenceStatistics.
1040
1041 · Major Statistic reworking.
1042
1043 · Added DiscrepancyStatistic that inherits from SequenceStatistic and
1044 extends it with the calculation of L2-discrepancy.
1045
1046 · HStatistics.
1047
1048 · Added first and second derivative ot cubic splines.
1049
1050 RISK MEASURES
1051
1052 · Introduced semiVariance and regret.
1053
1054 · Redefinition of average shorfall (normalization factor now is
1055 cumulative(target) instead of 1.0)
1056
1057 MISCELLANEA
1058
1059 · QuEP 9 'generic disposable objects' implemented.
1060
1061 · Added test suite.
1062
1063 · Dataformatters extended to format long integers, Ordinal numerals,
1064 power of two formatting.
1065
1066 · Exercise class adopted.
1067
1068 · Added user configuration section.
1069
1070 · Inhibited automatic conversion of Handle<T> to RelinkableHandle<T>.
1071
1072 · Diffusion process extended.
1073
1074 · Added strikeSensitivity to the Greeks.
1075
1076 · BS does handle t==0.0 and sigma==0.0.
1077
1078 · TimeGrid has been reworked.
1079
1080 · Added payoff file for Payoff classes. Added Cash-Or-Nothing and
1081 Asset-Or-Nothing payoff classes.
1082
1083 · Upgraded to use Doxygen 1.3.
1084
1085 Release 0.3.1 - February 4th, 2003
1086
1087 FINITE DIFFERENCE FRAMEWORK
1088
1089 · partially implemented QuEP 2 (http://quantlib.org/quep.shtml)
1090
1091 VOLATILITY FRAMEWORK
1092
1093 · added Black and local volatility interface
1094
1095 PRICING ENGINES FRAMEWORK
1096
1097 · partially implemented QuEP 5 (http://quantlib.org/quep.shtml)
1098
1099 YIELD TERM STRUCTURE
1100
1101 · interface revisited
1102
1103 · added discrete time forward methods
1104
1105 · added DiscountCurve (loglinear interpolated) and CompoundForward term
1106 structures
1107
1108 · ForwardSpreadedTermStructure moved under QuantLib::TermStructures
1109 namespace
1110
1111 FIXED INCOME
1112
1113 · Modified coupons so that the payment date can be after the end of the
1114 accrual period
1115
1116 MISCELLANEA
1117
1118 · added/verified holidays of many calendars
1119
1120 · added new calendars
1121
1122 · added new currencies
1123
1124 · more date formatters
1125
1126 · added Period(std::string&)
1127
1128 · it is now possible to advance a calandar using a Period
1129
1130 · added LogLinear Interpolation
1131
1132 · the allowExtrapolation boolean in interpolation classes has been
1133 removed from constructors and added to the operator()
1134
1135 · Renamed Solver1D::lowBound and hiBound
1136
1137 · bug fixes
1138
1139 BUILD PROCESS
1140
1141 · More autoconfiscated time functions and types
1142
1143 · Migrated to latest autotools
1144
1145 · added patches for Darwin and Solaris
1146
1147 Release 0.3.0 - May 6th, 2002
1148
1149 MONTE CARLO FRAMEWORK
1150
1151 · Path and MultiPath are time-aware
1152
1153 · McPricer: extended interface, improved convergency algorithm
1154
1155 FINITE DIFFERENCE FRAMEWORK
1156
1157 · added mixed (implicit/explicit) scheme, from which Crank-Nicolson,
1158 ImplicitEuler, and ExplicitEuler are now derived
1159
1160 · Finite Difference exercise conditions are now in the
1161 FiniteDifferences folder/namespace
1162
1163 · Finite Difference pricers now start with 'Fd' letters
1164
1165 · BSMNumericalOption became BsmFdOption
1166
1167 LATTICE FRAMEWORK
1168
1169 · introduced first version of the framework
1170
1171 · CRR and JR binomial trees
1172
1173 VOLATILITY FRAMEWORK
1174
1175 · early works on reorganization of vol structures
1176
1177 YIELD TERM STRUCTURE
1178
1179 · new TermStructure class based on affine model
1180
1181 · yield curves can be spreaded in term of zeros
1182 (ZeroSpreadedTermStructure) and forwards
1183 (ForwardSpreadedTermStructure)
1184
1185 · Added dates() and times() to PiecewiseFlatForward
1186
1187 · discount factor accuracy in the yield curve bootstrapping is an input
1188
1189 · added single factor short-rate models (Hull-White, Black-Karasinski)
1190
1191 · added two factor short-rate models framework
1192
1193 · cap/floor and swaption calibration helpers
1194
1195 · added bermudan swaption pricing example (including BK and HW
1196 calibrations)
1197
1198 FIXED INCOME
1199
1200 · cap/floor and swaption tree pricer
1201
1202 · cap/floor analytical pricer
1203
1204 · vanilla swaption Jamshidian pricer
1205
1206 · Added accruedAmount() to coupons
1207
1208 · Made cash flow vector builders into functions
1209
1210 OPTIMIZATION FRAMEWORK
1211
1212 · added conjugate gradient, simplex
1213
1214 PATTERNS
1215
1216 · implemented QuEP 8 and 10
1217
1218 MISCELLANEA
1219
1220 · added allowExtrapolation parameter to interpolaton classes
1221
1222 · added 2D bilinear interpolation
1223
1224 · better spline interpolation algorithm
1225
1226 · Added non-central chi-square distribution function.
1227
1228 · Improved Inverse Cumulative Normal Distribution using Moro's
1229 algorithm
1230
1231 · Introduced class representing stochastic processes
1232
1233 · added isExpired() to Instrument interface
1234
1235 · added functions folder and namespace for QuantLibXL and any other
1236 function-like interface to QuantLib
1237
1238 · Handle is now castable to an Handle of a compatible type
1239
1240 · added downsideVariance to the Statistics class
1241
1242 · kustosis() and skewness() now handles the case of stddev == 0 and/or
1243 variance == 0
1244
1245 · added Correlation Matrix to MultiVariateAccumulator
1246
1247 · enforced MS VC compilation settings
1248
1249 · added '-debug' to the QL_VERSION version string ifdef QL_DEBUG
1250
1251 ·
1252
1253 · fixed compilation with 'g++ -pedantic'
1254
1255 · Spread as market element
1256
1257 · new calendars introduced
1258
1259 · new Xibor Indexes introduced
1260
1261 · Added optional day count to libor indexes
1262
1263 · Shortened file names within 31 char limit to support HFS
1264
1265 Release 0.2.1 - December 3rd, 2001
1266
1267 MONTE CARLO FRAMEWORK
1268
1269 · Path and MultiPath are now classes on their own
1270
1271 · PathPricer now handles both Path and MultiPath
1272
1273 · MonteCarloModel now handles both single factor and multi factors
1274 simulations.
1275
1276 · McPricer now handles both single factor and multi factors pricing.
1277 New pricing interface
1278
1279 · antithetic variance-reduction technique made possible in Monte Carlo
1280 for both single factor and multi factors
1281
1282 · Control Variate specific class removed: control variation technique
1283 is now handled by the general MC model
1284
1285 · average price and average strike asian option refactored
1286
1287 · Sample as a (value,weight) struct
1288
1289 · random number generators moved under RandomNumbers folder and
1290 namespace
1291
1292 FINITE DIFFERENCE FRAMEWORK
1293
1294 · BackwardEuler and ForwardEuler renamed ImplicitEuler and
1295 ExplicitEuler, respectively
1296
1297 · refactoring of TridiagonalOperator and derived classes
1298
1299 YIELD TERM STRUCTURE AND FIXED INCOME
1300
1301 · Added some useful methods to term structure classes
1302
1303 · Allowed passing a quote to RateHelpers as double
1304
1305 · added FuturesRateHelpers (no convexity adjustment yet)
1306
1307 · PiecewiseFlatForward now observer of rates passed as MarketElements
1308
1309 · Unified Date and Time interface in TermStructure
1310
1311 · Added BPS to generic swap legs
1312
1313 · added term_structure+swap example
1314
1315 · Fixing days introduced for floating-coupon bond
1316
1317 PATTERNS
1318
1319 · Added factory pattern
1320
1321 · Calendar and DayCounter now use the Strategy pattern
1322
1323 VARIOUS
1324
1325 · used do-while-false idiom in QL_REQUIRE-like macros
1326
1327 · now using size_t where appropriate
1328
1329 · dividendYield is now a Spread instead of a Rate (that is: cost of
1330 carry is allowed)
1331
1332 · RelinkableHandle initialized with an optional Handle
1333
1334 · Worked around VC++ problems in History constructor
1335
1336 · added QL_VERSION and QL_HEX_VERSION
1337
1338 · generic bug fixes
1339
1340 · removed classes deprecated in 0.2.0
1341
1342 INSTALLATION FACILITIES
1343
1344 · improved and smoother Win32 binary installer
1345
1346 DOCUMENTATION
1347
1348 · general re-hauling
1349
1350 · improved and extended Monte Carlo documentation
1351
1352 · improved and extended examples
1353
1354 · Upgraded to Doxygen 1.2.11.1
1355
1356 · Added man pages for installed executables
1357
1358 · added docs in Windows Help format
1359
1360 · added info on 'Win32 OnTheEdgeRelease' and 'Win32 OnTheEdgeDebug' MS
1361 VC++ configurations
1362
1363 · additional information on how to create a MS VC++ project based on
1364 QuantLib
1365
1366 Release 0.2.0 - September 18th, 2001
1367
1368 · Library:
1369
1370 · source code moved under ql, better GNU standards
1371
1372 · gcc build dir can now be separated from source tree
1373
1374 · gcc 3.0.1 port
1375
1376 · clean compilation (no warnings)
1377
1378 · bootstrap script on cygwin
1379
1380 · Fixed automatic choice of seed for random number generators
1381
1382 · Actual/actual classes
1383
1384 · extended platform support (see table in documentation)
1385
1386 · antithetic variance-reduction technique made possible in Monte
1387 Carlo
1388
1389 · added dividend-Rho greek
1390
1391 · First implementation of segment integral (to be redesigned)
1392
1393 · Knuth random generator
1394
1395 · Cash flows, scheduler, and swap (both generic and simple) added
1396
1397 · added ICGaussian random generator
1398
1399 · generic bug fixes
1400
1401 · Installation facilities:
1402
1403 · improved and smoother Win32 binary installer
1404
1405 · better distribution
1406
1407 · debian packages available
1408
1409 · Documentation:
1410
1411 · general re-hauling
1412
1413 · added examples of using QuantLib and of projects based on QL
1414
1415 Release 0.1.9 - May 31st, 2001
1416
1417 · Library:
1418
1419 · Style guidelines introduced (see http://quantlib.org/style.shtml)
1420 and partially enforced
1421
1422 · full support for Microsoft Visual Studio
1423
1424 · full support for Linux/gcc
1425
1426 · momentarily broken support for Metrowerks CodeWarrior
1427
1428 · autoconfiscation (with specialized config.*.hpp files for platforms
1429 without automake/autoconf support)
1430
1431 · Include files moved under Include/ql folder and referenced as
1432 'ql/header.hpp'
1433
1434 · Implemented expression templates techniques for array algebra
1435 optimization
1436
1437 · Added custom iterators
1438
1439 · Improved term structure
1440
1441 · Added Asian, Bermudan, Shout, Cliquet, Himalaya, and Barrier
1442 options (all with greeks calculation, control variated where
1443 possible)
1444
1445 · Added Helsinki and Wellington calendars
1446
1447 · Improved Normal distribution related functions: cumulative, inverse
1448 cumulative, etc.
1449
1450 · Added uniform and Gaussian random number generators
1451
1452 · Added Statistics class (mean, variance, skewness, downside
1453 variance, etc.)
1454
1455 · Added RiskMeasures class: VAR, average shortfall, expected
1456 shortfall, etc.
1457
1458 · Added RiskStatistics class combining Statistics and RiskMeasures
1459
1460 · Added sample accumulator for multivariate analysis
1461
1462 · Added Monte Carlo tools
1463
1464 · Added matrix-related functions (square root, symmetric Schur
1465 decomposition)
1466
1467 · Added interpolation framework (linear and cubic spline
1468 interpolation implemented).
1469
1470 · Installation facilities:
1471
1472 · Added Win32 GUI installer for binaries
1473
1474 · Documentation:
1475
1476 · support for Doxygen 1.2.7
1477
1478 · Added man documentation
1479
1480 Release 0.1.1 - November 21st, 2000
1481
1482 Initial release.
1483
1484
1485
1486Version 0.8.1 29 Oct 2007 history(3)