@@ -15,6 +15,7 @@ set(CMAKE_TOOLCHAIN_FILE "/Users/anthony/.vcpkg-clion/vcpkg/scripts/buildsystems
15
15
CACHE STRING "Vcpkg toolchain file" )
16
16
17
17
find_package (Boost REQUIRED COMPONENTS random)
18
+ find_package (Eigen3 REQUIRED)
18
19
19
20
# Check if random has been found before compiling src
20
21
if (Boost_FOUND)
@@ -39,24 +40,18 @@ add_library(marketdata SHARED
39
40
src/market_data/market_data.cpp
40
41
src/market_data/market_data_observer.cpp
41
42
src/market_data/stock_data.cpp
43
+ include /solver/monte_carlo/builder/mc_builder_american.h
42
44
)
43
45
44
46
# Create dynamic library for payoff
45
47
add_library (payoff SHARED
46
48
src/payoff/base_payoff.cpp
49
+ src/payoff/payoff_floating_strike_lookback.cpp
47
50
src/payoff/single_strike/base_payoff_single_strike.cpp
48
- src/payoff/single_strike/base_payoff_vanilla.cpp
49
- src/payoff/single_strike/payoff_vanilla_call.cpp
50
- src/payoff/single_strike/payoff_vanilla_put.cpp
51
- src/payoff/single_strike/base_payoff_digital.cpp
52
- src/payoff/single_strike/payoff_digital_call.cpp
53
- src/payoff/single_strike/payoff_digital_put.cpp
51
+ src/payoff/single_strike/payoff_vanilla.cpp
52
+ src/payoff/single_strike/payoff_digital.cpp
54
53
src/payoff/double_strikes/base_payoff_double_strikes.cpp
55
54
src/payoff/double_strikes/payoff_double_digital.cpp
56
- # Factories
57
- src/payoff/single_strike/factory_payoff_vanilla.cpp
58
- src/payoff/single_strike/factory_payoff_digital.cpp
59
- src/payoff/double_strikes/factory_payoff_double_digital.cpp
60
55
)
61
56
62
57
# Create dynamic library for option, linking against marketdata and payoff
@@ -72,42 +67,50 @@ add_library(option SHARED
72
67
src/option/path_dependent/american_option.cpp
73
68
src/option/path_dependent/asian_option.cpp
74
69
src/option/path_dependent/barrier_option.cpp
70
+ src/option/path_dependent/lookback_option.cpp
75
71
# Factories
76
- src/option/factory_option.cpp
77
72
src/option/single_path/factory_european_option.cpp
78
73
src/option/single_path/factory_digital_option.cpp
79
74
src/option/single_path/factory_double_digital_option.cpp
80
75
src/option/path_dependent/factory_american_option.cpp
81
76
src/option/path_dependent/factory_asian_option.cpp
82
77
src/option/path_dependent/factory_barrier_option.cpp
78
+ src/option/path_dependent/factory_lookback_option.cpp
83
79
)
84
80
85
81
# Create dynamic library for marketdata
86
82
add_library (solver SHARED
87
83
src/solver/base_solver.cpp
88
84
src/solver/monte_carlo/mc_solver.cpp
89
- include /solver/monte_carlo/mc_base_strategy.h
90
- src/solver/monte_carlo/mc_base_strategy.cpp
91
- include /solver/monte_carlo/stock_price_model.h
92
85
src/solver/monte_carlo/stock_price_model.cpp
93
86
src/solver/monte_carlo/gbm_stock_price_model.cpp
94
- include /solver/monte_carlo/gbm_stock_price_model.h
95
- include /solver/monte_carlo/generator.h
96
-
87
+ src/solver/monte_carlo/base_mc.cpp
88
+ src/solver/monte_carlo/mc_single_path.cpp
89
+ src/solver/monte_carlo/base_mc_path_dependent.cpp
90
+ src/solver/monte_carlo/mc_asian.cpp
91
+ src/solver/monte_carlo/mc_barrier.cpp
92
+ src/solver/monte_carlo/mc_lookback.cpp
93
+ src/solver/monte_carlo/mc_american.cpp
94
+ src/solver/monte_carlo/builder/base_mc_builder.cpp
95
+ src/solver/monte_carlo/builder/mc_builder_single_path.cpp
96
+ src/solver/monte_carlo/builder/base_mc_builder_path_dependent.cpp
97
+ src/solver/monte_carlo/builder/mc_builder_asian.cpp
98
+ src/solver/monte_carlo/builder/mc_builder_barrier.cpp
99
+ src/solver/monte_carlo/builder/mc_builder_lookback.cpp
100
+ src/solver/monte_carlo/builder/mc_builder_american.cpp
97
101
)
98
102
99
- # Link random library to the solver ONLY
100
- target_link_libraries (solver PUBLIC Boost::random)
101
-
102
103
# Link the option library against marketdata and payoff
103
104
target_link_libraries (option PUBLIC marketdata payoff)
104
105
106
+ # Link random library to the solver ONLY
107
+ target_link_libraries (solver PUBLIC option Boost::random Eigen3::Eigen)
108
+
105
109
# Create main executable
106
110
add_executable (Option_pricer main.cpp)
107
111
108
112
# Link the main executable to our dynamic libraries
109
113
target_link_libraries (Option_pricer PUBLIC marketdata payoff option solver)
110
- #target_link_libraries(Option_pricer marketdata payoff option solver)
111
114
112
115
# Enable testing and add the tests directory
113
116
enable_testing ()
0 commit comments