{"comment": "หัวข้อย่อย: บทนำเกี่ยวกับ Greeks และความสำคัญในตลาดออปชันคริปโต"}

ในโลกของการซื้อขายออปชันคริปโต ตัวเลข Greeks คือเข็มทิศที่ช่วยให้นักเทรดมองเห็งความเสี่ยงที่ซ่อนอยู่ในพอร์ตโฟลิโอ อย่างไรก็ตาม สิ่งที่หลายคนไม่คาดคิดคือ Vega และ Gamma มักเคลื่อนที่ในทิศทางตรงข้ามกัน — เมื่อสถานการณ์ตลาดเปลี่ยนแปลง สิ่งที่คุ้มครองด้วย Gamma อาจเปิดเผยความเสี่ยงจาก Vega ทันที บทความนี้จะพาคุณเจาะลึกกลไกของความขัดแย้งนี้ พร้อมวิธีแก้ไขที่ใช้งานได้จริงในตลาดคริปโต

{"comment": "คำอธิบาย: ทำไมหัวข้อนี้สำคัญสำหรับนักเทรดออปชันคริปโต"}

Greeks คืออะไร และทำไมต้องให้ความสำคัญ

ในทฤษฎีออปชัน Greeks คือตัวชี้วัดทางคณิตศาสตร์ที่แสดงว่าราคาออปชันจะเปลี่ยนแปลงอย่างไรเมื่อปัจจัยต่างๆ เคลื่อนไหว สำหรับตลาดคริปโตที่มีความผันผวน (volatility) สูงกว่าตลาดหุ้นทั่วไปถึง 5–10 เท่า การเข้าใจ Greeks จึงไม่ใช่ทางเลือก แต่เป็นสิ่งจำเป็น

{"comment": "ตารางเปรียบเทียบ Greeks หลักที่ใช้ในการวัดความเสี่ยงออปชันคริปโต"}
Greek สิ่งที่วัด ความสำคัญในคริปโต ช่วงค่าทั่วไป (ATM)
Delta (Δ) ความเปลี่ยนแปลงราคาออปชันต่อการเคลื่อนไหวของราคาสินทรัพย์ สูง — ราคา BTC ขยับ 5% ต่อชั่วโมงได้บ่อยครั้ง 0.45–0.55
Gamma (Γ) อัตราการเปลี่ยนแปลงของ Delta สูงมาก — ยิ่งใกล้ expiry ยิ่งรุนแรง 0.02–0.08 ต่อ 1%
Vega (Ν) ความเปลี่ยนแปลงราคาออปชันต่อความผันผวน 1% สูงมาก — IV คริปโต 60%–180% 0.15–0.40 ต่อ 1% IV
Theta (Θ) มูลค่าตามเวลาที่สูญเสียต่อวัน รุนแรง — ออปชันคริปโต decay เร็วมาก -0.03 ถึง -0.15 ต่อวัน
Rho (ρ) ความเปลี่ยนแปลงต่ออัตราดอกเบี้ย ต่ำ — ตลาดคริปโตไม่ค่อยใช้ดอกเบี้ยเป็นตัวตั้ง < 0.01
{"comment": "เน้นว่าตารางนี้ช่วยให้เห็นภาพรวมของ Greeks ในตลาดคริปโตอย่างรวดเร็ว"}
{"comment": "ตารางเปรียบเทียบบริการ API สำหรับ Greeks calculation และตลาดคริปโต"}

เปรียบเทียบบริการ API สำหรับคำนวณ Greeks ในตลาดคริปโต

