Skip to content

Commit 8ce9442

Browse files
committed
added investopedia link
1 parent ce065b4 commit 8ce9442

File tree

1 file changed

+21
-10
lines changed
  • content/posts/finance/monte_carlo/Black-Scholes

1 file changed

+21
-10
lines changed

content/posts/finance/monte_carlo/Black-Scholes/index.md

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,14 @@ hero: Option-Pricing-Models-1.jpg
1212
tags: ["Finance", "Options", "Statistics"]
1313
categories: ["Finance"]
1414
---
15-
1615
## 1. Introduction
1716

1817
In the dynamic world of finance, options play a crucial role in risk management, speculation, and portfolio optimization. An option is a contract that gives the holder the right, but not the obligation, to buy (call option) or sell (put option) an underlying asset at a predetermined price (strike price) within a specific time frame. The challenge lies in accurately pricing these financial instruments, given the uncertainties in market movements.
1918

2019
Traditional analytical methods, while powerful, often struggle with complex option structures or realistic market conditions. This is where Monte Carlo simulation steps in, offering a flexible and robust approach to option pricing. By leveraging the power of computational methods, Monte Carlo simulations can handle a wide array of option types and market scenarios, making it an indispensable tool in a quantitative analyst's toolkit.
2120

21+
For further explanation about *options pricing*, check [Investopedia](https://www.investopedia.com/articles/optioninvestor/07/options_beat_market.asp).
22+
2223
## 2. The Black-Scholes Model
2324

2425
Before diving into Monte Carlo methods, it's crucial to understand the Black-Scholes model, a cornerstone in option pricing theory. Developed by Fischer Black, Myron Scholes, and Robert Merton in the early 1970s, this model revolutionized the field of quantitative finance.
@@ -29,12 +30,17 @@ For a European call option, the Black-Scholes formula is:
2930

3031
$$
3132
C = S₀N(d_1) - Ke^{-rT}N(d_2)
33+
3234
$$
35+
3336
Where:
37+
3438
$$
3539
d_1 = \frac{(ln(S_0/K) + (r + σ²/2)T)}{(σ\sqrt{T})}, \quad
3640
d_2 = d_1 - \sigma \sqrt{T}
41+
3742
$$
43+
3844
- C: Call option price
3945
- S₀: Current stock price
4046
- K: Strike price
@@ -60,15 +66,10 @@ The Black-Scholes model rests on several key assumptions:
6066
While groundbreaking, the Black-Scholes model has several limitations:
6167

6268
1. **Constant Volatility**: The model assumes volatility is constant, which doesn't hold in real markets where volatility can change dramatically.
63-
6469
2. **Log-normal Distribution**: It assumes stock returns are normally distributed, which doesn't account for the fat-tailed distributions observed in reality.
65-
6670
3. **Continuous Trading**: The model assumes continuous trading is possible, which isn't realistic in practice.
67-
6871
4. **No Dividends**: It doesn't account for dividends, which can significantly affect option prices.
69-
7072
5. **European Options Only**: The original model only prices European-style options, not American or exotic options.
71-
7273
6. **Risk-free Rate**: It assumes a constant, known risk-free rate, which can vary in reality.
7374

7475
These limitations highlight why more flexible approaches like Monte Carlo simulation are valuable in option pricing.
@@ -90,6 +91,7 @@ dS = μSdt + σSdW
9091
```
9192

9293
Where:
94+
9395
- S: Stock price
9496
- μ: Expected return
9597
- σ: Volatility
@@ -109,14 +111,14 @@ def monte_carlo_option_pricing(S0, K, T, r, sigma, num_simulations, num_steps):
109111
dt = T / num_steps
110112
paths = np.zeros((num_simulations, num_steps + 1))
111113
paths[:, 0] = S0
112-
114+
113115
for t in range(1, num_steps + 1):
114116
z = np.random.standard_normal(num_simulations)
115117
paths[:, t] = paths[:, t-1] * np.exp((r - 0.5 * sigma**2) * dt + sigma * np.sqrt(dt) * z)
116-
118+
117119
option_payoffs = np.maximum(paths[:, -1] - K, 0)
118120
option_price = np.exp(-r * T) * np.mean(option_payoffs)
119-
121+
120122
return option_price, paths
121123

122124
# Example usage
@@ -154,6 +156,10 @@ plt.ylabel("Frequency")
154156
plt.show()
155157
```
156158

159+
{{< img src="\posts\finance\monte_carlo\Black-Scholes\images\simulation_path.png" align="center" title="Results">}}
160+
161+
{{< img src="/posts/finance/monte_carlo/Black-Scholes/images/simulation_histogram.png" align="center" title="Results">}}
162+
157163
These visualizations show the range of possible stock price paths and the distribution of final stock prices, providing insight into the option's potential outcomes.
158164

159165
## 6. Comparison with Analytical Solutions
@@ -176,6 +182,12 @@ print(f"Difference: {abs(bs_price - price):.4f}")
176182

177183
The difference between the two methods gives us an idea of the Monte Carlo simulation's accuracy.
178184

185+
> Black-Scholes price: 11.270
186+
>
187+
> Monte Carlo price: 11.445
188+
>
189+
> Difference: 0.1744
190+
179191
## 7. Advanced Topics and Extensions
180192

181193
Monte Carlo simulation's flexibility allows for various extensions:
@@ -192,4 +204,3 @@ Monte Carlo simulation offers a powerful and flexible approach to option pricing
192204
The method's ability to incorporate various market dynamics, such as changing volatility or dividend payments, makes it invaluable in real-world financial modeling. As computational power continues to increase, Monte Carlo methods are likely to play an even more significant role in quantitative finance.
193205

194206
However, it's important to remember that any model, including Monte Carlo simulation, is only as good as its underlying assumptions. Careful consideration of these assumptions and regular validation against market data remain crucial in applying these techniques effectively in practice.
195-

0 commit comments

Comments
 (0)