There are several types of quantitative models used in finance, and they serve different purposes. Some of the main types are:
1. Black-Scholes model: This model is used to determine the price of European-style stock options. It assumes that stock prices follow a geometric Brownian motion and that options can be continuously traded. The Black-Scholes model is widely used in finance for pricing options and has numerous applications, such as valuing employee stock options and creating structured products.
Cβ=βS0N(d1)β
ββ
Keβ
ββ
rTN(d2)
where C is the call option price, S0 is the stock price, K is the exercise price, r is the risk-free interest rate, T is the time to maturity, and N(d) is the cumulative distribution function of the standard normal distribution, with:
$$d_1 = \frac{ln(\frac{S_0}{K}) + (r + \frac{\sigma^2}{2})T}{\sigma \sqrt{T}}$$
and
$$d_2 = d_1 - \sigma\sqrt{T}$$
2. Vasicek model: This model is used to model the interest rate process, and it assumes that interest rates follow a mean-reverting process. The Vasicek model is commonly used in bond pricing and interest rate derivative pricing.
drtβ=βa(bβ
ββ
rt)dtβ
+β
ΟdWt
where rt is the interest rate at time t, a is the rate of mean reversion, b is the long-term mean interest rate, Ο is the volatility of the interest rate process, and dWt is a Brownian motion.
3. Value-at-Risk (VaR) model: This model is used to estimate the potential losses on a portfolio over a given time period with a specified level of confidence. VaR is widely used in risk management to quantify and manage market risk.
4. Monte Carlo simulation: This model is used to generate data by simulating random events. This technique is widely used in finance for option pricing, risk management, and investment analysis.
# Example of Monte Carlo simulation in option pricing
import math
import numpy as np
# Define input parameters
S0 = 100 # initial stock price
K = 105 # strike price
T = 1.0 # time to maturity
r = 0.05 # risk-free interest rate
sigma = 0.2 # volatility
# Define the number of simulations
n_sim = 100000
# Generate simulated stock prices
Z = np.random.standard_normal(n_sim)
ST = S0 * np.exp((r - 0.5 * sigma**2) * T + sigma * math.sqrt(T) * Z)
# Calculate option payoff
hT = np.maximum(ST - K, 0)
# Calculate option price
C0 = math.exp(-r * T) * np.mean(hT)
print("Option price =", C0)