เกณฑ์เปรียบเทียบ HolySheep AI API อย่างเป็นทางการ (แพลตฟอร์มเทรด) Deribit / Chainlink
ความเร็ว (latency) < 50 มิลลิวินาที ⚡ 100–300 มิลลิวินาที 80–200 มิลลิวินาที
ค่าบริการ เริ่มต้น $0.42/MTok (DeepSeek V3.2) คิดค่าธรรมเนียมเทรด 0.02%–0.05% ฟรี (บางฟีเจอร์) / ค่า LINK token
รองรับ Greeks แบบ real-time ✅ ผ่านโมเดล AI ✅ แต่จำกัดประเภทออปชัน ⚠️ เฉพาะ IV พื้นฐาน
การคำนวณ Vega-Gamma conflict ✅ มีฟีเจอร์ในตัว ❌ ต้องเขียนโค้ดเอง ❌ ไม่มี
รองรับ BTC, ETH, SOL options ✅ ทั้งหมด ✅ ขึ้นกับแพลตฟอร์ม ⚠️ เฉพาะ BTC
รองรับ DeFi options (dYdX, Opyn) ✅ ผ่าน Web3 integration ❌ ไม่รองรับ ⚠️ ต้องดึงข้อมูลเอง
ความถูกต้องของ Black-Scholes ✅ ปรับแต่งสำหรับ crypto skew ✅ มาตรฐาน ⚠️ ไม่ปรับ IV smile
รูปแบบการชำระเงิน WeChat / Alipay / USD ⭐ เฉพาะสกุลเงินของแพลตฟอร์ม Crypto เท่านั้น
ประหยัดเมื่อเทียบกับ OpenAI 85%+ ต่อ 1M tokens ไม่ใช่ LLM API ไม่ใช่ LLM API
เครดิตฟรีเมื่อลงทะเบียน ✅ มี ❌ ไม่มี ❌ ไม่มี
{"comment": "ตารางนี้ช่วยให้เห็นภาพชัดว่า HolySheep มีข้อได้เปรียบด้านความเร็ว ราคา และฟีเจอร์ที่ครอบคลุมกว่า"}
{"comment": "ส่วน Vega-Gamma Conflict - แกนกลางของบทความ"}

ความขัดแย้งระหว่าง Vega กับ Gamma คืออะไร

ในการบริหารพอร์ตโฟลิโอออปชัน นักเทรดมักพยายามป้องกันความเสี่ยง (hedge) โดยใช้ Gamma เป็นตัวบอกว่า Delta จะเปลี่ยนเร็วแค่ไหน ขณะที่ Vega บอกว่าออปชันจะราคาจะได้รับผลกระทบจากความผันผวนอย่างไร

ปัญหาเกิดขึ้นเมื่อ:

{"comment": "อธิบายสถานการณ์จริงที่เกิด conflict พร้อมตัวอย่างตัวเลขจากประสบการณ์จริง"}

จากประสบการณ์การเทรดออปชัน BTC ของผู้เขียน ช่วงที่ BTC ราคาลดลงจาก $69,000 เป็น $62,000 ในเดือนมิถุนายน 2024 พอร์ต short put ที่มี Gamma สูง (ATM options ระยะ 7 วัน) ถูกบังคับ rebalance ทุก 2 ชั่วโมง ค่าธรรมเนียม slippage รวม 0.8% ของมูลค่าพอร์ต แต่ที่แย่กว่าคือ IV พุ่งจาก 58% เป็น 95% ทำให้ Vega exposure ที่ไม่ได้ป้องกันสร้างผลขาดทุนเพิ่มอีก 2.3% — นี่คือจุดที่ vega-gamma conflict แสดงออกอย่างชัดเจน

สาเหตุที่ Vega-Gamma Conflict รุนแรงในตลาดคริปโต

{"comment": "รายละเอียด 4 ปัจจัยที่ทำให้ตลาดคริปโตมีความเสี่ยง vega-gamma สูงกว่าตลาดปกติ"}

ปัจจัยที่ 1: Volatility Skew ที่รุนแรง

ในตลาดหุ้น SPX options มี IV skew ประมาณ 5–10% ระหว่าง OTM call และ OTM put แต่ในตลาด BTC options skew ระหว่าง put และ call อาจสูงถึง 15–25% ทำให้ Vega ของ put options สูงกว่า call อย่างมีนัยสำคัญ

ปัจจัยที่ 2: Term Structure ที่ผันผวน

ในช่วงตลาดกระทิง (bull market) ออปชันระยะสั้นมี IV ต่ำกว่าระยะยาว (backwardation) แต่เมื่อเกิดเหตุการณ์ black swan IV ระยะสั้นพุ่งทะลุ IV ระยะยาวทันที (contango กลับเป็น backwardation) สร้าง vega exposure มหาศาล

ปัจจัยที่ 3: Liquidity Fragmentation

ตลาดคริปโตมีหลาย exchange (Deribit, OKX, Binance, Bybit) ที่มี IV ต่างกัน 2–5% ในสถานะปกติ ความผิดพลาดจาก arbitrage ทำให้ Greeks คำนวณได้ไม่แม่นยำ

ปัจจัยที่ 4: Funding Rate และ Futures Premium

ในตลาด perpetual futures ที่มี funding rate สูง (0.01%–0.1% ต่อ 8 ชั่วโมง) การ hedge ด้วย futures จะมี cost สูง ทำให้ Delta hedge ไม่สมบูรณ์ ส่งผลให้ Gamma exposure แท้จริงสูงกว่าที่คำนวณได้

