Skip to content

Commit e4f29b6

Browse files
rolandlichtersjenkins
authored andcommitted
final touch on News and userguide
1 parent f0285de commit e4f29b6

3 files changed

Lines changed: 154 additions & 69 deletions

File tree

Docs/UserGuide/userguide.tex

Lines changed: 94 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@
126126
%\title{Open Source Risk Engine \\ User Guide }
127127
\title{ORE User Guide}
128128
\author{Acadia Inc.}
129-
\date{\today}
129+
\date{6 December 2022}
130130
\maketitle
131131

132132
\newpage
@@ -146,7 +146,7 @@ \section*{Document History}
146146
19 June 2020 & Quaternion & updates for release 5\\
147147
30 June 2021 & Acadia & updates for release 6\\
148148
16 September 2022 & Acadia & updates for release 7\\
149-
12 December & Acadia & updates for release 8\\
149+
6 December 2022 & Acadia & updates for release 8\\
150150
\hline
151151
\end{supertabular}
152152
\end{center}
@@ -266,6 +266,8 @@ \subsubsection*{Scope and Roadmap}
266266
\hline
267267
Commodity European and Asian Options & Y & Y & Y & Y \\
268268
\hline
269+
Commodity Digital Options & Y & Y & Y & Y \\
270+
\hline
269271
Commodity Swaptions & Y & Y & Y & Y\\
270272
\hline
271273
CPI Swaps & Y & Y & N & Y \\
@@ -290,7 +292,7 @@ \subsubsection*{Scope and Roadmap}
290292
\medskip The simulation models applied in ORE's risk factor evolution implement the models discussed in detail in {\em
291293
Modern Derivatives Pricing and Credit Exposure Analysis} \cite{Lichters}: The IR/FX/INF/EQ risk factor evolution is based on
292294
a cross currency model consisting of an arbitrage free combination of Linear Gauss Markov models for all interest rates
293-
and lognormal processes for FX rates and EQ prices, Dodgson-Kainth models for inflation. The model components are calibrated to cross currency discounting and forward curves, Swaptions, FX Options, EQ Options and CPI caps/floors.
295+
and lognormal processes for FX rates and EQ prices, Dodgson-Kainth (or Jarrow-Yildirim) models for inflation. The model components are calibrated to cross currency discounting and forward curves, Swaptions, FX Options, EQ Options and CPI caps/floors. With the 8th release, Commodity simulation has been added, as well as the foundation for a multi-factor Hull-White based IR/FX/COM simulation model.
294296

295297
\subsubsection*{Further Resources}
296298
\begin{itemize}
@@ -315,109 +317,91 @@ \subsubsection*{Organisation of this document}
315317
\section{Release Notes}\label{sec:releasenotes}
316318
%========================================================
317319

318-
This section summarises the notable changes between release 6 (June 2021) and 7 (September 2022).
320+
This section summarises the notable changes between release 7 (September 2022) and 8 (December 2022).
319321

320322
\bigskip
321323
INSTRUMENTS
322324
\begin{itemize}
323-
\item add FX Asian option support, thanks to Fredrik Gerdin Börjesson
324-
\item add Equity/Commodity Asian option support
325-
\item add Equity/FX Barrier, Double Barrier and European Barrier options
326-
\item add Equity/FX Digital options
327-
\item add Equity/FX Touch and Double Touch options
328-
\item add FX KI/KO Barrier and Digital Barrier options
329-
\item add support for FX Average Forwards
330-
\item add support for legs referencing a constant maturity bond index in analogy to CMS
331-
\item add support for Commodity Digital Option
332-
\item expose the Turnbull-Wakeman moment-matching engine for arithmetic average price options,
333-
thanks to Fredrik Gerdin Börjesson
334-
\item additional pricing engine results for Caps/Floors, thanks to Fredrik Gerdin Börjesson
335-
\item additional results for Commodity Swaps
336-
\item introduce user-defined minimum time value for the AmericanOptionFDEngineBuilder,
337-
thanks to Fredrik Gerdin Börjesson
338-
\item revised the inflation derivative setup, adopt changes in QuantLib 1.27
339-
\item improve CPI swap and cap pricing by using the last known fixing date as a base date
340-
in the zero inflation curve resp. volatility term structure
341-
\item support Cap/Floor with CMS Spread leg
325+
\item roll out Commodity derivatives, thanks to Acadia Inc., as announced in September 22:
326+
\begin{itemize}
327+
\item add Commodity Swap
328+
\item add Commodity Swaption
329+
\item add Commodity Average Price Option
330+
\item add Commodity Option Strips and Digital Option Strip
331+
\end{itemize}
332+
see user guide and in particular Example 24
333+
\item add Equity Cliquet Option, missed in the 7th release, thanks to Acadia
334+
\item add Equity/FX/Commodity Variance Swap, missed in the 7th release, thanks to Acadia
335+
\item introduce separate trade types for Cross Currency and Inflation Swap
336+
\item merge QuantExt and QuantLib CDS and midpoint engine in ORE's QuantLib fork;
337+
QuantLib pull request to follow
342338
\end{itemize}
343339

