You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Docs/UserGuide/userguide.tex
+94-61Lines changed: 94 additions & 61 deletions
Original file line number
Diff line number
Diff line change
@@ -126,7 +126,7 @@
126
126
%\title{Open Source Risk Engine \\ User Guide }
127
127
\title{ORE User Guide}
128
128
\author{Acadia Inc.}
129
-
\date{\today}
129
+
\date{6 December 2022}
130
130
\maketitle
131
131
132
132
\newpage
@@ -146,7 +146,7 @@ \section*{Document History}
146
146
19 June 2020 & Quaternion & updates for release 5\\
147
147
30 June 2021 & Acadia & updates for release 6\\
148
148
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\\
150
150
\hline
151
151
\end{supertabular}
152
152
\end{center}
@@ -266,6 +266,8 @@ \subsubsection*{Scope and Roadmap}
266
266
\hline
267
267
Commodity European and Asian Options & Y & Y & Y & Y \\
268
268
\hline
269
+
Commodity Digital Options & Y & Y & Y & Y \\
270
+
\hline
269
271
Commodity Swaptions & Y & Y & Y & Y\\
270
272
\hline
271
273
CPI Swaps & Y & Y & N & Y \\
@@ -290,7 +292,7 @@ \subsubsection*{Scope and Roadmap}
290
292
\medskip The simulation models applied in ORE's risk factor evolution implement the models discussed in detail in {\em
291
293
Modern Derivatives Pricing and Credit Exposure Analysis} \cite{Lichters}: The IR/FX/INF/EQ risk factor evolution is based on
292
294
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.
294
296
295
297
\subsubsection*{Further Resources}
296
298
\begin{itemize}
@@ -315,109 +317,91 @@ \subsubsection*{Organisation of this document}
\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
357
346
\end{itemize}
358
347
359
348
\bigskip
360
349
TERM STRUCTURES
361
350
362
351
\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)
374
353
\end{itemize}
375
354
376
355
\bigskip
377
356
ANALYTICS
378
357
379
358
\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
385
367
\end{itemize}
386
368
387
369
\bigskip
388
370
TESTS
389
371
390
372
\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)
393
376
\end{itemize}
394
377
with associated increases in the number of data driven test cases
395
378
396
379
\bigskip
397
380
DOCUMENTATION
398
381
399
382
\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
404
386
\end{itemize}
405
387
406
388
\bigskip
407
389
LANGUAGE BINDUNGS
408
390
409
391
\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
413
394
\end{itemize}
414
395
415
396
\bigskip
416
397
OTHER
417
398
418
399
\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"
\item Open the {\tt oreEverything\_*.sln} and build the entire solution (again, make sure to select the correct platform in the configuration manager first).
675
659
\end{enumerate}
676
660
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
+
677
702
\subsubsection*{Unix}
678
703
679
704
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}
730
755
One advantage of the CMake build system is that it covers both Unix and Windows builds.
731
756
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.
732
757
758
+
733
759
\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}
734
766
\item Open a command prompt, change to directory C:{\textbackslash}Program Files (x86){\textbackslash}Microsoft Visual Studio 14.0{\textbackslash}VC and run\\
735
767
\medskip
736
768
{\tt vcvarsall.bat x64} \\
@@ -739,9 +771,10 @@ \subsubsection*{Building on Windows with CMake}
739
771
\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}
0 commit comments