Skip to content

Commit

Permalink
Merge pull request #824.
Browse files Browse the repository at this point in the history
Finite Difference Engine for Option under CoxIngersollRoss Short Rate Process
  • Loading branch information
lballabio committed May 30, 2020
2 parents 4df35a9 + 23907f1 commit f56c717
Show file tree
Hide file tree
Showing 26 changed files with 1,105 additions and 0 deletions.
8 changes: 8 additions & 0 deletions QuantLib.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1175,6 +1175,7 @@
<ClInclude Include="ql\methods\finitedifferences\operators\fdmg2op.hpp" />
<ClInclude Include="ql\methods\finitedifferences\operators\fdmhestonhullwhiteop.hpp" />
<ClInclude Include="ql\methods\finitedifferences\operators\fdmhestonop.hpp" />
<ClInclude Include="ql\methods\finitedifferences\operators\fdmcirop.hpp" />
<ClInclude Include="ql\methods\finitedifferences\operators\fdmhullwhiteop.hpp" />
<ClInclude Include="ql\methods\finitedifferences\operators\fdmlinearop.hpp" />
<ClInclude Include="ql\methods\finitedifferences\operators\fdmlinearopcomposite.hpp" />
Expand Down Expand Up @@ -1218,6 +1219,7 @@
<ClInclude Include="ql\methods\finitedifferences\solvers\fdmg2solver.hpp" />
<ClInclude Include="ql\methods\finitedifferences\solvers\fdmhestonhullwhitesolver.hpp" />
<ClInclude Include="ql\methods\finitedifferences\solvers\fdmhestonsolver.hpp" />
<ClInclude Include="ql\methods\finitedifferences\solvers\fdmcirsolver.hpp" />
<ClInclude Include="ql\methods\finitedifferences\solvers\fdmhullwhitesolver.hpp" />
<ClInclude Include="ql\methods\finitedifferences\solvers\fdmndimsolver.hpp" />
<ClInclude Include="ql\methods\finitedifferences\solvers\fdmsimple2dbssolver.hpp" />
Expand Down Expand Up @@ -1569,6 +1571,7 @@
<ClInclude Include="ql\pricingengines\vanilla\fdsimplebsswingengine.hpp" />
<ClInclude Include="ql\pricingengines\vanilla\fdstepconditionengine.hpp" />
<ClInclude Include="ql\pricingengines\vanilla\fdvanillaengine.hpp" />
<ClInclude Include="ql\pricingengines\vanilla\fdcirvanillaengine.hpp" />
<ClInclude Include="ql\pricingengines\vanilla\hestonexpansionengine.hpp" />
<ClInclude Include="ql\pricingengines\vanilla\integralengine.hpp" />
<ClInclude Include="ql\pricingengines\vanilla\jumpdiffusionengine.hpp" />
Expand All @@ -1583,6 +1586,7 @@
<ClInclude Include="ql\processes\all.hpp" />
<ClInclude Include="ql\processes\batesprocess.hpp" />
<ClInclude Include="ql\processes\blackscholesprocess.hpp" />
<ClInclude Include="ql\processes\coxingersollrossprocess.hpp" />
<ClInclude Include="ql\processes\endeulerdiscretization.hpp" />
<ClInclude Include="ql\processes\eulerdiscretization.hpp" />
<ClInclude Include="ql\processes\forwardmeasureprocess.hpp" />
Expand Down Expand Up @@ -2293,6 +2297,7 @@
<ClCompile Include="ql\methods\finitedifferences\operators\fdmg2op.cpp" />
<ClCompile Include="ql\methods\finitedifferences\operators\fdmhestonhullwhiteop.cpp" />
<ClCompile Include="ql\methods\finitedifferences\operators\fdmhestonop.cpp" />
<ClCompile Include="ql\methods\finitedifferences\operators\fdmcirop.cpp" />
<ClCompile Include="ql\methods\finitedifferences\operators\fdmhullwhiteop.cpp" />
<ClCompile Include="ql\methods\finitedifferences\operators\fdmlinearoplayout.cpp" />
<ClCompile Include="ql\methods\finitedifferences\operators\fdmlocalvolfwdop.cpp" />
Expand Down Expand Up @@ -2323,6 +2328,7 @@
<ClCompile Include="ql\methods\finitedifferences\solvers\fdmg2solver.cpp" />
<ClCompile Include="ql\methods\finitedifferences\solvers\fdmhestonhullwhitesolver.cpp" />
<ClCompile Include="ql\methods\finitedifferences\solvers\fdmhestonsolver.cpp" />
<ClCompile Include="ql\methods\finitedifferences\solvers\fdmcirsolver.cpp" />
<ClCompile Include="ql\methods\finitedifferences\solvers\fdmhullwhitesolver.cpp" />
<ClCompile Include="ql\methods\finitedifferences\solvers\fdmsimple2dbssolver.cpp" />
<ClCompile Include="ql\methods\finitedifferences\stepconditions\fdmamericanstepcondition.cpp" />
Expand Down Expand Up @@ -2565,6 +2571,7 @@
<ClCompile Include="ql\pricingengines\vanilla\fdsabrvanillaengine.cpp" />
<ClCompile Include="ql\pricingengines\vanilla\fdsimplebsswingengine.cpp" />
<ClCompile Include="ql\pricingengines\vanilla\fdvanillaengine.cpp" />
<ClCompile Include="ql\pricingengines\vanilla\fdcirvanillaengine.cpp" />
<ClCompile Include="ql\pricingengines\vanilla\hestonexpansionengine.cpp" />
<ClCompile Include="ql\pricingengines\vanilla\integralengine.cpp" />
<ClCompile Include="ql\pricingengines\vanilla\jumpdiffusionengine.cpp" />
Expand All @@ -2574,6 +2581,7 @@
<ClCompile Include="ql\pricingengines\vanilla\mchestonhullwhiteengine.cpp" />
<ClCompile Include="ql\processes\batesprocess.cpp" />
<ClCompile Include="ql\processes\blackscholesprocess.cpp" />
<ClCompile Include="ql\processes\coxingersollrossprocess.cpp" />
<ClCompile Include="ql\processes\endeulerdiscretization.cpp" />
<ClCompile Include="ql\processes\eulerdiscretization.cpp" />
<ClCompile Include="ql\processes\forwardmeasureprocess.cpp" />
Expand Down
24 changes: 24 additions & 0 deletions QuantLib.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -2241,6 +2241,9 @@
<ClInclude Include="ql\processes\blackscholesprocess.hpp">
<Filter>processes</Filter>
</ClInclude>
<ClInclude Include="ql\processes\coxingersollrossprocess.hpp">
<Filter>processes</Filter>
</ClInclude>
<ClInclude Include="ql\processes\endeulerdiscretization.hpp">
<Filter>processes</Filter>
</ClInclude>
Expand Down Expand Up @@ -3892,6 +3895,9 @@
<ClInclude Include="ql\pricingengines\vanilla\fdhestonvanillaengine.hpp">
<Filter>pricingengines\vanilla</Filter>
</ClInclude>
<ClInclude Include="ql\pricingengines\vanilla\fdcirvanillaengine.hpp">
<Filter>pricingengines\vanilla</Filter>
</ClInclude>
<ClInclude Include="ql\methods\finitedifferences\meshers\fdm1dmesher.hpp">
<Filter>methods\finitedifferences\meshers</Filter>
</ClInclude>
Expand Down Expand Up @@ -3949,6 +3955,9 @@
<ClInclude Include="ql\methods\finitedifferences\operators\fdmhestonop.hpp">
<Filter>methods\finitedifferences\operators</Filter>
</ClInclude>
<ClInclude Include="ql\methods\finitedifferences\operators\fdmcirop.hpp">
<Filter>methods\finitedifferences\operators</Filter>
</ClInclude>
<ClInclude Include="ql\methods\finitedifferences\solvers\fdmbatessolver.hpp">
<Filter>methods\finitedifferences\solvers</Filter>
</ClInclude>
Expand All @@ -3961,6 +3970,9 @@
<ClInclude Include="ql\methods\finitedifferences\solvers\fdmhestonsolver.hpp">
<Filter>methods\finitedifferences\solvers</Filter>
</ClInclude>
<ClInclude Include="ql\methods\finitedifferences\solvers\fdmcirsolver.hpp">
<Filter>methods\finitedifferences\solvers</Filter>
</ClInclude>
<ClInclude Include="ql\methods\finitedifferences\meshers\fdmblackscholesmesher.hpp">
<Filter>methods\finitedifferences\meshers</Filter>
</ClInclude>
Expand Down Expand Up @@ -5445,6 +5457,9 @@
<ClCompile Include="ql\processes\blackscholesprocess.cpp">
<Filter>processes</Filter>
</ClCompile>
<ClCompile Include="ql\processes\coxingersollrossprocess.cpp">
<Filter>processes</Filter>
</ClCompile>
<ClCompile Include="ql\processes\endeulerdiscretization.cpp">
<Filter>processes</Filter>
</ClCompile>
Expand Down Expand Up @@ -6621,6 +6636,9 @@
<ClCompile Include="ql\pricingengines\vanilla\fdhestonvanillaengine.cpp">
<Filter>pricingengines\vanilla</Filter>
</ClCompile>
<ClCompile Include="ql\pricingengines\vanilla\fdcirvanillaengine.cpp">
<Filter>pricingengines\vanilla</Filter>
</ClCompile>
<ClCompile Include="ql\methods\finitedifferences\operators\fdm2dblackscholesop.cpp">
<Filter>methods\finitedifferences\operators</Filter>
</ClCompile>
Expand Down Expand Up @@ -6666,6 +6684,9 @@
<ClCompile Include="ql\methods\finitedifferences\operators\fdmhestonop.cpp">
<Filter>methods\finitedifferences\operators</Filter>
</ClCompile>
<ClCompile Include="ql\methods\finitedifferences\operators\fdmcirop.cpp">
<Filter>methods\finitedifferences\operators</Filter>
</ClCompile>
<ClCompile Include="ql\methods\finitedifferences\solvers\fdmbatessolver.cpp">
<Filter>methods\finitedifferences\solvers</Filter>
</ClCompile>
Expand All @@ -6678,6 +6699,9 @@
<ClCompile Include="ql\methods\finitedifferences\solvers\fdmhestonsolver.cpp">
<Filter>methods\finitedifferences\solvers</Filter>
</ClCompile>
<ClCompile Include="ql\methods\finitedifferences\solvers\fdmcirsolver.cpp">
<Filter>methods\finitedifferences\solvers</Filter>
</ClCompile>
<ClCompile Include="ql\methods\finitedifferences\meshers\fdmblackscholesmesher.cpp">
<Filter>methods\finitedifferences\meshers</Filter>
</ClCompile>
Expand Down
8 changes: 8 additions & 0 deletions ql/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,7 @@ set(QuantLib_SRC
methods/finitedifferences/operators/fdmg2op.cpp
methods/finitedifferences/operators/fdmhestonhullwhiteop.cpp
methods/finitedifferences/operators/fdmhestonop.cpp
methods/finitedifferences/operators/fdmcirop.cpp
methods/finitedifferences/operators/fdmhullwhiteop.cpp
methods/finitedifferences/operators/fdmlinearoplayout.cpp
methods/finitedifferences/operators/fdmlocalvolfwdop.cpp
Expand Down Expand Up @@ -483,6 +484,7 @@ set(QuantLib_SRC
methods/finitedifferences/solvers/fdmg2solver.cpp
methods/finitedifferences/solvers/fdmhestonhullwhitesolver.cpp
methods/finitedifferences/solvers/fdmhestonsolver.cpp
methods/finitedifferences/solvers/fdmcirsolver.cpp
methods/finitedifferences/solvers/fdmhullwhitesolver.cpp
methods/finitedifferences/solvers/fdmsimple2dbssolver.cpp
methods/finitedifferences/stepconditions/fdmamericanstepcondition.cpp
Expand Down Expand Up @@ -722,6 +724,7 @@ set(QuantLib_SRC
pricingengines/vanilla/exponentialfittinghestonengine.cpp
pricingengines/vanilla/fdbatesvanillaengine.cpp
pricingengines/vanilla/fdblackscholesvanillaengine.cpp
pricingengines/vanilla/fdcirvanillaengine.cpp
pricingengines/vanilla/fdcevvanillaengine.cpp
pricingengines/vanilla/fdhestonhullwhitevanillaengine.cpp
pricingengines/vanilla/fdhestonvanillaengine.cpp
Expand Down Expand Up @@ -752,6 +755,7 @@ set(QuantLib_SRC
processes/merton76process.cpp
processes/mfstateprocess.cpp
processes/ornsteinuhlenbeckprocess.cpp
processes/coxingersollrossprocess.cpp
processes/squarerootprocess.cpp
processes/stochasticprocessarray.cpp
quotes/eurodollarfuturesquote.cpp
Expand Down Expand Up @@ -1602,6 +1606,7 @@ set(QuantLib_HDR
methods/finitedifferences/operators/fdmg2op.hpp
methods/finitedifferences/operators/fdmhestonhullwhiteop.hpp
methods/finitedifferences/operators/fdmhestonop.hpp
methods/finitedifferences/operators/fdmcirop.hpp
methods/finitedifferences/operators/fdmhullwhiteop.hpp
methods/finitedifferences/operators/fdmlinearop.hpp
methods/finitedifferences/operators/fdmlinearopcomposite.hpp
Expand Down Expand Up @@ -1645,6 +1650,7 @@ set(QuantLib_HDR
methods/finitedifferences/solvers/fdmg2solver.hpp
methods/finitedifferences/solvers/fdmhestonhullwhitesolver.hpp
methods/finitedifferences/solvers/fdmhestonsolver.hpp
methods/finitedifferences/solvers/fdmcirsolver.hpp
methods/finitedifferences/solvers/fdmhullwhitesolver.hpp
methods/finitedifferences/solvers/fdmndimsolver.hpp
methods/finitedifferences/solvers/fdmsimple2dbssolver.hpp
Expand Down Expand Up @@ -1988,6 +1994,7 @@ set(QuantLib_HDR
pricingengines/vanilla/fdbatesvanillaengine.hpp
pricingengines/vanilla/fdbermudanengine.hpp
pricingengines/vanilla/fdblackscholesvanillaengine.hpp
pricingengines/vanilla/fdcirvanillaengine.hpp
pricingengines/vanilla/fdcevvanillaengine.hpp
pricingengines/vanilla/fdconditions.hpp
pricingengines/vanilla/fddividendamericanengine.hpp
Expand Down Expand Up @@ -2032,6 +2039,7 @@ set(QuantLib_HDR
processes/merton76process.hpp
processes/mfstateprocess.hpp
processes/ornsteinuhlenbeckprocess.hpp
processes/coxingersollrossprocess.hpp
processes/squarerootprocess.hpp
processes/stochasticprocessarray.hpp
qldefines.hpp
Expand Down
2 changes: 2 additions & 0 deletions ql/methods/finitedifferences/operators/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ this_include_HEADERS = \
fdmg2op.hpp \
fdmhestonhullwhiteop.hpp \
fdmhestonop.hpp \
fdmcirop.hpp \
fdmhullwhiteop.hpp \
fdmlinearopcomposite.hpp \
fdmlocalvolfwdop.hpp \
Expand All @@ -35,6 +36,7 @@ cpp_files = \
fdmg2op.cpp \
fdmhestonhullwhiteop.cpp \
fdmhestonop.cpp \
fdmcirop.cpp \
fdmhullwhiteop.cpp \
fdmlinearoplayout.cpp \
fdmlocalvolfwdop.cpp \
Expand Down
1 change: 1 addition & 0 deletions ql/methods/finitedifferences/operators/all.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#include <ql/methods/finitedifferences/operators/fdmg2op.hpp>
#include <ql/methods/finitedifferences/operators/fdmhestonhullwhiteop.hpp>
#include <ql/methods/finitedifferences/operators/fdmhestonop.hpp>
#include <ql/methods/finitedifferences/operators/fdmcirop.hpp>
#include <ql/methods/finitedifferences/operators/fdmhullwhiteop.hpp>
#include <ql/methods/finitedifferences/operators/fdmlinearopcomposite.hpp>
#include <ql/methods/finitedifferences/operators/fdmlocalvolfwdop.hpp>
Expand Down
Loading

0 comments on commit f56c717

Please sign in to comment.