344340
\bigskip
345341
MARKETS
346342

347343
\begin{itemize}
348-
\item add support for SOFR and SONIA term rates
349-
\item add support for DKK-CITA and SEK-STINA indices, thanks to Fredrik Gerdin Börjesson
350-
\item add crypto currency (BTC, ETH) parsers to support crypto currency Forwards as FX Forwards
351-
\item add support for minor currencies (GBp, etc.) across all Equity derivatives
352-
\item make minor currency unit codes configurable
353-
\item add support for FX Forward outright quotes in curve building
354-
\item refactor parseCalendar() and parseCurrency() using Singletons to be able to reset state
355-
\item introduce instrument conventions Singleton, fix Commodity forward fixing errors
356-
\item revised the FX index implementation, fix lazy market building errors related to FX indices
344+
\item performance optimizations for curve builders
345+
\item extend the market interface to optionally handle precious metals and crypto currencies as commodities instead of FX
357346
\end{itemize}
358347

359348
\bigskip
360349
TERM STRUCTURES
361350

362351
\begin{itemize}
363-
\item add support for RFR (SOFR, SONIA, ...) Cap/Floor volatility surfaces
364-
\item add support for RFR Swaption volatility surfaces
365-
\item introduce a moneyness adjustment when proxying the Swaption surface with a different tenor
366-
\item support Cap/Floor volatility surfaces by index name
367-
\item add CubicSpline interpolation for delta volatility surfaces, thanks to Fredrik Gerdin Börjesson
368-
\item add Hermite interpolation to Commodity curves, thanks to Fredrik Gerdin Börjesson
369-
\item enable extrapolation of sparse Cap/Floor volatility data, thanks to Fredrik Gerdin Börjesson
370-
\item fixes to the Equity forward curve builder
371-
\item fixes to the Equity proxy volatility surface, thanks to Fredrik Gerdin Börjesson
372-
\item speed up OIS curve bootstrap
373-
\item add IBOR fallback support for EONIA
352+
\item (no notable changes)
374353
\end{itemize}
375354

376355
\bigskip
377356
ANALYTICS
378357

379358
\begin{itemize}
380-
\item introduce pricing timing/stats report
381-
\item revise the LGM grid engine speeding up Bermudan Swaption pricing significantly
382-
\item speed up CMS coupon pricing
383-
\item extend CMS coupon pricers to cover OIS underlyings
384-
\item changes to the central “valuation engine” in ORE Analytics to enhance performance for large portfolios
359+
\item add American Monte Carlo simulation components to support fast Bermudan Swaption
360+
exposure simulation and more, thanks to Acadia;\\
361+
the integration into the ORE command line app will follow with the next release (March 23)
362+
as it requires some refactoring.
363+
\item add Commodity simulation to the cross asset model and market simulation, integraded
364+
with the LGM-based Cross Asset Model, thanks to Acadia
365+
\item add a multi-factor Hull-White / FX / Commodity simulation model, thanks to Acadia;
366+
calibration to be added
385367
\end{itemize}
386368