{"comment": "ส่วนโค้ด Python สำหรับคำนวณ Greeks และ Vega-Gamma conflict"}

โค้ด Python: คำนวณ Vega-Gamma Conflict Score

ด้านล่างคือโค้ด Python ที่ใช้ในการคำนวณ Vega-Gamma Conflict Score ซึ่งเป็นตัวชี้วัดที่บอกว่าพอร์ตโฟลิโอของคุณมีความเสี่ยงจากความขัดแย้งนี้มากน้อยแค่ไหน


"""
Vega-Gamma Conflict Score Calculator
สำหรับพอร์ตโฟลิโอออปชันคริปโต
ติดตั้ง: pip install scipy numpy pandas
"""

import numpy as np
from scipy.stats import norm
from typing import List, Dict, Tuple

class CryptoOptionsGreeks:
    """คำนวณ Greeks สำหรับออปชันคริปโตพร้อมวิเคราะห์ Vega-Gamma Conflict"""
    
    def __init__(self, spot_price: float, risk_free_rate: float = 0.05):
        self.S = spot_price      # ราคา spot ปัจจุบัน
        self.r = risk_free_rate  # อัตราดอกเบี้ย (ปรับตาม crypto staking rate)
    
    def black_scholes_price(
        self, K: float, T: float, sigma: float, 
        option_type: str = 'call'
    ) -> float:
        """คำนวณราคาออปชันด้วย Black-Scholes (ปรัетеสำหรับ crypto)"""
        if T <= 0:
            # ถ้าใกล้ expiry แล้ว
            intrinsic = max(self.S - K, 0) if option_type == 'call' else max(K - self.S, 0)
            return intrinsic
        
        d1 = (np.log(self.S / K) + (self.r + 0.5 * sigma**2) * T) / (sigma * np.sqrt(T))
        d2 = d1 - sigma * np.sqrt(T)
        
        if option_type == 'call':
            price = self.S * norm.cdf(d1) - K * np.exp(-self.r * T) * norm.cdf(d2)
        else:
            price = K * np.exp(-self.r * T) * norm.cdf(-d2) - self.S * norm.cdf(-d1)
        
        return price
    
    def calculate_greeks(
        self, K: float, T: float, sigma: float, 
        option_type: str = 'call'
    ) -> Dict[str, float]:
        """คำนวณ Greeks ทั้งหมดในครั้งเดียว"""
        if T <= 1e-6:
            T = 1e-6  # ป้องกัน division by zero
        
        d1 = (np.log(self.S / K) + (self.r + 0.5 * sigma**2) * T) / (sigma * np.sqrt(T))
        d2 = d1 - sigma * np.sqrt(T)
        
        delta = norm.cdf(d1) if option_type == 'call' else norm.cdf(d1) - 1
        
        # Gamma: เหมือนกันทั้ง call และ put
        gamma = norm.pdf(d1) / (self.S * sigma * np.sqrt(T))
        
        # Vega: เหมือนกันทั้ง call และ put
        vega = self.S * norm.pdf(d1) * np.sqrt(T) / 100  # ต่อ 1% IV change
        
        # Theta
        term1 = -self.S * norm.pdf(d1) * sigma / (2 * np.sqrt(T))
        if option_type == 'call':
            theta = (term1 - self.r * K * np.exp(-self.r * T) * norm.cdf(d2)) / 365
        else:
            theta = (term1 + self.r * K * np.exp(-self.r * T) * norm.cdf(-d2)) / 365
        
        return {
            'delta': delta,
            'gamma': gamma,
            'vega': vega,
            'theta': theta,
            'd1': d1,
            'd2': d2
        }
    
    def vega_gamma_conflict_score(
        self, 
        positions: List[Dict], 
        iv_change_pct: float = 10.0
    ) -> Dict[str, float]:
        """
        คำนวณ Vega-Gamma Conflict Score
        
        Args:
            positions: รายการสถานะ เช่น 
                [{'K': 65000, 'T': 7/365, 'sigma': 0.85, 'type': 'put', 'qty': -1.0}]
            iv_change_pct: การเปลี่ยนแปลง IV ที่คาดหวัง (%)
        
        Returns:
            dict: conflict score, net vega, net gamma, รายละเอียด
        """
        total_vega = 0.0
        total_gamma = 0.0
        total_delta = 0.0
        position_details = []
        
        for pos in positions:
            greeks = self.calculate_greeks(
                K=pos['K'],
                T=pos['T'],
                sigma=pos['sigma'],
                option_type=pos['type']
            )
            
            qty = pos['qty']
            vega_contrib = greeks['vega'] * qty
            gamma_contrib = greeks['gamma'] * qty
            delta_contrib = greeks['delta'] * qty
            
            total_vega += vega_contrib
            total_gamma += gamma_contrib
            total_delta += delta_contrib
            
            position_details.append({
                'strike': pos['K'],
                'type': pos['type'],
                'qty': qty,
                'delta': delta_contrib,
                'gamma': gamma_contrib,
                'vega': vega_contrib,
                'atm_distance_pct': (pos['K'] - self.S) / self.S * 100
            })
        
        # Vega-Gamma Conflict Score Formula
        # ถ้า net_gamma และ net_vega มีเครื่องหมายเดียวกัน → conflict สูง
        # ความหมาย: เมื่อราคาเคลื่อน (จาก gamma) ความผันผวนก็จะเปลี่ยน (จาก vega)
        # และการเปลี่ยนนั้นจะขยายความเสียหายแทนที่จะช่วยป้องกัน
        
        if total_gamma != 0:
            # Sensitivity ratio: วัดว่า 1% ราคาเปลี่ยนจะทำให้ vega exposure เปลี่ยนแค่ไหน
            vega_gamma_ratio = abs(total_vega) / abs(total_gamma)
        else:
            vega_gamma_ratio = abs(total_vega) * 1000
        
        # Conflict score: 0 = ไม่มี conflict, >50 = conflict สูง, >100 = อันตราย
        # คำนวณจาก: IV impact × Price sensitivity × Position size
        iv_impact = iv_change_pct / 100
        conflict_score = vega_gamma_ratio * abs(total_gamma) * iv_impact * 1000
        
        # Risk classification
        if conflict_score < 20:
            risk_level = "🟢 ต่ำ"
        elif conflict_score < 50:
            risk_level = "🟡 ปานกลาง"
        elif conflict_score < 100:
            risk_level = "🟠 สูง"
        else:
            risk_level = "🔴 วิกฤต - พิจารณาปิดสถานะทันที"
        
        return {
            'net_delta': total_delta,
            'net_gamma': total_gamma,
            'net_vega': total_vega,
            'vega_gamma_ratio': vega_gamma_ratio,
            'conflict_score': round(conflict_score, 2),
            'risk_level': risk_level,
            'iv_shock_impact': round(total_vega * iv_impact, 4),
            'positions': position_details
        }


