ภาคปฏิบัติ · กลุ่ม 2

ภาคปฏิบัติ FE
อนุพันธ์ & การตั้งราคา

ส่วนที่พาจาก "เข้าใจ" ไปสู่ "ทำได้จริง" — พิสูจน์สูตรหลัก คลังโจทย์ 18 ข้อพร้อมเฉลยทีละขั้น แล็บโค้ด Python รันได้จริง และข้อสอบจำลองจับเวลา ครอบคลุม M4–M6

เรียบเรียงโดยผู้เขียน · Norms OS · ใช้คู่กับ FE ฉบับมหาวิทยาลัย โมดูล 4–6 · เฉลยทุกข้อตรวจด้วย Python

🎯 ทำไมต้องมีภาคปฏิบัติ

เกรดในมหาวิทยาลัยไม่ได้วัดว่า "อ่านเข้าใจ" แต่วัดว่า "ทำโจทย์ได้ · พิสูจน์ได้ · เขียนโค้ดได้" ภายใต้เวลาจำกัด ภาคปฏิบัตินี้คือสนามซ้อมจริง — เนื้อหาทฤษฎีอยู่ใน FE ฉบับมหาวิทยาลัย โมดูล 4–6

  1. อ่านทฤษฎีก่อน (โมดูล 4–6 ในเล่มมหาวิทยาลัย) ให้เข้าใจนิยามและสูตร
  2. ทำโจทย์เอง ด้วยกระดาษ+เครื่องคิดเลข ก่อนกดดูเฉลย — นี่คือจุดที่เกิดการเรียนรู้จริง
  3. กดดูเฉลยทีละขั้น เทียบวิธีคิด ถ้าผิดให้กลับไปทบทวนทฤษฎีจุดนั้น
  4. รันแล็บ Python เพื่อเห็นสูตรกลายเป็นเครื่องมือจริง
  5. จับเวลาทำข้อสอบจำลอง 90 นาที เหมือนสอบจริง
⚠️ เนื้อหานี้เพื่อ การศึกษาและฝึกคิดเชิงปริมาณ ไม่ใช่คำแนะนำการลงทุนหรือสัญญาณซื้อขาย

สารบัญภาคปฏิบัติ

📐 A · ภาคพิสูจน์สูตร — Put-Call Parity · Binomial→ความเสี่ยงเป็นกลาง · BSM PDE · ค่ากรีก ✍️ B · คลังโจทย์ 18 ข้อ — M4 อนุพันธ์ · M5 BSM · M6 กรีก/เฮดจ์ (เฉลยทีละขั้น) 💻 C · แล็บ Python 5 ชุด — BSM pricer · กรีก · Binomial · Monte Carlo · Delta-hedging ⏱️ D · ข้อสอบจำลอง — 8 ข้อ จับเวลา 90 นาที + เฉลย
A

ภาคพิสูจน์สูตร

เข้าใจ "ที่มา" ของสูตร ไม่ใช่แค่ท่องจำ — การพิสูจน์ได้คือสิ่งที่แยกเกรด A จากเกรดผ่าน

การพิสูจน์ 1 · Put-Call Parity ด้วยอาร์บิทราจ (No-Arbitrage)

เป้าหมาย: พิสูจน์ว่า

$$C + Ke^{-rT} = P + S_0$$

ซึ่งเชื่อมราคาคอล $C$, ราคาพุต $P$, ราคาหุ้นวันนี้ $S_0$, ราคาใช้สิทธิ $K$, อัตราดอกเบี้ยไร้ความเสี่ยง $r$, และเวลาหมดอายุ $T$ เข้าด้วยกัน

ขั้นที่ 1 — สร้างพอร์ตสองชุดที่มี Payoff เท่ากันทุกกรณี

พอร์ต A: ซื้อคอลออปชั่น 1 หน่วย + ฝากเงิน $Ke^{-rT}$ วันนี้ (เงินสดนี้จะเติบโตเป็น $K$ ณ เวลา $T$ ด้วยอัตรา $r$)

พอร์ต B: ซื้อพุตออปชั่น 1 หน่วย + ซื้อหุ้น 1 หน่วย (มูลค่า $S_0$ วันนี้)

ขั้นที่ 2 — วิเคราะห์ Payoff ณ เวลา $T$ ทุกกรณี

กรณีที่ 1: $S_T > K$ (หุ้นขึ้นเกินราคาใช้สิทธิ)

$$\text{พอร์ต A: } (S_T - K) + K = S_T$$
$$\text{พอร์ต B: } 0 + S_T = S_T$$

คอลมีค่า $S_T - K$ (ใช้สิทธิ์), เงินสดโตเป็น $K$; พุตหมดอายุไร้ค่า, หุ้นมีค่า $S_T$ — ทั้งสองพอร์ตได้ $S_T$

กรณีที่ 2: $S_T \le K$ (หุ้นต่ำกว่าหรือเท่าราคาใช้สิทธิ)

$$\text{พอร์ต A: } 0 + K = K$$
$$\text{พอร์ต B: } (K - S_T) + S_T = K$$

คอลหมดอายุไร้ค่า, เงินสดโตเป็น $K$; พุตมีค่า $K - S_T$, หุ้นมีค่า $S_T$ — ทั้งสองพอร์ตได้ $K$

สรุปได้ว่า payoff ณ เวลา $T$ ของทั้งสองพอร์ตเท่ากับ $\max(S_T, K)$ ในทุกกรณีโดยไม่มีข้อยกเว้น

ขั้นที่ 3 — หลักไม่มีอาร์บิทราจ (No-Arbitrage)

หากพอร์ตสองชุดให้ผลตอบแทนเหมือนกันทุกกรณีในอนาคต ราคาวันนี้ต้องเท่ากัน มิฉะนั้นนักลงทุนสามารถทำกำไรไร้ความเสี่ยงได้ทันที ตัวอย่างเช่น ถ้าพอร์ต A ถูกกว่าพอร์ต B ก็ซื้อ A และขาย short B พร้อมกัน ได้กำไรแน่นอนโดยไม่ต้องใช้เงินสุทธิ ซึ่งเป็นไปไม่ได้ในตลาดที่มีประสิทธิภาพ ดังนั้น:

$$C + Ke^{-rT} = P + S_0 \quad \blacksquare$$

การพิสูจน์ 2 · แบบจำลองทวินามขั้นเดียว → ความน่าจะเป็นความเสี่ยงเป็นกลาง

เป้าหมาย: พิสูจน์ที่มาของ risk-neutral probability

$$p = \frac{e^{r\Delta t} - d}{u - d}$$

ขั้นที่ 1 — ตั้งสมมติฐาน

ในช่วงเวลา $\Delta t$ ราคาหุ้น $S_0$ สามารถเปลี่ยนได้สองทาง:

$$S_0 \to \begin{cases} S_0 u & \text{(ขึ้น, ด้วยแฟกเตอร์ } u > 1\text{)} \\ S_0 d & \text{(ลง, ด้วยแฟกเตอร์ } d < 1\text{)} \end{cases}$$

ออปชั่นมี payoff ตามสถานะ: $f_u$ เมื่อหุ้นขึ้น และ $f_d$ เมื่อหุ้นลง เงื่อนไข $d < e^{r\Delta t} < u$ ต้องเป็นจริงเพื่อป้องกันอาร์บิทราจ

ขั้นที่ 2 — สร้าง Replicating Portfolio

สร้างพอร์ตจำลองด้วยการถือหุ้น $\Delta$ หน่วย และกู้/ฝากเงิน $B$ หน่วยที่อัตรา $r$ ให้ payoff เท่าออปชั่นทั้งสองสถานะ:

$$\Delta \cdot S_0 u + B e^{r\Delta t} = f_u$$
$$\Delta \cdot S_0 d + B e^{r\Delta t} = f_d$$

ขั้นที่ 3 — แก้หา $\Delta$ และ $B$

นำสมการสองบรรทัดลบกัน:

$$\Delta(S_0 u - S_0 d) = f_u - f_d \implies \Delta = \frac{f_u - f_d}{S_0(u - d)}$$

แทนกลับเพื่อหา $B$:

$$B = e^{-r\Delta t}\frac{u f_d - d f_u}{u - d}$$

ขั้นที่ 4 — คำนวณราคาออปชั่นวันนี้

ราคาออปชั่นเท่ากับต้นทุนพอร์ตจำลอง $f = \Delta S_0 + B$ แทนค่า $\Delta$ และ $B$:

$$f = \frac{f_u - f_d}{u - d} + e^{-r\Delta t}\frac{u f_d - d f_u}{u - d}$$

จัดรูปโดยนำ $e^{-r\Delta t}$ ออกมา:

$$f = e^{-r\Delta t}\left[\frac{e^{r\Delta t} - d}{u - d} f_u + \frac{u - e^{r\Delta t}}{u - d} f_d\right]$$

ขั้นที่ 5 — นิยาม Risk-Neutral Probability

กำหนดให้

$$p = \frac{e^{r\Delta t} - d}{u - d}, \qquad 1 - p = \frac{u - e^{r\Delta t}}{u - d}$$

ได้รูปสุดท้าย:

$$f = e^{-r\Delta t}\left[p\, f_u + (1-p)\, f_d\right] \quad \blacksquare$$

ข้อสังเกตสำคัญ

$p$ ที่ได้ ไม่ใช่ความน่าจะเป็นจริงในตลาด ที่หุ้นจะขึ้น — มันคือความน่าจะเป็นในโลกสมมติที่นักลงทุนทุกคนไม่ต้องการผลตอบแทนเพิ่มจากความเสี่ยง (risk-neutral world) ทุกสินทรัพย์ในโลกนั้นโตด้วยอัตรา $r$ พอดี ความน่าจะเป็นจริงในตลาดถูกแทนที่ด้วย $p$ เพื่อให้คิดลดกระแสเงินสดด้วย $r$ ได้โดยตรง

การพิสูจน์ 3 · BSM PDE จากพอร์ตเฮดจ์ + บทตั้งอิโต (Sketch)

เป้าหมาย: แสดงที่มาของ Black-Scholes-Merton Partial Differential Equation

$$\frac{\partial V}{\partial t} + \frac{1}{2}\sigma^2 S^2 \frac{\partial^2 V}{\partial S^2} + rS\frac{\partial V}{\partial S} - rV = 0$$

ขั้นที่ 1 — สมมติฐาน: ราคาหุ้นเป็น Geometric Brownian Motion (GBM)

ราคาหุ้น $S$ เปลี่ยนแปลงตามกระบวนการสุ่ม:

$$dS = \mu S\, dt + \sigma S\, dW$$