387369
\bigskip
388370
TESTS
389371

390372
\begin{itemize}
391-
\item QuantExt: 214 test functions (vs 203 in the previous release)
392-
\item OREData: 192 test functions (vs. 160 in the previous release)
373+
\item QuantExt: 242 test functions (vs 214 in the previous release)
374+
\item OREData: 199 test functions (vs. 192 in the previous release)
375+
\item OREAnalytics: 66 test functions (vs. 65 in the previous release)
393376
\end{itemize}
394377
with associated increases in the number of data driven test cases
395378

396379
\bigskip
397380
DOCUMENTATION
398381

399382
\begin{itemize}
400-
\item added ORE Design documentation, thanks to Roland Kapl
401-
\item the user guide is maintained continuously incorporating user feedback, in particular from Acadia service clients; it has grown from 326 to 404 pages
402-
\item various User Guide improvement, thanks to Fredrik Gerdin Börjesson
403-
\item various corrections to doxygen docs (referenced file names), thanks to Fredrik Gerdin Börjesson
383+
\item the user guide is maintained continuously incorporating user feedback, in particular
384+
from Acadia service clients; it has grown from 404 to 440 pages, mainly due to the
385+
migration of Commodity and Equity/FX instruments into ORE
404386
\end{itemize}
405387

406388
\bigskip
407389
LANGUAGE BINDUNGS
408390

409391
\begin{itemize}
410-
\item Maintenance to ensure ORE SWIG wrappers build with the current ORE release, QuantLib-1.27.1 and QuantLib-SWIG-1.27
411-
\item Various extensions of the SWIG wrappers, thanks to Farah Khashman
412-
\item Various changes to resurrect Python examples and test cases, thanks to Farah Khashman
392+
\item maintenance to ensure ORE SWIG wrappers build with the current ORE release,
393+
QuantLib-1.28 and QuantLib-SWIG-1.28
413394
\end{itemize}
414395

415396
\bigskip
416397
OTHER
417398

418399
\begin{itemize}
419-
\item changes to build with QuantLib 1.27.1
420-
\item allow for C++17 in CMake build
400+
\item changes to build with QuantLib 1.28
401+
\item extend the CMake setup for Windows / Visual Studio users; \\
402+
We will stop maintaining the *.vcxproj and *.vcxproj.filters from the now on
403+
and rely on CMakeLists for both *nix and Windows. \\
404+
See section 4.2.3 on how to "Generate Visual Studio Projects with CMake"
421405
\end{itemize}
422406

423407
%========================================================
@@ -674,6 +658,47 @@ \subsubsection*{Windows}
674658
\item Open the {\tt oreEverything\_*.sln} and build the entire solution (again, make sure to select the correct platform in the configuration manager first).
675659
\end{enumerate}
676660