===== ตัวอย่างการใช้งาน =====

if __name__ == "__main__": # สมมติ BTC ราคา $65,000 calculator = CryptoOptionsGreeks(spot_price=65000, risk_free_rate=0.08) # พอร์ตโฟลิโอตัวอย่าง: Short 1 put ATM + Long 1 call OTM + Short 2 puts ITM positions = [ # Short 1 put ที่ ATM (K=65000, T=7 วัน, IV=85%) {'K': 65000, 'T': 7/365, 'sigma': 0.85, 'type': 'put', 'qty': -1.0}, # Long 1 call ที่ OTM (K=70000, T=14 วัน, IV=90%) {'K': 70000, 'T': 14/365, 'sigma': 0.90, 'type': 'call', 'qty': 1.0}, # Short 2 puts ITM (K=60000, T=7 วัน, IV=80%) {'K': 60000, 'T': 7/365, 'sigma': 0.80, 'type': 'put', 'qty': -2.0}, ] result = calculator.vega_gamma_conflict_score( positions=positions, iv_change_pct=20.0 # คาดว่า IV จะเปลี่ยน 20% ) print("=" * 50) print("VEGA-GAMMA CONFLICT ANALYSIS") print("=" * 50) print(f"Net Delta: {result['net_delta']:.4f}") print(f"Net Gamma: {result['net_gamma']:.6f}") print(f"Net Vega: {result['net_vega']:.4f}") print(f"VG Ratio: {result['vega_gamma_ratio']:.2f}") print(f"Conflict Score: {result['conflict_score']}") print(f"Risk Level: {result['risk_level']}") print(f"IV Shock Impact: ${result['iv_shock_impact']:.2f} per 1% IV") print("=" * 50) print("\nPosition Details:") for p in result['positions']: print(f" K={p['strike']} {p['type']} x {p['qty']}: " f"Δ={p['delta']:.3f} Γ={p['gamma']:.5f} ν={p['vega']:.3f} " f"(ATM dist: {p['atm_distance_pct']:+.1f}%)")
{"comment": "ตัวอย่างผลลัพธ์จากโค้ดข้างต้น แสดง conflict score และ risk level"}

เมื่อรันโค้ดด้านบนกับพอร์ตตัวอย่าง