Project containing the implementations of quantitative finance models.
Models to be implemented:
- Black-Scholes
- CAPM
- VaR (Value at Risk)
- Modern Portfolio Theory
For the first three we plan to create two implementations, one classical and the other one using Monte-Carlo simulations.
We need the following
- Setup a GitHub repository.
- A way of getting financial data in C++
- A library for Monte Carlo simulations in C++ (maybe we don't even need the library; TBD, we could implement ourselves).
- A library for regressions, and basic matrix operations (potentially from boost).
- Implement the actual models
- Black Scholes
- CAPM
- VaR (Value at Risk)
- Modern Portfolio Theory
- Implement the Monte Carlo versions of the first three.
We need to have a components design.
- Class
Option
. - Derived classes for
CallOption
andPutOption
inheriting fromOption
. - An abstract class
Pricing
class Pricing {
public:
Pricing(CallOption);
getPrice
};
int main() {
auto call_option = CallOption();
auto call_option_pricing = Pricing(call_option);
call_option_pricing.getPrice();
}
- Derived class
OptionPricing
. - Then use the Strategy design pattern for the different pricing models.