661+
\subsubsection*{Generate Visual Studio Projects with CMake}
662+
663+
ORE 1.8.9 and later will be shipped without the Visual Studio project and solution files. The Visual Studio projects can be auto-generated from the CMake project files.
664+
665+
\begin{enumerate}
666+
667+
\item Download and install Visual Studio Community Edition (Version 2013 or later).
668+
During the installation, make sure you install the Visual
669+
C++ support under the Programming Languages features (disabled by default).
670+
671+
\item Download and install CMake for Windows (https://cmake.org/download/). Visual Studio Community Edition 2019 or later supports CMake and you can install the feature 'C++ CMake Tools for Windows' instead of installing CMake as standalone program.
672+
673+
\item Set environment variables: \\
674+
\begin{itemize}
675+
\item {\tt \%BOOST\%} pointing to your directory, e.g, {\tt C:{\bs}boost\_1\_72\_0}
676+
\item {\tt \%BOOST\_LIB32\%} pointing to your Win32 lib directory, e.g, {\tt C:{\bs}boost\_1\_72\_0{\bs}lib32\-msvc\-14.0}
677+
\item {\tt \%BOOST\_LIB64\%} pointing to your x64 lib directory, e.g, {\tt C:{\bs}boost\_1\_72\_0{\bs}lib64\-msvc\-14.0}
678+
\end{itemize}
679+
680+
\item Generate MSVC project files from CMake files:
681+
\begin{itemize}
682+
\item Open a Visual Studio Tools Command Prompt
683+
\begin{itemize}
684+
\item 32-bit: VS2022/x86 Native Tools Command Prompt for VS 2022
685+
\item 64-bit: VS2022/x64 Native Tools Command Prompt for VS 2022
686+
\end{itemize}
687+
\item Navigate to the ORE root directory
688+
\item Run CMake command:
689+
\begin{itemize}
690+
\item 32-bit: \\
691+
{\tt cmake -G "Visual Studio 17 2022" -A x64 -DBOOST\_INCLUDEDIR=\%BOOST\% -DBOOST\_LIBRARYDIR=\%BOOST\_LIB64\% -DMSVC\_LINK\_DYNAMIC\_RUNTIME=true -B build}
692+
\item 64-bit: \\
693+
{\tt cmake -G "Visual Studio 17 2022" -A x32 -DBOOST\_INCLUDEDIR=\%BOOST\% -DBOOST\_LIBRARYDIR=\%BOOST\_LIB32\% -DMSVC\_LINK\_DYNAMIC\_RUNTIME=true -B build}
694+
\end{itemize}
695+
Replace the generator "Visual Studio 17 2022" with the actual installed version.
696+
The solution and project files will be generated in the {\tt $\langle$ORE\_ROOT$\rangle${\bs}build} subdirectory.
697+
\end{itemize}
698+
699+
\item Open the {\tt build{\bs}ORE.sln} and build the entire solution (again, make sure to select the correct platform in the configuration manager first).
700+
\end{enumerate}
701+
677702
\subsubsection*{Unix}
678703

679704
With the 5th release we have discontinued automake support so that ORE can only be built with CMake on Unix systems, as follows.
@@ -730,7 +755,14 @@ \subsubsection*{Building on Windows with CMake}
730755
One advantage of the CMake build system is that it covers both Unix and Windows builds.
731756
The same set of {\tt CMakeLists.txt} files as above allows building ORE on Windows. The following instructions use the {\tt Ninja} build system ({\url{ninja-build.org}) that covers the role of {\tt make} on Unix systems and calls the Visual Studio C++ compiler and linker.
732757

758+
733759
\begin{enumerate}
760+
\item Set environment variables: \\
761+
\begin{itemize}
762+
\item {\tt \%BOOST\%} pointing to your directory, e.g, {\tt C:{\bs}boost\_1\_72\_0}
763+
\item {\tt \%BOOST\_LIB32\%} pointing to your Win32 lib directory, e.g, {\tt C:{\bs}boost\_1\_72\_0{\bs}lib32\-msvc\-14.0}
764+
\item {\tt \%BOOST\_LIB64\%} pointing to your x64 lib directory, e.g, {\tt C:{\bs}boost\_1\_72\_0{\bs}lib64\-msvc\-14.0}
765+
\end{itemize}
734766
\item Open a command prompt, change to directory C:{\textbackslash}Program Files (x86){\textbackslash}Microsoft Visual Studio 14.0{\textbackslash}VC and run\\
735767
\medskip
736768
{\tt vcvarsall.bat x64} \\
@@ -739,9 +771,10 @@ \subsubsection*{Building on Windows with CMake}
739771
\item Change to the ORE project directory that contains the {\tt QuantLib}, {\tt QuantExt}, etc, folders; create subdirectory {\tt build} and change to subdirectory {\tt build}
740772
\item Configure CMake e.g. by invoking \\
741773
\medskip
742-
{\tt cmake -D BOOST\_LIBRARYDIR=/path/to/boost/root/lib64-msvc-14.0 } \textbackslash\\
774+
{\tt cmake -D BOOST\_INCLUDEDIR=\%BOOST\% } \textbackslash\\
775+
{\tt \hspace{2cm} -D BOOST\_LIBRARYDIR=\%BOOST\_LIB64\% }\textbackslash\\
743776
{\tt \hspace{2cm} -D CMAKE\_BUILD\_TYPE=Release }\textbackslash\\
744-
{\tt \hspace{2cm} -D MSVC\_RUNTIME=static} \textbackslash\\
777+
{\tt \hspace{2cm} -D MSVC\_LINK\_DYNAMIC\_RUNTIME=true} \textbackslash\\
745778
{\tt \hspace{2cm} -G Ninja ..} \\
746779
\medskip
747780
where the -G option allows choosing the desired build system generator.

News.txt

Lines changed: 58 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,64 @@ found in the commits between September 2022 and December 2022.
66

77
INSTRUMENTS
88

9-
- add Equity Cliquet Option
10-
- add Equity/FX/Commodity Variance Swap
11-
- add Commodity Swap
12-
- add Commodity Swaption
13-
- add Commodity Average Price Option
14-
- add Commodity Option Strip
9+
- roll out Commodity derivatives, thanks to Acadia Inc., as announced in September 22:
10+
* add Commodity Swap
11+
* add Commodity Swaption
12+
* add Commodity Average Price Option
13+
* add Commodity Option Strips and Digital Option Strip
14+
see user guide and in particular Example 24
15+
- add Equity Cliquet Option, missed in the 7th release, thanks to Acadia
16+
- add Equity/FX/Commodity Variance Swap, missed in the 7th release, thanks to Acadia
17+
- introduce separate trade types for Cross Currency and Inflation Swap
18+
- merge QuantExt and QuantLib CDS and midpoint engine in ORE's QuantLib fork,
19+
QuantLib pull request to follow
20+
21+
MARKETS
22+
23+
- performance optimizations for curve builders
24+
- extend the market interface to optionally handle precious metals and crypto currencies
25+
as commodities instead of FX
26+
27+
TERM STRUCTURES
28+
29+
- no notable changes
30+
31+
ANALYTICS
32+
33+
- add American Monte Carlo simulation components to support fast Bermudan Swaption
34+
exposure simulation and more, thanks to Acadia;
35+
the integration into the ORE command line app will follow with the next release (March 23)
36+
as it requires some refactoring.
37+
- add Commodity simulation to the cross asset model and market simulation, integraded
38+
with the LGM-based Cross Asset Model, thanks to Acadia
39+
- add a multi-factor Hull-White / FX / Commodity simulation model, thanks to Acadia;
40+
calibration to be added
41+
42+
TESTS
43+
44+
- QuantExt: 242 test functions (vs 214 in the previous release)
45+
- OREData: 199 test functions (vs. 192 in the previous release)
46+
- OREAnalytics: 66 test functions (vs. 65 in the previous release)
47+
48+
DOCUMENTATION
49+
50+
- the user guide is maintained continuously incorporating user feedback, in particular
51+
from Acadia service clients; it has grown from 404 to 440 pages, mainly due to the
52+
migration of Commodity and Equity/FX instruments into ORE
53+
54+
LANGUAGE BINDUNGS
55+
56+
- maintenance to ensure ORE SWIG wrappers build with the current ORE release,
57+
QuantLib-1.28 and QuantLib-SWIG-1.28
58+
59+
OTHER
60+
61+
- changes to build with QuantLib 1.28
62+
- extend the CMake setup for Windows / Visual Studio users
63+
We will stop maintaining the *.vcxproj and *.vcxproj.filters from now on
64+
and rely on CMakeLists for both *nix and Windows. See section 4.2.3 of
65+
the user guide on how to "Generate Visual Studio Projects with CMake"
66+
1567

1668
Changes for the 7th ORE release (1.8.7.0):
1769
============================================

QuantExt/qle/version.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@
4343
#endif
4444

4545
//! Version string
46-
#define OPEN_SOURCE_RISK_VERSION "1.8.7.0"
46+
#define OPEN_SOURCE_RISK_VERSION "1.8.8.0"
4747

4848
//! Version number
49-
#define OPEN_SOURCE_RISK_VERSION_NUM 1080700
49+
#define OPEN_SOURCE_RISK_VERSION_NUM 1080800
5050

5151
#endif

0 commit comments

Comments
 (0)