โดย $\mu$ คืออัตราผลตอบแทนเฉลี่ย, $\sigma$ คือความผันผวน (volatility), และ $dW$ คือ Brownian increment ที่ $dW \sim \mathcal{N}(0, dt)$

ขั้นที่ 2 — ใช้บทตั้งอิโต (Itô's Lemma) กับ $V(S, t)$

เนื่องจาก $S$ มีพจน์สุ่ม การขยาย Taylor ธรรมดาไม่พอ ต้องใช้บทตั้งอิโตซึ่งเพิ่มพจน์ลำดับสองของ $dW$ (เพราะ $(dW)^2 = dt$ ไม่เล็กจนตัดทิ้งได้):

$$dV = \frac{\partial V}{\partial t}\, dt + \frac{\partial V}{\partial S}\, dS + \frac{1}{2}\frac{\partial^2 V}{\partial S^2}(dS)^2$$

แทน $dS$ และใช้ $(dW)^2 = dt$, $(dt)^2 \approx 0$, $dt\, dW \approx 0$ ได้:

$$dV = \left(\frac{\partial V}{\partial t} + \mu S\frac{\partial V}{\partial S} + \frac{1}{2}\sigma^2 S^2\frac{\partial^2 V}{\partial S^2}\right)dt + \sigma S\frac{\partial V}{\partial S}\, dW$$

ขั้นที่ 3 — สร้างพอร์ตเฮดจ์ $\Pi$ ที่ปราศจากความเสี่ยง

กำหนดพอร์ต: ถือออปชั่น 1 หน่วย และ short หุ้น $\Delta$ หน่วย:

$$\Pi = V - \Delta S$$

การเปลี่ยนแปลง:

$$d\Pi = dV - \Delta\, dS$$

เลือก $\Delta = \dfrac{\partial V}{\partial S}$ พจน์ $dW$ ทั้งหมดหักล้างกัน:

$$d\Pi = \left(\frac{\partial V}{\partial t} + \frac{1}{2}\sigma^2 S^2\frac{\partial^2 V}{\partial S^2}\right)dt$$

พอร์ตนี้ไม่มีพจน์ $dW$ แล้ว — แปลว่าไม่มีความเสี่ยงจากการเคลื่อนไหวของราคาหุ้นอีกต่อไป

ขั้นที่ 4 — หลักไม่มีอาร์บิทราจ: พอร์ตไร้ความเสี่ยงต้องโตด้วย $r$

$$d\Pi = r\Pi\, dt = r(V - \Delta S)\, dt = r\!\left(V - \frac{\partial V}{\partial S} S\right)dt$$

ขั้นที่ 5 — จัดรูปได้ BSM PDE

เท่ากันทั้งสองด้าน จัดรูป:

$$\frac{\partial V}{\partial t} + \frac{1}{2}\sigma^2 S^2\frac{\partial^2 V}{\partial S^2} = r\!\left(V - S\frac{\partial V}{\partial S}\right)$$
$$\boxed{\frac{\partial V}{\partial t} + \frac{1}{2}\sigma^2 S^2\frac{\partial^2 V}{\partial S^2} + rS\frac{\partial V}{\partial S} - rV = 0} \quad \blacksquare$$

หัวใจของ Risk-Neutral Pricing

สังเกตว่า $\mu$ (อัตราผลตอบแทนที่นักลงทุนต้องการจริง) หายไปอย่างสิ้นเชิงจาก PDE ขั้นสุดท้าย เหลือแค่ $r$, $\sigma$, $S$ — นี่คือ insight สำคัญที่สุด: ราคาออปชั่นไม่ขึ้นกับมุมมองของนักลงทุนต่อทิศทางตลาด แต่ขึ้นกับความผันผวน $\sigma$ เท่านั้น

การพิสูจน์ 4 · ที่มาของค่ากรีก: ทำไม Delta ของคอล = $N(d_1)$

สูตรราคาคอลออปชั่นตาม Black-Scholes:

$$C = S_0 N(d_1) - Ke^{-rT} N(d_2)$$

โดย

$$d_1 = \frac{\ln(S_0/K) + (r + \sigma^2/2)T}{\sigma\sqrt{T}}, \qquad d_2 = d_1 - \sigma\sqrt{T}$$

และ $N(\cdot)$ คือ CDF ของการแจกแจงปกติมาตรฐาน, $N'(x) = \dfrac{1}{\sqrt{2\pi}}e^{-x^2/2}$

ขั้นที่ 1 — นิยาม Delta และปัญหาที่ต้องแก้

Delta คืออนุพันธ์ของราคาออปชั่นเทียบกับราคาหุ้น:

$$\Delta_{\text{call}} = \frac{\partial C}{\partial S}$$

ปัญหา: ทั้ง $d_1$ และ $d_2$ ต่างก็ขึ้นกับ $S$ ดังนั้นเมื่อหาอนุพันธ์ของ $C$ จะต้องใช้ chain rule กับ $N(d_1)$ และ $N(d_2)$ ด้วย

ขั้นที่ 2 — คำนวณ $\partial d_1 / \partial S$ และ $\partial d_2 / \partial S$

$$\frac{\partial d_1}{\partial S} = \frac{1}{S\sigma\sqrt{T}}, \qquad \frac{\partial d_2}{\partial S} = \frac{1}{S\sigma\sqrt{T}}$$

(เท่ากันเพราะ $d_2 = d_1 - \sigma\sqrt{T}$ ต่างกันด้วยค่าคงที่ อนุพันธ์เทียบ $S$ จึงเท่ากัน)

ขั้นที่ 3 — ใช้ Chain Rule กับ $C$

$$\frac{\partial C}{\partial S} = N(d_1) + S\, N'(d_1)\frac{\partial d_1}{\partial S} - Ke^{-rT} N'(d_2)\frac{\partial d_2}{\partial S}$$

แทนค่า $\partial d_1/\partial S = \partial d_2/\partial S = \dfrac{1}{S\sigma\sqrt{T}}$:

$$\frac{\partial C}{\partial S} = N(d_1) + \frac{N'(d_1)}{\sigma\sqrt{T}} - \frac{Ke^{-rT} N'(d_2)}{S\sigma\sqrt{T}}$$

ขั้นที่ 4 — เอกลักษณ์ที่ทำให้พจน์หักล้างกัน

พิสูจน์ได้ว่า (ผ่านการแทนค่า $d_1, d_2$ และจัดรูป):

$$S\, N'(d_1) = Ke^{-rT} N'(d_2)$$

เอกลักษณ์นี้ได้มาจากการเขียน $N'(d_2) = N'(d_1 - \sigma\sqrt{T})$ แล้วขยายเลขชี้กำลัง จะพบว่าแฟกเตอร์ $e^{-rT} \cdot (S/K)$ ปรากฏขึ้นพอดีเพื่อยืนยันสมการข้างต้น

ขั้นที่ 5 — พจน์ที่สองและสามหักล้างกัน

จากเอกลักษณ์ข้างต้น $\dfrac{N'(d_1)}{\sigma\sqrt{T}} = \dfrac{Ke^{-rT}N'(d_2)}{S\sigma\sqrt{T}}$ — พจน์สองพจน์หักล้างกันพอดี จึงได้:

$$\boxed{\Delta_{\text{call}} = \frac{\partial C}{\partial S} = N(d_1)} \quad \blacksquare$$

ค่ากรีกอื่น: Gamma และ Vega

Gamma ($\Gamma$) — ความโค้งของราคาออปชั่น อัตราการเปลี่ยนแปลงของ delta เทียบกับราคาหุ้น:

$$\Gamma = \frac{\partial^2 C}{\partial S^2} = \frac{N'(d_1)}{S\sigma\sqrt{T}}$$

Vega ($\mathcal{V}$) — ความไวของราคาออปชั่นต่อการเปลี่ยนแปลงความผันผวน $\sigma$:

$$\mathcal{V} = \frac{\partial C}{\partial \sigma} = S\, N'(d_1)\sqrt{T}$$

ทำไม Gamma และ Vega สูงสุดเมื่อ At-the-Money?

ทั้ง $\Gamma$ และ $\mathcal{V}$ มี $N'(d_1) = \dfrac{1}{\sqrt{2\pi}}e^{-d_1^2/2}$ เป็นตัวขับเคลื่อน ซึ่งเป็น PDF ของการแจกแจงปกติมาตรฐาน — มีค่าสูงสุดเมื่อ $d_1 \approx 0$ (ซึ่งตรงกับ $S = Ke^{-(r+\sigma^2/2)T}$ คือบริเวณ at-the-money — ระวังอย่าสับสนกับ "at-the-money forward" $S=Ke^{-rT}$ ซึ่งเป็นจุดที่ $d_2=0$ ไม่ใช่ $d_1=0$) เนื่องจากตอนนั้นราคาหุ้นอยู่ตรงจุดที่ไม่แน่ว่าออปชั่นจะ in- หรือ out-of-the-money — ความไม่แน่นอนสูงสุด ทำให้ทั้งความโค้งของ payoff (gamma) และความไวต่อความผันผวน (vega) พุ่งสูงสุดด้วย เมื่อ deep in- หรือ out-of-the-money แล้ว ผลลัพธ์ค่อนข้างชัดเจน $N'(d_1)$ ลดลงเข้าใกล้ศูนย์

เนื้อหานี้จัดทำเพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำในการลงทุน

B1

คลังโจทย์ · M4 อนุพันธ์

ฟอร์เวิร์ด ฟิวเจอร์ส ออปชั่น และพาริตี — ลองทำเองก่อนกดดูเฉลย

โจทย์ 1ฟอร์เวิร์ด

หุ้นตัวหนึ่งมีราคาปัจจุบัน $S_0 = 80$ บาท ไม่มีการจ่ายปันผล อัตราดอกเบี้ยปราศจากความเสี่ยง $r = 4\%$ ต่อปี (ทบต้นต่อเนื่อง) จงหาราคายุติธรรมของสัญญาฟอร์เวิร์ดที่มีอายุ $T = 0.75$ ปี

ดูเฉลย (ลองทำเองก่อนนะ)

สูตรราคาฟอร์เวิร์ด (ไม่มีปันผล)

$$F_0 = S_0\, e^{rT}$$

ขั้นที่ 1 — คำนวณเลขชี้กำลัง

$$rT = 0.04 \times 0.75 = 0.03$$

ขั้นที่ 2 — แทนค่า โดยใช้ $e^{0.03} \approx 1.03045$

$$F_0 = 80 \times e^{0.03} \approx 80 \times 1.03045 = 82.436$$

✅ ตอบ: ราคาฟอร์เวิร์ดยุติธรรม $\approx \mathbf{82.44}$ บาท

แนวคิด: ถ้าซื้อหุ้นวันนี้ด้วยเงินกู้และล็อกราคาขายล่วงหน้า ผู้ขายสัญญาจะตั้งราคาไว้ที่ต้นทุนบวกดอกเบี้ยพอดี จึงไม่มีอาร์บิทราจ

โจทย์ 2ฟอร์เวิร์ดมีปันผล

ดัชนีหุ้นมีราคาปัจจุบัน $S_0 = 120$ อัตราเงินปันผลตอบแทนต่อเนื่อง $q = 2\%$ ต่อปี อัตราดอกเบี้ยปราศจากความเสี่ยง $r = 5\%$ ต่อปี อายุสัญญา $T = 1$ ปี จงหาราคาฟอร์เวิร์ดของดัชนีนี้

ดูเฉลย (ลองทำเองก่อนนะ)

สูตรราคาฟอร์เวิร์ดดัชนี (มีปันผลต่อเนื่อง)

$$F_0 = S_0\, e^{(r-q)T}$$

ขั้นที่ 1 — หาอัตราสุทธิ

$$(r - q) = 0.05 - 0.02 = 0.03$$

ขั้นที่ 2 — คำนวณ $e^{0.03 \times 1} = e^{0.03} \approx 1.03045$

ขั้นที่ 3 — แทนค่า

$$F_0 = 120 \times 1.03045 \approx 123.654$$

✅ ตอบ: ราคาฟอร์เวิร์ด $\approx \mathbf{123.65}$

แนวคิด: เงินปันผลที่ผู้ถือดัชนีได้รับช่วยลดต้นทุนการ carry จึงต้องหักออกจากอัตราดอกเบี้ยก่อนคำนวณ

โจทย์ 3Put–Call Parity หา Put

ออปชั่น call ราคา $C = 6$ บาท ราคาใช้สิทธิ $K = 50$ บาท อัตราดอกเบี้ย $r = 6\%$ ต่อปี อายุ $T = 0.5$ ปี ราคาหุ้นปัจจุบัน $S_0 = 49$ บาท จงหาราคา put ที่สอดคล้องกับ Put–Call Parity

ดูเฉลย (ลองทำเองก่อนนะ)

Put–Call Parity

$$C + K e^{-rT} = P + S_0$$

จัดรูปหา $P$

$$P = C + K e^{-rT} - S_0$$

ขั้นที่ 1 — คำนวณ $e^{-rT}$

$$rT = 0.06 \times 0.5 = 0.03 \qquad e^{-0.03} \approx 0.97045$$

ขั้นที่ 2 — หามูลค่าปัจจุบันของ $K$

$$K e^{-0.03} = 50 \times 0.97045 = 48.522$$

ขั้นที่ 3 — แทนค่าทั้งหมด

$$P = 6 + 48.522 - 49 = 5.522$$

✅ ตอบ: ราคา put $\approx \mathbf{5.52}$ บาท

แนวคิด: Put–Call Parity บอกว่าพอร์ต "call + เงินสดมูลค่าปัจจุบันของ K" ต้องมีมูลค่าเท่ากับพอร์ต "put + หุ้น" ไม่เช่นนั้นจะมีอาร์บิทราจ

โจทย์ 4Put–Call Parity หา Call

ออปชั่น put ราคา $P = 4$ บาท ราคาใช้สิทธิ $K = 100$ บาท อัตราดอกเบี้ย $r = 5\%$ ต่อปี อายุ $T = 1$ ปี ราคาหุ้นปัจจุบัน $S_0 = 98$ บาท จงหาราคา call ที่สอดคล้องกับ Put–Call Parity

ดูเฉลย (ลองทำเองก่อนนะ)

Put–Call Parity จัดรูปหา $C$

$$C = P + S_0 - K e^{-rT}$$

ขั้นที่ 1 — คำนวณ $e^{-rT}$

$$rT = 0.05 \times 1 = 0.05 \qquad e^{-0.05} \approx 0.95123$$

ขั้นที่ 2 — หามูลค่าปัจจุบันของ $K$

$$K e^{-0.05} = 100 \times 0.95123 = 95.123$$

ขั้นที่ 3 — แทนค่า

$$C = 4 + 98 - 95.123 = 6.877$$

✅ ตอบ: ราคา call $\approx \mathbf{6.88}$ บาท

แนวคิด: ราคาหุ้นต่ำกว่า K เล็กน้อย ($S_0 = 98 < K = 100$) แต่ call ยังมีค่าเพราะยังมีเวลาเหลือ 1 ปีที่ราคาอาจขึ้นเกิน 100

โจทย์ 5Payoff & กำไรขาดทุน Long Call

นักลงทุนซื้อ call option (long call) ที่ราคาใช้สิทธิ $K = 100$ บาท จ่ายพรีเมียม $5$ บาท จงหา: (ก) กำไรสุทธิถ้าราคาหุ้น ณ วันหมดอายุ $S_T = 112$ บาท (ข) กำไรสุทธิถ้า $S_T = 96$ บาท (ค) จุดคุ้มทุน (breakeven)

ดูเฉลย (ลองทำเองก่อนนะ)

สูตรกำไรสุทธิ Long Call

$$\pi = \max(S_T - K,\; 0) - \text{พรีเมียม}$$

(ก) กรณี $S_T = 112$

$$\pi = \max(112 - 100,\; 0) - 5 = 12 - 5 = +7$$

✅ กำไร $\mathbf{+7}$ บาท

(ข) กรณี $S_T = 96$

เนื่องจาก $S_T = 96 < K = 100$ ไม่คุ้มที่จะใช้สิทธิ (out-of-the-money)

$$\pi = \max(96 - 100,\; 0) - 5 = 0 - 5 = -5$$

✅ ขาดทุน $\mathbf{-5}$ บาท (ขาดทุนสูงสุดเท่ากับพรีเมียมที่จ่ายไป)

(ค) จุดคุ้มทุน

ตั้งกำไร $= 0$ แล้วหา $S_T$

$$\max(S_T - 100,\; 0) - 5 = 0 \implies S_T - 100 = 5 \implies S_T = 105$$

✅ Breakeven ที่ $S_T = \mathbf{105}$ บาท (= $K$ + พรีเมียม)

สรุป: Long call จำกัดขาดทุนไว้ที่พรีเมียม แต่กำไรไม่จำกัดถ้าราคาหุ้นขึ้น

โจทย์ 6Long Straddle

นักลงทุนสร้าง long straddle โดยซื้อทั้ง call และ put ที่ราคาใช้สิทธิ $K = 100$ บาท พรีเมียม call $= 5$ บาท, พรีเมียม put $= 4$ บาท (พรีเมียมรวม $= 9$ บาท) จงหา: (ก) กำไรสุทธิถ้า $S_T = 120$ (ข) กำไรสุทธิถ้า $S_T = 100$ (ค) จุดคุ้มทุนทั้งสองด้าน และอธิบายว่ากลยุทธ์นี้เหมาะกับสถานการณ์ใด

ดูเฉลย (ลองทำเองก่อนนะ)

สูตรกำไรสุทธิ Long Straddle

$$\pi = \max(S_T - K,\; 0) + \max(K - S_T,\; 0) - \text{พรีเมียมรวม}$$

(ก) กรณี $S_T = 120$

Call อยู่ in-the-money, Put อยู่ out-of-the-money

$$\pi = \max(120 - 100,\; 0) + \max(100 - 120,\; 0) - 9 = 20 + 0 - 9 = +11$$

✅ กำไร $\mathbf{+11}$ บาท

(ข) กรณี $S_T = 100$

ทั้ง call และ put อยู่ที่ exactly at-the-money — ไม่มีประโยชน์จากการใช้สิทธิ

$$\pi = \max(100 - 100,\; 0) + \max(100 - 100,\; 0) - 9 = 0 + 0 - 9 = -9$$

✅ ขาดทุน $\mathbf{-9}$ บาท (ขาดทุนสูงสุด เกิดเมื่อราคานิ่งอยู่ที่ $K$)

(ค) จุดคุ้มทุนสองข้าง

ฝั่งบน (call ทำงาน): ตั้ง $S_T - K - 9 = 0$

$$S_T = K + 9 = 100 + 9 = 109$$

ฝั่งล่าง (put ทำงาน): ตั้ง $K - S_T - 9 = 0$

$$S_T = K - 9 = 100 - 9 = 91$$

✅ Breakeven ที่ $S_T = \mathbf{91}$ บาท และ $S_T = \mathbf{109}$ บาท (= $K \pm$ พรีเมียมรวม)

เหมาะกับสถานการณ์ใด: Long straddle เหมาะเมื่อนักลงทุนคาดว่าราคาจะเหวี่ยงแรงไม่ว่าทิศทางใด (เช่น ก่อนประกาศผลประกอบการ หรือเหตุการณ์สำคัญที่ไม่รู้ทิศ) แต่ถ้าราคานิ่งก็ขาดทุนเท่าพรีเมียมรวมที่จ่ายไป

⚠️ เนื้อหานี้จัดทำเพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำการลงทุน

B2

คลังโจทย์ · M5 Black-Scholes

ตั้งราคาออปชั่นด้วยสูตร BSM — ฝึกคำนวณ $d_1,d_2$ และราคา call/put

โจทย์ 7BSM · ATM

ออปชั่น European บนหุ้นที่ไม่จ่ายปันผล กำหนดให้ $S_0=100$, $K=100$, $r=5\%$ ต่อปี, $\sigma=20\%$ ต่อปี, $T=1$ ปี — จงหาราคา call และ put ด้วยสูตร Black-Scholes-Merton (BSM)

ดูเฉลย (ลองทำเองก่อนนะ)

ขั้นที่ 1 คำนวณ $d_1$ และ $d_2$

$$d_1=\frac{\ln(S_0/K)+(r+\tfrac12\sigma^2)T}{\sigma\sqrt{T}}=\frac{\ln(100/100)+(0.05+\tfrac12\cdot0.04)\cdot1}{0.20\cdot1}=\frac{0+0.07}{0.20}=0.3500$$
$$d_2=d_1-\sigma\sqrt{T}=0.3500-0.20=0.1500$$

ขั้นที่ 2 เปิดตาราง $N(\cdot)$ (หรือใช้ค่าที่กำหนด)

$$N(d_1)=N(0.35)=0.6368,\quad N(d_2)=N(0.15)=0.5596$$
$$N(-d_1)=1-0.6368=0.3632,\quad N(-d_2)=1-0.5596=0.4404$$

ขั้นที่ 3 หา discount factor: $e^{-rT}=e^{-0.05\cdot1}=0.95123$, ดังนั้น $Ke^{-rT}=100\times0.95123=95.123$

ขั้นที่ 4 แทนสูตรราคา call

$$C=S_0N(d_1)-Ke^{-rT}N(d_2)=100(0.6368)-95.123(0.5596)=63.68-53.23\approx10.45$$

ขั้นที่ 5 หาราคา put ด้วย put-call parity: $P=C-S_0+Ke^{-rT}$

$$P=10.45-100+95.123\approx5.57$$

✅ ตอบ: $C\approx10.45$ บาท, $P\approx5.57$ บาท

โจทย์ 8BSM · OTM

ออปชั่น European call แบบ out-of-the-money (OTM) กำหนดให้ $S_0=50$, $K=55$, $r=4\%$ ต่อปี, $\sigma=30\%$ ต่อปี, $T=0.5$ ปี — จงหาราคา call และ put

ดูเฉลย (ลองทำเองก่อนนะ)

ขั้นที่ 1 คำนวณ $d_1$ และ $d_2$

$$d_1=\frac{\ln(50/55)+(0.04+\tfrac12\cdot0.09)\cdot0.5}{0.30\cdot\sqrt{0.5}}=\frac{\ln(0.9091)+0.0425\cdot0.5}{0.30\times0.7071}=\frac{-0.09531+0.02125}{0.21213}=\frac{-0.07406}{0.21213}\approx-0.2489$$
$$d_2=d_1-\sigma\sqrt{T}=-0.2489-0.30\times0.7071=-0.2489-0.2121\approx-0.4611$$

ขั้นที่ 2 เปิดตาราง $N(\cdot)$

$$N(d_1)=N(-0.2489)\approx0.4017,\quad N(d_2)=N(-0.4611)\approx0.3224$$
$$N(-d_1)=N(0.2489)\approx0.5983,\quad N(-d_2)=N(0.4611)\approx0.6776$$

ขั้นที่ 3 Discount factor: $e^{-rT}=e^{-0.04\times0.5}=e^{-0.02}=0.98020$, ดังนั้น $Ke^{-rT}=55\times0.98020=53.911$

ขั้นที่ 4 ราคา call

$$C=50(0.4017)-53.911(0.3224)=20.085-17.381\approx2.71$$

ขั้นที่ 5 ราคา put ด้วย put-call parity

$$P=C-S_0+Ke^{-rT}=2.71-50+53.911\approx6.62$$

สังเกต: call OTM ราคาต่ำกว่า put เพราะ $S_0 < K$ ทำให้ผู้ถือ put มีโอกาสได้กำไรสูงกว่า

✅ ตอบ: $C\approx2.71$ บาท, $P\approx6.62$ บาท

โจทย์ 9BSM · ITM

ออปชั่น European call แบบ in-the-money (ITM) กำหนดให้ $S_0=100$, $K=90$, $r=3\%$ ต่อปี, $\sigma=25\%$ ต่อปี, $T=1$ ปี — จงหาราคา call และอธิบายว่า intrinsic value กับ time value คืออะไร

ดูเฉลย (ลองทำเองก่อนนะ)

ขั้นที่ 1 คำนวณ $d_1$ และ $d_2$

$$d_1=\frac{\ln(100/90)+(0.03+\tfrac12\cdot0.0625)\cdot1}{0.25\cdot1}=\frac{0.10536+0.06125}{0.25}=\frac{0.16661}{0.25}\approx0.6664$$
$$d_2=0.6664-0.25\cdot1=0.4164$$

ขั้นที่ 2 เปิดตาราง $N(\cdot)$

$$N(d_1)=N(0.6664)\approx0.7474,\quad N(d_2)=N(0.4164)\approx0.6615$$

ขั้นที่ 3 Discount factor: $e^{-0.03}=0.97045$, ดังนั้น $Ke^{-rT}=90\times0.97045=87.341$

ขั้นที่ 4 ราคา call

$$C=100(0.7474)-87.341(0.6615)=74.74-57.77\approx16.97$$

ขั้นที่ 5 แยก intrinsic value และ time value

$$\text{Intrinsic value}=S_0-Ke^{-rT}=100-87.341=12.659$$
$$\text{Time value}=C-\text{Intrinsic value}=16.97-12.659=4.311$$

สรุป: call ITM มีค่าอย่างน้อยเท่ากับ intrinsic value ($S_0-Ke^{-rT}$) บวกด้วย time value ซึ่งสะท้อนโอกาสที่ราคาหุ้นจะขึ้นไปอีกก่อนหมดอายุ

✅ ตอบ: $C\approx16.97$ บาท (Intrinsic $\approx12.66$ + Time value $\approx4.31$)

โจทย์ 10BSM · Hull Classic

ตัวอย่างมาตรฐานจากตำรา Options, Futures, and Other Derivatives (Hull): $S_0=42$, $K=40$, $r=10\%$ ต่อปี, $\sigma=20\%$ ต่อปี, $T=0.5$ ปี — จงหาราคา call และ put

ดูเฉลย (ลองทำเองก่อนนะ)

ขั้นที่ 1 คำนวณ $d_1$ และ $d_2$

$$d_1=\frac{\ln(42/40)+(0.10+\tfrac12\cdot0.04)\cdot0.5}{0.20\cdot\sqrt{0.5}}=\frac{0.04879+0.06\cdot0.5}{0.20\times0.7071}=\frac{0.04879+0.03}{0.14142}=\frac{0.07879}{0.14142}\approx0.7693$$
$$d_2=0.7693-0.20\times0.7071=0.7693-0.1414\approx0.6278$$

ขั้นที่ 2 เปิดตาราง $N(\cdot)$

$$N(d_1)=N(0.7693)\approx0.7791,\quad N(d_2)=N(0.6278)\approx0.7349$$
$$N(-d_1)\approx0.2209,\quad N(-d_2)\approx0.2651$$

ขั้นที่ 3 Discount factor: $e^{-0.10\times0.5}=e^{-0.05}=0.95123$, ดังนั้น $Ke^{-rT}=40\times0.95123=38.049$

ขั้นที่ 4 ราคา call

$$C=42(0.7791)-38.049(0.7349)=32.722-27.962\approx4.76$$

ขั้นที่ 5 ราคา put ด้วย put-call parity

$$P=C-S_0+Ke^{-rT}=4.76-42+38.049\approx0.81$$

นี่เป็นตัวอย่างที่ Hull ใช้สอนทั่วโลก — ค่าที่ได้ตรงกับตำราแสดงว่าเข้าใจ BSM ถูกต้องแล้ว

✅ ตอบ: $C\approx4.76$ บาท, $P\approx0.81$ บาท

โจทย์ 11Implied Volatility · แนวคิด

ใช้พารามิเตอร์เดียวกับโจทย์ 7 ($S_0=100$, $K=100$, $r=5\%$, $T=1$ ปี) แต่ออปชั่น call ในตลาดซื้อขายที่ราคา 12 บาท ขณะที่ BSM ด้วย $\sigma=20\%$ ให้ราคาเพียง 10.45 บาท — สิ่งนี้บอกอะไร และจะหา implied volatility ได้อย่างไร?

ดูเฉลย (ลองทำเองก่อนนะ)

ขั้นที่ 1 ตีความส่วนต่างของราคา

ราคาตลาด (12 บาท) > ราคา BSM ที่ $\sigma=20\%$ (10.45 บาท) แสดงว่าตลาดประเมินความผันผวนในอนาคตสูงกว่า 20%

เหตุผล: ในสูตร BSM ราคาออปชั่น call เพิ่มขึ้นตาม $\sigma$ เสมอ (vega > 0) ดังนั้นราคาตลาดที่แพงกว่า = ตลาดคาด vol สูงกว่า

ขั้นที่ 2 นิยาม implied volatility

$$\text{Implied Vol} = \sigma^* \text{ ที่ทำให้ } C_{\text{BSM}}(S_0,K,r,T,\sigma^*)=C_{\text{ตลาด}}$$

พูดง่ายๆ: implied vol คือความผันผวนที่ "ซ่อน" อยู่ในราคาตลาด — ถ้ารู้ราคาตลาด ก็ย้อนหา $\sigma$ ที่ทำให้สูตรออกราคานั้นพอดี

ขั้นที่ 3 วิธีคำนวณ — ไม่มีสูตรปิด ต้องใช้เชิงตัวเลข

วิธีที่นิยมในทางปฏิบัติ:

  • Bisection method: กำหนดช่วง $[\sigma_\text{low}, \sigma_\text{high}]$ แล้วหา midpoint ซ้ำๆ จนราคา BSM ใกล้เพียงพอ
  • Newton-Raphson: อาศัย vega เป็น derivative เพื่อลู่เข้าหาคำตอบเร็วกว่า: $\sigma_{\text{ใหม่}}=\sigma_{\text{เก่า}}-\dfrac{C_{\text{BSM}}-C_{\text{ตลาด}}}{\text{vega}}$

ขั้นที่ 4 ประมาณผลในกรณีนี้

เนื่องจากราคาตลาด 12 บาท > 10.45 บาท (ส่วนต่าง ~15%) implied vol จะมากกว่า 20% ประมาณ 23–24% ต่อปี

✅ ตอบ: implied vol > 20% (ประมาณ 23–24%) · ตลาดคาดการณ์ความผันผวนสูงกว่าที่ใส่เข้าไปในโมเดล

โจทย์ 12Vega · ผลของ $\sigma$

ใช้พารามิเตอร์โจทย์ 7 ($S_0=100$, $K=100$, $r=5\%$, $T=1$) แต่เพิ่ม $\sigma$ จาก 20% เป็น 30% — ราคา call เปลี่ยนเป็นเท่าใด และสรุปผลของความผันผวนต่อราคาออปชั่นได้อย่างไร?

ดูเฉลย (ลองทำเองก่อนนะ)

ขั้นที่ 1 คำนวณ $d_1$ และ $d_2$ ด้วย $\sigma=30\%$

$$d_1=\frac{\ln(100/100)+(0.05+\tfrac12\cdot0.09)\cdot1}{0.30\cdot1}=\frac{0+0.095}{0.30}=\frac{0.095}{0.30}\approx0.3167$$
$$d_2=0.3167-0.30\cdot1=0.0167$$

ขั้นที่ 2 เปิดตาราง $N(\cdot)$

$$N(d_1)=N(0.3167)\approx0.6243,\quad N(d_2)=N(0.0167)\approx0.5066$$

ขั้นที่ 3 Discount factor เหมือนโจทย์ 7: $e^{-0.05}=0.95123$, ดังนั้น $Ke^{-rT}=95.123$

ขั้นที่ 4 ราคา call ที่ $\sigma=30\%$

$$C=100(0.6243)-95.123(0.5066)=62.43-48.19\approx14.23$$

ขั้นที่ 5 เปรียบเทียบและสรุป

$$\Delta C = 14.23 - 10.45 = +3.78 \text{ บาท เมื่อ } \sigma \text{ เพิ่มจาก } 20\% \to 30\%$$

สรุปหลักการ: ความผันผวนสูงขึ้น → ราคาออปชั่น (ทั้ง call และ put) แพงขึ้นเสมอ เพราะ:

  • โอกาสที่หุ้นจะวิ่งเข้า deep-in-the-money ก่อนหมดอายุมีมากขึ้น
  • ผู้ถือออปชั่นขาดทุนจำกัดอยู่ที่พรีเมียมที่จ่ายไป แต่ได้กำไรไม่จำกัด (สำหรับ call) หรือจำกัดที่ $K$ (สำหรับ put) — asymmetry นี้ทำให้ vol สูงเป็นผลดีต่อผู้ถือเสมอ
  • ค่า vega = $S_0\sqrt{T}\,N'(d_1) > 0$ เสมอ ยืนยันว่าราคาออปชั่นเป็น monotone increasing ใน $\sigma$

✅ ตอบ: $C\approx14.23$ บาท (เพิ่มจาก 10.45 บาท) · ความผันผวนสูงขึ้น ราคาออปชั่นแพงขึ้นเสมอ (vega > 0)

B3

คลังโจทย์ · M6 ค่ากรีก + การเฮดจ์

เดลตา แกมมา เวกา การเฮดจ์ และต้นไม้ทวินาม

โจทย์ 13
เดลตาของ Call
กำหนด $S_0=42$, $K=40$, $r=10\%$, $\sigma=20\%$, $T=0.5$ ปี (คำนวณได้ $d_1=0.7693$) จงหาเดลตาของออปชั่น call และตีความหมายในทางการเงิน
เฉลย

สูตร: $\Delta_{\text{call}} = N(d_1)$

$$\Delta = N(0.7693) \approx 0.779$$

ตีความ:

  • ถ้าราคาหุ้นขยับ +1 บาท ราคา call จะขยับประมาณ +0.78 บาท
  • เดลตา = จำนวนหุ้นที่ต้องถือต่อ 1 call เพื่อสร้างพอร์ต delta-neutral (เฮดจ์)
  • เดลตาของ call อยู่ในช่วง $(0, 1)$ เสมอ — ยิ่ง in-the-money มากเดลตายิ่งใกล้ 1

⚠️ เพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำลงทุน

โจทย์ 14
Delta Hedging
ผู้ดูแลความเสี่ยง short call 100 สัญญา (1 สัญญา = 1 หุ้น) แต่ละ call มีเดลตา $0.60$ จะต้องทำอย่างไรเพื่อให้พอร์ตอยู่ในสถานะ delta-neutral?
เฉลย

ขั้นที่ 1 — หาเดลตาของพอร์ตปัจจุบัน

$$\Delta_{\text{port}} = -100 \times 0.60 = -60$$

(เครื่องหมายลบเพราะ short)

ขั้นที่ 2 — ปรับให้รวมเป็นศูนย์

ต้องการเดลตา $+60$ → ซื้อหุ้น 60 หน่วย (หุ้นมีเดลตา = 1 ต่อหน่วย)

$$\Delta_{\text{port}} = -60 + 60 = 0 \quad \checkmark$$

ความหมายในทางปฏิบัติ:

  • เมื่อราคาหุ้นขยับ พอร์ตรวมจะไม่กำไร/ขาดทุนจากทิศทางในระยะสั้น
  • เมื่อเวลาผ่านหรือราคาเปลี่ยนมาก เดลตาจะเบี่ยง ต้อง rebalance อีกครั้ง

⚠️ เพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำลงทุน

โจทย์ 15
แกมมา (Gamma)
กำหนด $S_0=100$, $K=100$, $r=5\%$, $\sigma=20\%$, $T=1$ ปี (คำนวณได้ $d_1=0.35$) จงหาค่าแกมมาของออปชั่น และตีความ
เฉลย

ขั้นที่ 1 — หา $N'(d_1)$ (ฟังก์ชันความหนาแน่นปกติมาตรฐาน)

$$N'(x) = \frac{1}{\sqrt{2\pi}}\,e^{-x^2/2}$$
$$N'(0.35) = \frac{1}{\sqrt{2\pi}}\,e^{-0.35^2/2} = \frac{1}{\sqrt{2\pi}}\,e^{-0.06125} \approx 0.3752$$

ขั้นที่ 2 — คำนวณแกมมา

$$\Gamma = \frac{N'(d_1)}{S\,\sigma\,\sqrt{T}} = \frac{0.3752}{100 \times 0.20 \times 1} = \frac{0.3752}{20} \approx 0.01876$$

ตีความ:

  • เดลตาเปลี่ยนแปลงประมาณ 0.0188 ต่อการขยับราคาหุ้น 1 หน่วย
  • แกมมาสูง = เดลตาเปลี่ยนเร็ว = ต้อง rebalance บ่อยขึ้น = ต้นทุนเฮดจ์สูง
  • แกมมาสูงสุดเมื่อออปชั่น at-the-money ใกล้หมดอายุ

⚠️ เพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำลงทุน

โจทย์ 16
เวกา (Vega)
ใช้พารามิเตอร์เดียวกับโจทย์ 15 ($S_0=100$, $K=100$, $r=5\%$, $\sigma=20\%$, $T=1$, $d_1=0.35$, $N'(d_1)\approx 0.3752$) จงหาเวกา และตีความต่อการเปลี่ยน volatility 1 จุดเปอร์เซ็นต์
เฉลย

สูตร:

$$\mathcal{V} = S\,N'(d_1)\,\sqrt{T}$$

คำนวณ:

$$\mathcal{V} = 100 \times 0.3752 \times 1 = 37.52$$

ค่านี้คือการเปลี่ยนแปลงราคาออปชั่นต่อการเพิ่ม volatility 1.00 (= 100%)

แปลงเป็นต่อ 1%:

$$\mathcal{V}_{1\%} = \frac{37.52}{100} \approx 0.375$$

ตีความ:

  • ถ้า implied volatility เพิ่มขึ้น 1% (เช่น จาก 20% → 21%) ราคาออปชั่นเพิ่มขึ้นประมาณ 0.38 บาท
  • เวกา > 0 เสมอสำหรับทั้ง call และ put — ผู้ซื้อออปชั่นได้ประโยชน์เมื่อ vol สูงขึ้น
  • เวกาสูงสุดเมื่อ at-the-money และยังมีเวลาเหลือมาก

⚠️ เพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำลงทุน

โจทย์ 17
P&L ประมาณด้วยเดลตา + แกมมา (Taylor Expansion)
ถือ call ตัวเดียวกับโจทย์ 15 (พารามิเตอร์ $S_0=K=100, r=5\%, \sigma=20\%, T=1$) ซึ่งมี $\Delta=N(d_1)=0.6368$ (มาจากโจทย์ 7) และ $\Gamma=0.01876$ (จากโจทย์ 15) ถ้าราคาหุ้นขยับจาก 100 → 105 ($dS=5$) จงประมาณการเปลี่ยนแปลงราคา call ด้วยการกระจาย Taylor อันดับสอง
เฉลย

สูตรประมาณ Taylor อันดับสอง:

$$\Delta C \approx \Delta \cdot dS + \tfrac{1}{2}\,\Gamma\,(dS)^2$$

แทนค่า:

$$\Delta C \approx 0.6368 \times 5 + \frac{1}{2} \times 0.01876 \times 25$$
$$= 3.184 + 0.2345 \approx 3.42 \text{ บาท}$$

วิเคราะห์แต่ละพจน์:

  • พจน์เดลตา: $3.18$ บาท — การเปลี่ยนแปลงเชิงเส้น
  • พจน์แกมมา: $+0.23$ บาท — ส่วนที่เดลตาเพียงอย่างเดียวประมาณพลาด (เป็นบวกเสมอสำหรับผู้ถือ long)

ทำไมต้อง Rebalance?

  • เมื่อราคาขยับ เดลตาเปลี่ยน (เพราะแกมมา ≠ 0) → พอร์ตที่เคย delta-neutral จะเสีย neutrality
  • ยิ่งแกมมาสูง ยิ่งต้อง rebalance บ่อย เพื่อรักษาการเฮดจ์

⚠️ เพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำลงทุน

โจทย์ 18
ต้นไม้ทวินามขั้นเดียว (One-Step Binomial Tree)
กำหนด $S_0=100$, $u=1.1$, $d=0.9$, อัตราดอกเบี้ยปราศจากความเสี่ยง $r=5\%$ ต่อปี, $T=1$ ปี, call option $K=100$ จงหาราคา call ด้วยต้นไม้ทวินาม
เฉลย

ขั้นที่ 1 — ราคาหุ้นที่ปลายกิ่ง

  • ขึ้น: $S_u = 100 \times 1.1 = 110$
  • ลง: $S_d = 100 \times 0.9 = 90$

ขั้นที่ 2 — มูลค่า call ที่ปลายกิ่ง

$$f_u = \max(110 - 100,\;0) = 10, \quad f_d = \max(90 - 100,\;0) = 0$$

ขั้นที่ 3 — ความน่าจะเป็นกลาง (Risk-Neutral Probability)

$$p = \frac{e^{r\Delta t} - d}{u - d} = \frac{e^{0.05} - 0.9}{1.1 - 0.9} = \frac{1.05127 - 0.9}{0.2} \approx 0.7564$$
$$1 - p \approx 0.2436$$

ขั้นที่ 4 — ราคา call ปัจจุบัน

$$C = e^{-r\Delta t}\bigl[p\,f_u + (1-p)\,f_d\bigr]$$
$$= e^{-0.05}\bigl[0.7564 \times 10 + 0.2436 \times 0\bigr]$$
$$= 0.95123 \times 7.564 \approx \mathbf{7.19} \text{ บาท}$$

สรุปโครงต้นไม้:

สถานะราคาหุ้นราคา Call
ขึ้น (prob $p$)11010
ลง (prob $1-p$)900
ปัจจุบัน1007.19

ข้อสังเกต: ความน่าจะเป็นกลางความเสี่ยง ($p \approx 0.76$) ไม่ใช่ความน่าจะเป็นจริงของตลาด — เป็นแค่เครื่องมือคำนวณราคาภายใต้กรอบ no-arbitrage

⚠️ เพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำลงทุน

C

แล็บ Python 5 ชุด

สูตรกลายเป็นเครื่องมือจริง — โค้ดใช้แค่ไลบรารีมาตรฐาน (math, statistics, random) รันได้ทันทีไม่ต้องติดตั้งอะไร

Lab 1

BSM Pricer — คำนวณราคา Call & Put

แปลงสูตร Black-Scholes เป็นโค้ด ฟังก์ชัน bsm_call_put() รับพารามิเตอร์ 5 ตัว ($S_0, K, r, \sigma, T$) แล้วคืนราคา call และ put พร้อมกัน ใช้ NormalDist().cdf แทนตาราง $N(d)$

import math
from statistics import NormalDist

# N(x) = ค่าสะสมการแจกแจงปกติมาตรฐาน
N = NormalDist().cdf

def bsm_call_put(S, K, r, sigma, T):
    """คำนวณราคา European Call และ Put ด้วยสูตร Black-Scholes"""
    d1 = (math.log(S / K) + (r + 0.5 * sigma**2) * T) / (sigma * math.sqrt(T))
    d2 = d1 - sigma * math.sqrt(T)

    call = S * N(d1) - K * math.exp(-r * T) * N(d2)
    put  = K * math.exp(-r * T) * N(-d2) - S * N(-d1)
    return call, put

# ทดสอบ: S0=100, K=100, r=5%, sigma=20%, T=1 ปี
S, K, r, sigma, T = 100, 100, 0.05, 0.20, 1.0
call, put = bsm_call_put(S, K, r, sigma, T)
print(f"BSM Call Price = {call:.2f}")   # ควรได้ ~10.45
print(f"BSM Put  Price = {put:.2f}")    # ควรได้ ~5.57
📤 ผลลัพธ์ที่ควรได้: BSM Call Price = 10.45  |  BSM Put Price = 5.57
Lab 2

Greeks Calculator — วัดความไว 5 มิติ

Greeks บอกว่าราคาออปชั่น "ไหว" เท่าไหร่เมื่อตัวแปรแต่ละตัวขยับ Delta ($\Delta$) = ความไวต่อราคาหุ้น · Gamma ($\Gamma$) = ความไวของ delta · Vega = ความไวต่อ $\sigma$ · Theta = การสูญเสียมูลค่าตามเวลา · Rho = ความไวต่ออัตราดอกเบี้ย

import math
from statistics import NormalDist

N   = NormalDist().cdf          # CDF ปกติมาตรฐาน
N_p = NormalDist().pdf          # PDF ปกติมาตรฐาน (= N'(x))

def greeks(S, K, r, sigma, T):
    """คำนวณ Greeks ทั้ง 5 ตัวสำหรับ European Call"""
    d1 = (math.log(S / K) + (r + 0.5 * sigma**2) * T) / (sigma * math.sqrt(T))
    d2 = d1 - sigma * math.sqrt(T)

    delta = N(d1)                                           # Δ call
    gamma = N_p(d1) / (S * sigma * math.sqrt(T))           # Γ
    vega  = S * N_p(d1) * math.sqrt(T) / 100               # ต่อ 1% ของ sigma
    theta = (-(S * N_p(d1) * sigma) / (2 * math.sqrt(T))
             - r * K * math.exp(-r * T) * N(d2)) / 365     # ต่อ 1 วัน
    rho   = K * T * math.exp(-r * T) * N(d2) / 100         # ต่อ 1% ของ r

    return delta, gamma, vega, theta, rho

# ทดสอบพารามิเตอร์เดิม
S, K, r, sigma, T = 100, 100, 0.05, 0.20, 1.0
d, g, v, th, rh = greeks(S, K, r, sigma, T)
print(f"Delta (call) = {d:.4f}")    # ~0.6368
print(f"Gamma        = {g:.4f}")    # ~0.0188
print(f"Vega  (1%)   = {v:.4f}")    # ~0.3752
print(f"Theta (1day) = {th:.4f}")   # ~-0.0149
print(f"Rho   (1%)   = {rh:.4f}")   # ~0.5323
📤 ผลลัพธ์ที่ควรได้: Delta ≈ 0.637 · Gamma ≈ 0.0188 · Vega ≈ 0.375 (ต่อ 1%) · Theta ≈ −0.015 (ต่อวัน)
Lab 3

Binomial Tree (CRR) — ต้นไม้ทวินามลู่เข้า BSM

โมเดล Cox-Ross-Rubinstein แบ่งเวลาเป็น $n$ ช่วง แต่ละช่วงราคาขึ้น $u$ หรือลง $d$ ด้วยความน่าจะเป็นกลาง $p$ ยิ่ง $n$ มาก ผลลัพธ์ยิ่งลู่เข้าหาค่า BSM — นี่คือหลักฐานว่าทั้งสองโมเดลเชื่อมกัน

import math

def binomial_call(S, K, r, sigma, T, n):
    """European Call ด้วยต้นไม้ทวินาม CRR จำนวน n ขั้น"""
    dt = T / n
    u  = math.exp(sigma * math.sqrt(dt))   # ราคาขึ้น
    d  = 1 / u                             # ราคาลง
    p  = (math.exp(r * dt) - d) / (u - d) # ความน่าจะเป็นกลาง (risk-neutral)
    disc = math.exp(-r * dt)               # discount ต่อช่วง

    # คำนวณราคาหุ้นที่ปลายกิ่ง (node สุดท้าย)
    prices = [S * (u ** (n - 2 * j)) for j in range(n + 1)]

    # payoff ณ วันหมดอายุ
    values = [max(price - K, 0) for price in prices]

    # ย้อนกลับจากปลายกิ่งสู่รากต้นไม้
    for step in range(n - 1, -1, -1):
        values = [disc * (p * values[j] + (1 - p) * values[j + 1])
                  for j in range(step + 1)]
    return values[0]

# พารามิเตอร์เดิม — ทดสอบ 3 ระดับความละเอียด
S, K, r, sigma, T = 100, 100, 0.05, 0.20, 1.0
for n in [10, 50, 200]:
    price = binomial_call(S, K, r, sigma, T, n)
    print(f"n={n:3d} ขั้น  →  Call = {price:.4f}")
# BSM จริง = 10.4506 — ดูว่าค่าลู่เข้าอย่างไร
📤 ผลลัพธ์ที่ควรได้: n=10 → ~10.44 · n=50 → ~10.45 · n=200 → ~10.4506 (ลู่เข้า BSM)
Lab 4

Monte Carlo Pricer + Standard Error

จำลองเส้นทางราคา $N$ เส้น ใช้สูตร GBM $S_T = S_0 \exp\!\left((r - \tfrac{1}{2}\sigma^2)T + \sigma\sqrt{T}\,Z\right)$ หาค่าเฉลี่ย payoff แล้ว discount กลับมา — ยิ่ง $N$ มาก ค่ายิ่งแม่น และ standard error ลดตาม $1/\sqrt{N}$

import math
import random

random.seed(42)  # ล็อค seed เพื่อให้ผลทำซ้ำได้

def mc_call(S, K, r, sigma, T, N=100_000):
    """Monte Carlo สำหรับ European Call"""
    payoffs = []
    for _ in range(N):
        Z  = random.gauss(0, 1)                                   # สุ่มตัวเลขปกติ
        ST = S * math.exp((r - 0.5 * sigma**2) * T + sigma * math.sqrt(T) * Z)
        payoffs.append(max(ST - K, 0))                            # payoff ณ วันหมดอายุ

    mean_payoff = sum(payoffs) / N
    price = math.exp(-r * T) * mean_payoff                        # discount กลับ

    # Standard Error = std / sqrt(N)
    variance = sum((p - mean_payoff) ** 2 for p in payoffs) / (N - 1)
    se = math.exp(-r * T) * math.sqrt(variance / N)
    return price, se

S, K, r, sigma, T = 100, 100, 0.05, 0.20, 1.0
price, se = mc_call(S, K, r, sigma, T, N=100_000)
print(f"Monte Carlo Call = {price:.4f}")
print(f"Standard Error   = {se:.4f}   (±{1.96*se:.4f} ที่ confidence 95%)")
print(f"คำอธิบาย: เพิ่ม N เป็น 4 เท่า → SE ลดครึ่งหนึ่ง (1/√N)")
📤 ผลลัพธ์ที่ควรได้: Call ≈ 10.45 · SE ≈ 0.033 — ค่าอยู่ในช่วง BSM แน่นอนที่ confidence 95%
Lab 5

Delta-Hedging Simulation — หัวใจของ BSM

จำลองการเฮดจ์ออปชั่นที่ขายไป (short 1 call) โดยถือหุ้น = delta และปรับทุกช่วงเวลา ถ้าปรับต่อเนื่องสมบูรณ์ hedging error ควรเป็นศูนย์ — นี่คือเหตุผลที่ BSM ใช้ได้: การเฮดจ์ dynamic ทำให้ risk หายไปจริง

import math
import random
from statistics import NormalDist

random.seed(99)
N   = NormalDist().cdf
N_p = NormalDist().pdf

def delta_call(S, K, r, sigma, tau):
    """Delta ของ call เมื่อเหลือเวลา tau ปี"""
    if tau <= 0:
        return 1.0 if S > K else 0.0
    d1 = (math.log(S / K) + (r + 0.5 * sigma**2) * tau) / (sigma * math.sqrt(tau))
    return N(d1)

def bsm_call_price(S, K, r, sigma, tau):
    """ราคา call เมื่อเหลือเวลา tau ปี"""
    if tau <= 0:
        return max(S - K, 0)
    d1 = (math.log(S / K) + (r + 0.5 * sigma**2) * tau) / (sigma * math.sqrt(tau))
    d2 = d1 - sigma * math.sqrt(tau)
    return S * N(d1) - K * math.exp(-r * tau) * N(d2)

def simulate_hedge(S0, K, r, sigma, T, nsteps=52, n_paths=500):
    """จำลอง delta-hedging n_paths เส้นทาง (nsteps = จำนวนปรับพอร์ตต่อปี)"""
    dt = T / nsteps
    errors = []

    for _ in range(n_paths):
        S        = S0
        call0    = bsm_call_price(S, K, r, sigma, T)  # รับเบี้ยตอนขาย call
        delta    = delta_call(S, K, r, sigma, T)
        cash     = call0 - delta * S                   # เงินสดในพอร์ต (รับเบี้ย - ซื้อหุ้น)

        for step in range(1, nsteps + 1):
            # ราคาหุ้นเดินตาม GBM
            Z  = random.gauss(0, 1)
            S  = S * math.exp((r - 0.5 * sigma**2) * dt + sigma * math.sqrt(dt) * Z)
            tau = T - step * dt

            # เงินสดงอกดอกเบี้ย
            cash = cash * math.exp(r * dt)

            # ปรับหุ้นให้ตรง delta ใหม่
            new_delta = delta_call(S, K, r, sigma, tau)
            cash     -= (new_delta - delta) * S        # ซื้อ/ขายหุ้นส่วนต่าง
            delta     = new_delta

        # ณ วันหมดอายุ: ขายหุ้น ชำระ payoff
        portfolio_value = delta * S + cash
        payoff          = max(S - K, 0)
        errors.append(portfolio_value - payoff)

    avg_err = sum(errors) / len(errors)
    avg_abs = sum(abs(e) for e in errors) / len(errors)
    return avg_err, avg_abs

# รันจำลอง 500 เส้นทาง ปรับพอร์ตสัปดาห์ละครั้ง (52 ครั้ง/ปี)
S, K, r, sigma, T = 100, 100, 0.05, 0.20, 1.0
avg_err, avg_abs = simulate_hedge(S, K, r, sigma, T, nsteps=52, n_paths=500)
print(f"Hedging Error เฉลี่ย    = {avg_err:.4f}  (ใกล้ 0 = ดี)")
print(f"Hedging Error ค่าสัมบูรณ์ = {avg_abs:.4f}")
print()
print("ข้อสรุป: ยิ่งปรับพอร์ตถี่ (nsteps สูง) ยิ่ง error เล็ก")
print("BSM จึงตั้งอยู่บนสมมติฐานการเฮดจ์ต่อเนื่องสมบูรณ์")
📤 ผลลัพธ์ที่ควรได้: Hedging Error เฉลี่ย ≈ 0.00 · ค่าสัมบูรณ์ ≈ 0.30–0.60 — ลองเพิ่ม nsteps=252 แล้วดูว่า error ลดลง
D

ข้อสอบจำลอง (Mock Exam)

8 ข้อ · จับเวลา 90 นาที · ทำให้ครบก่อนเปิดเฉลย เหมือนสอบจริง · เต็ม 100 คะแนน

⏱️ กติกา: เตรียมกระดาษ ปากกา เครื่องคิดเลข · ห้ามเปิดเฉลยจนกว่าจะทำครบหรือหมดเวลา · ให้คะแนนตัวเองตามเกณฑ์ท้ายข้อ
ข้อ 110 คะแนน · ราคาฟอร์เวิร์ด

หุ้นราคาปัจจุบัน $S_0 = 200$ บาท ไม่มีเงินปันผล อัตราดอกเบี้ยปลอดความเสี่ยงแบบต่อเนื่อง $r = 3\%$ ต่อปี สัญญาฟอร์เวิร์ดมีอายุ $T = 2$ ปี จงคำนวณราคาฟอร์เวิร์ด $F_0$ ที่ยุติธรรม (fair forward price) พร้อมแสดงสูตรและวิธีคำนวณ

ข้อ 210 คะแนน · พาริตีพุต–คอล

ออปชั่น European call บนหุ้นตัวหนึ่งมีราคา $C = 12$ บาท ราคาใช้สิทธิ $K = 150$ บาท อัตราดอกเบี้ยปลอดความเสี่ยง $r = 4\%$ ต่อปี อายุสัญญา $T = 1$ ปี ราคาหุ้นปัจจุบัน $S_0 = 145$ บาท จงหาราคาของ European put ที่มีเงื่อนไขเดียวกัน โดยใช้ความสัมพันธ์พุต–คอล พาริตี

ข้อ 315 คะแนน · Black–Scholes–Merton

กำหนดพารามิเตอร์ดังนี้: $S_0 = 60$ บาท, $K = 60$ บาท, $r = 5\%$ ต่อปี, $\sigma = 25\%$ ต่อปี, $T = 0.5$ ปี จงคำนวณราคาของ European call และ European put โดยใช้แบบจำลอง Black–Scholes–Merton แสดงการคำนวณ $d_1$, $d_2$ และค่า $N(\cdot)$ ทุกขั้น

กำหนดให้: $N(0.23) \approx 0.5909$, $N(0.05) \approx 0.5211$, $e^{-0.025} \approx 0.97531$

ข้อ 415 คะแนน · Black–Scholes–Merton (OTM)

กำหนด: $S_0 = 80$ บาท, $K = 85$ บาท, $r = 4\%$ ต่อปี, $\sigma = 35\%$ ต่อปี, $T = 1$ ปี จงคำนวณราคา European call แสดงทุกขั้นตอนของ $d_1$, $d_2$, $N(d_1)$, $N(d_2)$ และราคาสุดท้าย

กำหนดให้: $N(0.12) \approx 0.5462$, $N(-0.23) \approx 0.4075$, $e^{-0.04} \approx 0.96079$

ข้อ 515 คะแนน · ทวินาม 2 ขั้น

กำหนด: $S_0 = 100$ บาท, $K = 100$ บาท, $r = 5\%$ ต่อปี, $\sigma = 20\%$ ต่อปี, $T = 1$ ปี แบ่งเป็น 2 ขั้น ($\Delta t = 0.5$ ปี) จงคำนวณราคา European call โดยใช้แบบจำลองทวินาม แสดง (1) การหา $u$, $d$, $p$ (2) ราคาหุ้นทุกโหนด (3) payoff ปลายทาง (4) การคิดย้อนกลับทีละขั้น

กำหนดให้: $e^{0.2\sqrt{0.5}} \approx 1.1519$, $e^{0.025} \approx 1.0253$

ข้อ 610 คะแนน · เดลตาเฮดจ์

กองทุนมีสถานะ short 500 สัญญา call (1 สัญญา = 1 หน่วยหุ้น) ออปชั่น call แต่ละหน่วยมีค่าเดลตา $\Delta = 0.45$ จงคำนวณว่ากองทุนต้องซื้อหรือขายหุ้นจำนวนกี่หน่วยเพื่อทำให้พอร์ตโฟลิโอมีสถานะ delta-neutral และอธิบายว่าทำไมจึงต้องทำเช่นนั้น

ข้อ 715 คะแนน · กรีก & การประมาณ P&L

ออปชั่น call มีค่า delta $= 0.55$ และ gamma $= 0.03$ ถ้าราคาหุ้นอ้างอิงเพิ่มขึ้น $+4$ บาท จงประมาณการเปลี่ยนแปลงราคาออปชั่น $\Delta C$ โดยใช้การขยาย Taylor อันดับสอง พร้อม (1) แสดงสูตรและตัวเลขทุกขั้น (2) อธิบายความหมายของพจน์แกมมาในเชิงเศรษฐศาสตร์ว่าสะท้อนอะไรที่ดีกว่าการใช้เดลตาอย่างเดียว

ข้อ 810 คะแนน · แนวคิด Risk-Neutral Valuation

ในการพิสูจน์สมการ Black–Scholes พจน์ดริฟต์ $\mu$ ของหุ้นหายไปจากสมการราคาออปชั่น จงอธิบายว่า: (1) พจน์ $\mu$ หายไปได้อย่างไร (ใช้หลักการพอร์ตเฮดจ์) และ (2) ความหมายของ "risk-neutral valuation" คืออะไร และทำไมนักลงทุน 2 คนที่มีความคาดหวังผลตอบแทนต่างกันจึงตกลงราคาออปชั่นเดียวกันได้

เปิดเฉลยทั้งหมด (ทำครบก่อนนะ)

เฉลยข้อ 1 — ราคาฟอร์เวิร์ด

สูตรราคาฟอร์เวิร์ดสำหรับหุ้นที่ไม่มีปันผล:

$$F_0 = S_0\, e^{rT}$$

แทนค่า:

$$F_0 = 200\, e^{0.03 \times 2} = 200\, e^{0.06}$$

คำนวณ $e^{0.06} \approx 1.06184$

$$F_0 \approx 200 \times 1.06184 \approx 212.37 \text{ บาท}$$

ตอบ: ราคาฟอร์เวิร์ดที่ยุติธรรม $F_0 \approx 212.37$ บาท


เฉลยข้อ 2 — พุต–คอล พาริตี

ความสัมพันธ์พุต–คอล พาริตี:

$$C + K e^{-rT} = P + S_0$$

จัดรูปหา $P$:

$$P = C + K e^{-rT} - S_0$$

คำนวณ $K e^{-rT} = 150\, e^{-0.04} \approx 150 \times 0.96079 \approx 144.12$

$$P = 12 + 144.12 - 145 = 11.12 \text{ บาท}$$

ตอบ: ราคา European put $P \approx 11.12$ บาท


เฉลยข้อ 3 — BSM (ATM)

คำนวณ $d_1$ และ $d_2$:

$$d_1 = \frac{\ln(S_0/K) + (r + \sigma^2/2)T}{\sigma\sqrt{T}} = \frac{\ln(1) + (0.05 + 0.03125)(0.5)}{0.25\sqrt{0.5}}$$
$$d_1 = \frac{0 + 0.040625}{0.17678} \approx 0.2298$$
$$d_2 = d_1 - \sigma\sqrt{T} = 0.2298 - 0.17678 \approx 0.0530$$

ค่า $N(\cdot)$ จากตาราง: $N(d_1) = N(0.23) \approx 0.5909$, $N(d_2) = N(0.05) \approx 0.5211$

สำหรับ put: $N(-d_1) \approx 0.4091$, $N(-d_2) \approx 0.4789$

ราคา Call:

$$C = S_0 N(d_1) - K e^{-rT} N(d_2) = 60(0.5909) - 60(0.97531)(0.5211)$$
$$C = 35.454 - 60(0.97531)(0.5211) \approx 35.454 - 30.493 \approx 4.96 \text{ บาท}$$

ราคา Put (ใช้พาริตี):

$$P = C + K e^{-rT} - S_0 = 4.96 + 58.52 - 60 \approx 3.47 \text{ บาท}$$

ตอบ: Call $\approx 4.96$ บาท · Put $\approx 3.47$ บาท


เฉลยข้อ 4 — BSM (OTM Call)

คำนวณ $d_1$:

$$d_1 = \frac{\ln(80/85) + (0.04 + 0.35^2/2)(1)}{0.35\sqrt{1}} = \frac{-0.06062 + 0.10125}{0.35} = \frac{0.04063}{0.35} \approx 0.1161$$
$$d_2 = 0.1161 - 0.35 = -0.2339$$

ค่า $N(\cdot)$: $N(0.12) \approx 0.5462$, $N(-0.23) \approx 0.4075$

ราคา Call:

$$C = 80(0.5462) - 85(0.96079)(0.4075) = 43.696 - 85(0.96079)(0.4075)$$
$$C = 43.696 - 85 \times 0.39152 \approx 43.696 - 33.279 \approx 10.42 \text{ บาท}$$

ตอบ: ราคา European call $\approx 10.42$ บาท


เฉลยข้อ 5 — ทวินาม 2 ขั้น

ขั้น 1: หาพารามิเตอร์

$$u = e^{\sigma\sqrt{\Delta t}} = e^{0.2\sqrt{0.5}} \approx 1.1519$$
$$d = \frac{1}{u} = \frac{1}{1.1519} \approx 0.8681$$
$$p = \frac{e^{r\Delta t} - d}{u - d} = \frac{1.0253 - 0.8681}{1.1519 - 0.8681} = \frac{0.1572}{0.2838} \approx 0.5539$$

ดังนั้น $1 - p \approx 0.4461$

ขั้น 2: ราคาหุ้นทุกโหนด

$$S_{uu} = 100 \times 1.1519^2 \approx 132.69$$
$$S_{ud} = 100 \times 1.1519 \times 0.8681 \approx 100.00$$
$$S_{dd} = 100 \times 0.8681^2 \approx 75.36$$

ขั้น 3: Payoff ปลายทาง (European call, $K=100$)

$$C_{uu} = \max(132.69 - 100, 0) = 32.69$$
$$C_{ud} = \max(100 - 100, 0) = 0$$
$$C_{dd} = \max(75.36 - 100, 0) = 0$$

ขั้น 4: คิดย้อนกลับ

ที่โหนด $u$ (หลังขั้นแรก):

$$C_u = e^{-r\Delta t}\bigl[p\cdot C_{uu} + (1-p)\cdot C_{ud}\bigr] = e^{-0.025}[0.5539 \times 32.69 + 0.4461 \times 0] \approx 0.97531 \times 18.11 \approx 17.66$$

ที่โหนด $d$:

$$C_d = e^{-0.025}[0.5539 \times 0 + 0.4461 \times 0] = 0$$

ราคา ณ วันนี้:

$$C_0 = e^{-0.025}[0.5539 \times 17.66 + 0.4461 \times 0] \approx 0.97531 \times 9.782 \approx 9.54 \text{ บาท}$$

ตอบ: ราคา European call $\approx 9.54$ บาท


เฉลยข้อ 6 — เดลตาเฮดจ์

พอร์ตปัจจุบัน: short 500 call แต่ละตัวมี $\Delta = 0.45$

$$\Delta_{\text{port}} = -500 \times 0.45 = -225$$

เพื่อให้ $\Delta_{\text{port}} = 0$ ต้องเพิ่มเดลตา $+225$ โดยการซื้อหุ้น 225 หน่วย (เดลตาของหุ้น = 1 ต่อหน่วย)

เหตุผล: ถ้าราคาหุ้นขึ้น ออปชั่น call ที่เรา short จะขาดทุน แต่หุ้นที่ซื้อไว้จะกำไร ชดเชยกันพอดี ทำให้พอร์ตไม่ไวต่อการขยับของราคาหุ้นขนาดเล็ก

ตอบ: ซื้อหุ้น 225 หน่วย เพื่อทำให้พอร์ต delta-neutral


เฉลยข้อ 7 — กรีก & การประมาณ P&L

สูตร Taylor อันดับสอง:

$$\Delta C \approx \Delta \cdot \Delta S + \frac{1}{2}\,\Gamma\,(\Delta S)^2$$

แทนค่า $\Delta = 0.55$, $\Gamma = 0.03$, $\Delta S = 4$:

$$\Delta C \approx 0.55 \times 4 + \frac{1}{2} \times 0.03 \times 4^2 = 2.20 + \frac{1}{2} \times 0.03 \times 16$$
$$\Delta C \approx 2.20 + 0.24 = 2.44 \text{ บาท}$$

บทบาทพจน์แกมมา: เดลตาสมมติว่าความสัมพันธ์ราคาออปชั่น–หุ้นเป็นเส้นตรง แต่ในความจริงเส้นโค้ง (convexity) แกมมาจับความโค้งนี้ไว้ ยิ่งการขยับ $\Delta S$ ใหญ่ พจน์ $\frac{1}{2}\Gamma(\Delta S)^2$ ยิ่งสำคัญ ละเลยไม่ได้

ตอบ: ราคา call เพิ่มขึ้นประมาณ $\Delta C \approx 2.44$ บาท


เฉลยข้อ 8 — Risk-Neutral Valuation

(1) ทำไม $\mu$ หายไป?

ในการพิสูจน์ BSM เราสร้างพอร์ต $\Pi$ ที่ประกอบด้วย long $\partial C/\partial S$ หน่วยหุ้น และ short 1 ออปชั่น:

$$d\Pi = \frac{\partial C}{\partial S}\,dS - dC$$

เมื่อแทน $dS$ และ $dC$ (จาก Ito's lemma) พจน์ที่มี $dW$ (noise แบบสุ่มซึ่งมี $\mu$ แฝงอยู่) จะหักล้างกันพอดี เพราะเราเลือกสัดส่วนถือครองพอดีจะทำให้พอร์ตปราศจากความเสี่ยง ($d\Pi$ ไม่มีพจน์ $dW$) พอร์ตที่ไร้ความเสี่ยงต้องให้ผลตอบแทน $r$ เท่านั้น $\mu$ จึงไม่ปรากฏในสมการ

(2) Risk-Neutral Valuation คืออะไร?

เมื่อ $\mu$ หายไป เราตั้งราคาออปชั่นได้ราวกับว่านักลงทุนทุกคนเป็นกลางต่อความเสี่ยง (risk-neutral) นั่นคือทุกสินทรัพย์โตด้วย $r$ ในโลกนั้น เราใช้ $r$ เป็นอัตราคิดลดและคำนวณ expected payoff ภายใต้ risk-neutral measure $\mathbb{Q}$ แทน real-world measure $\mathbb{P}$

นักลงทุน 2 คนที่มีความคาดหวัง $\mu$ ต่างกัน ยังตกลงราคาออปชั่นเดียวกันได้เพราะราคาออปชั่นไม่ขึ้นกับ $\mu$ — ขึ้นกับ $r$, $\sigma$, $S_0$, $K$, $T$ เท่านั้น ซึ่งทุกคนเห็นตรงกัน

ตอบ: $\mu$ หายไปเพราะพอร์ตเฮดจ์กำจัดความเสี่ยงได้สมบูรณ์ · risk-neutral valuation คือการตั้งราคาภายใต้ measure ที่สินทรัพย์ทุกตัวโตด้วย $r$ โดยไม่จำเป็นต้องรู้ $\mu$ ของนักลงทุนแต่ละคน


เกณฑ์ให้คะแนนตัวเอง

คะแนน ระดับ ความหมาย
85 – 100 แม่นสูตรพื้นฐานดีเยี่ยม ใช้สูตร M4–M6 ได้คล่อง = ระดับ "สอบผ่านสบาย" (ราว B ในข้อสอบจริง) — ยังไม่ใช่ระดับ 3.8 ดูหมายเหตุใต้ตาราง
70 – 84 B — ใกล้พร้อม ทำเพิ่ม 1–2 รอบในจุดที่พลาด
55 – 69 C — ต้องเสริม กลับไปทบทวน Section B–C ก่อน
<55 ทบทวนใหม่ ผ่าน Section A–C ให้ครบก่อนลองสอบอีกครั้ง
📏 หมายเหตุความตรงไปตรงมา (ระดับของข้อสอบชุดนี้): ข้อสอบนี้วัด "ความแม่นในการใช้สูตรพื้นฐาน M4–M6" เป็นหลัก (6 ใน 8 ข้อเป็นการแทนสูตร และให้ค่า $N(d)$ มาแล้ว) — ทำได้ 85%+ จึงแปลว่า "ใช้สูตรคล่องระดับสอบผ่าน (B)" ยังไม่พอจะสรุปว่าเทียบเท่านักศึกษาเกรด 3.8 ข้อสอบระดับ 3.8 จริงจะ (1) ไม่แจกค่า $N(d)$ ให้ ต้องเปิดตารางเอง (2) มีข้อสร้างกลยุทธ์อาร์บิทราจเอง (3) มีข้อพิสูจน์ (4) มีกับดักแยกคนเข้าใจจริงออกจากคนท่องสูตร (5) ครอบคลุมกว้างขึ้น (futures มีปันผล, implied vol, American option) — ฉบับ "วัดเกรด 3.8 จริง" เป็นงานที่ทำเพิ่มได้ถ้าต้องการ
ข้อความให้กำลังใจ: ไม่ว่าผลจะออกมาเท่าไหร่ การที่คุณนั่งทำข้อสอบจำลองจนครบ 8 ข้อคือก้าวที่นักเรียนส่วนใหญ่ไม่ทำ ความเข้าใจ derivatives ต้องการการฝึกฝนซ้ำ ไม่ใช่แค่อ่าน — ทุกข้อที่พลาดคือแผนที่บอกว่าต้องฝึกตรงไหน ทบทวนเฉลยช้าๆ แล้วลองทำใหม่อีกครั้งโดยไม่ดูเฉลย นั่นคือวิธีที่ได้ผลที่สุด

✅ จบภาคปฏิบัติกลุ่ม 2 แล้วได้อะไร

ถ้าทำโจทย์ทั้ง 18 ข้อได้เอง พิสูจน์สูตรหลักตามได้ รันแล็บ Python เป็น และทำข้อสอบจำลองในเวลาได้ — นั่นคือระดับความสามารถที่เทียบได้กับนักศึกษาที่ "เอาจริง" ในวิชาอนุพันธ์/การตั้งราคา ไม่ใช่แค่ผ่าน แต่เข้าใจถึงระดับลงมือทำ

ขั้นต่อไปถ้าอยากต่อยอด: ทำภาคปฏิบัติแบบเดียวกันนี้ให้กลุ่ม 1 (รากฐาน), กลุ่ม 3 (พอร์ต/ความเสี่ยง) และกลุ่ม 4 (เชิงคำนวณ) — บอกนอมได้เลย

📖 ตำราอ้างอิงมาตรฐานถ้าอยากลงลึกกว่านี้: Hull Options, Futures, and Other Derivatives · Shreve Stochastic Calculus for Finance · Wilmott Quantitative Finance