it

WACC คือ — Weighted Average Cost of Capital

WACC คือ — Weighted Average Cost of Capital

WACC คืออะไร

WACC คือ — Weighted Average Cost of Capital

WACC Weighted Average Cost of Capital ต้นทุนเงินทุนถัวเฉลี่ยถ่วงน้ำหนัก Discount Rate DCF Valuation Capital Budgeting

ส่วนประกอบสัญลักษณ์ที่มาตัวอย่าง
Market Cap (Equity)Eหุ้น × ราคา600 ล้านบาท
Total DebtDหนี้สินรวม400 ล้านบาท
Total ValueV = E+Dมูลค่ารวม1,000 ล้านบาท
Cost of EquityReCAPM = Rf + β(Rm-Rf)12%
Cost of DebtRdดอกเบี้ยเฉลี่ย5%
Tax RateTcอัตราภาษี CIT20%
WACC-(E/V×Re)+(D/V×Rd×(1-Tc))8.8%

สูตรและการคำนวณ

# === WACC Calculation ===



from dataclasses import dataclass



@dataclass

class WACCInput:

    equity_value: float      # E: Market Cap (ล้านบาท)

    debt_value: float        # D: Total Debt (ล้านบาท)

    cost_of_equity: float    # Re: % (CAPM)

    cost_of_debt: float      # Rd: % (ดอกเบี้ยเฉลี่ย)

    tax_rate: float          # Tc: % (อัตราภาษี)



def calculate_wacc(w: WACCInput) -> dict:

    total_value = w.equity_value + w.debt_value

    equity_weight = w.equity_value / total_value

    debt_weight = w.debt_value / total_value

    

    equity_component = equity_weight * w.cost_of_equity

    debt_component = debt_weight * w.cost_of_debt * (1 - w.tax_rate)

    wacc = equity_component + debt_component

    

    return {

        "total_value": total_value,

        "equity_weight": equity_weight,

        "debt_weight": debt_weight,

        "equity_component": equity_component,

        "debt_component": debt_component,

        "wacc": wacc,

    }



# ตัวอย่าง: บริษัท ABC

abc = WACCInput(

    equity_value=600,     # Market Cap 600 ล้าน

    debt_value=400,       # หนี้สิน 400 ล้าน

    cost_of_equity=0.12,  # Re = 12% (จาก CAPM)

    cost_of_debt=0.05,    # Rd = 5% (ดอกเบี้ยเฉลี่ย)

    tax_rate=0.20,        # Tc = 20% (ภาษี CIT)

)



result = calculate_wacc(abc)

print("=== WACC Calculation: ABC ===")

print(f"  Equity Weight: {result['equity_weight']:.1%}")

print(f"  Debt Weight: {result['debt_weight']:.1%}")

print(f"  Equity Component: {result['equity_component']:.2%}")

print(f"  Debt Component: {result['debt_component']:.2%}")

print(f"  WACC: {result['wacc']:.2%}")



# CAPM: Cost of Equity

# Re = Rf + β × (Rm - Rf)

# Rf = Risk-free Rate (พันธบัตรรัฐบาล 10 ปี เช่น 2.5%)

# β = Beta (ความผันผวนเทียบตลาด เช่น 1.2)

# Rm = Market Return (ผลตอบแทนตลาดเฉลี่ย เช่น 10%)

# Re = 2.5% + 1.2 × (10% - 2.5%) = 2.5% + 9% = 11.5%



rf = 0.025   # Risk-free Rate 2.5%

beta = 1.2   # Beta

rm = 0.10    # Market Return 10%

re_capm = rf + beta * (rm - rf)

print(f"\n=== CAPM ===")

print(f"  Rf: {rf:.1%} | Beta: {beta} | Rm: {rm:.1%}")

print(f"  Re = {rf:.1%} + {beta} × ({rm:.1%} - {rf:.1%}) = {re_capm:.1%}")

การใช้งาน

# === DCF Valuation using WACC ===



@dataclass

class DCFInput:

    fcf_projections: list   # Free Cash Flow 5 ปี (ล้านบาท)

    terminal_growth: float  # Terminal Growth Rate

    wacc: float             # WACC



def dcf_valuation(d: DCFInput) -> dict:

    # PV of projected FCF

    pv_fcf = []

    for i, fcf in enumerate(d.fcf_projections, 1):

        pv = fcf / (1 + d.wacc) ** i

        pv_fcf.append(pv)

    

    # Terminal Value (Gordon Growth Model)

    last_fcf = d.fcf_projections[-1]

    terminal_value = last_fcf * (1 + d.terminal_growth) / (d.wacc - d.terminal_growth)

    pv_terminal = terminal_value / (1 + d.wacc) ** len(d.fcf_projections)

    

    enterprise_value = sum(pv_fcf) + pv_terminal

    

    return {

        "pv_fcf": pv_fcf,

        "total_pv_fcf": sum(pv_fcf),

        "terminal_value": terminal_value,

        "pv_terminal": pv_terminal,

        "enterprise_value": enterprise_value,

    }



dcf = DCFInput(

    fcf_projections=[100, 110, 121, 133, 146],  # FCF ปีที่ 1-5

    terminal_growth=0.03,  # Terminal Growth 3%

    wacc=0.088,            # WACC 8.8%

)



val = dcf_valuation(dcf)

print("=== DCF Valuation ===")

for i, pv in enumerate(val["pv_fcf"], 1):

    print(f"  Year {i} FCF PV: {pv:.1f} ล้านบาท")

print(f"  Total PV of FCF: {val['total_pv_fcf']:.1f} ล้านบาท")

print(f"  Terminal Value: {val['terminal_value']:.1f} ล้านบาท")

print(f"  PV of Terminal: {val['pv_terminal']:.1f} ล้านบาท")

print(f"  Enterprise Value: {val['enterprise_value']:.1f} ล้านบาท")

ปัจจัยที่ส่งผล

# === WACC Sensitivity Analysis ===



@dataclass

class Scenario:

    name: str

    equity_pct: float

    cost_equity: float

    cost_debt: float

    tax_rate: float

    wacc: float

    note: str



scenarios = [

    Scenario("Conservative (หนี้น้อย)",

        0.80, 0.12, 0.05, 0.20,

        0.80*0.12 + 0.20*0.05*0.80,

        "ปลอดภัย WACC สูงกว่า"),

    Scenario("Balanced (สมดุล)",

        0.60, 0.12, 0.05, 0.20,

        0.60*0.12 + 0.40*0.05*0.80,

        "สมดุล WACC ต่ำลง"),

    Scenario("Aggressive (หนี้มาก)",

        0.40, 0.14, 0.06, 0.20,

        0.40*0.14 + 0.60*0.06*0.80,

        "Re สูงขึ้นเพราะ Risk, Rd สูงขึ้น"),

    Scenario("High Interest Rate",

        0.60, 0.15, 0.08, 0.20,

        0.60*0.15 + 0.40*0.08*0.80,

        "ดอกเบี้ยสูง WACC สูงมาก"),

    Scenario("Low Tax Rate",

        0.60, 0.12, 0.05, 0.10,

        0.60*0.12 + 0.40*0.05*0.90,

        "Tax Shield น้อย WACC สูงขึ้นเล็กน้อย"),

]



print("=== WACC Scenarios ===")

for s in scenarios:

    print(f"  [{s.name}] WACC: {s.wacc:.2%}")

    print(f"    E/V: {s.equity_pct:.0%} | Re: {s.cost_equity:.0%} | Rd: {s.cost_debt:.0%} | Tax: {s.tax_rate:.0%}")

    print(f"    Note: {s.note}")

เคล็ดลับ

  • CAPM: ใช้ CAPM คำนวณ Cost of Equity ถูกต้องกว่าเดา
  • Beta: ดู Beta จาก Bloomberg Reuters หรือคำนวณจาก Historical Return
  • Tax Shield: อย่าลืมคูณ (1-Tc) สำหรับ Cost of Debt เพราะดอกเบี้ยลดภาษี
  • Market Value: ใช้ Market Value ไม่ใช่ Book Value สำหรับ Weight
  • Sensitivity: ทำ Sensitivity Analysis เปลี่ยน WACC ±1-2% ดูผลกระทบ

Best Practices สำหรับนักพัฒนา

WACC คือ — Weighted Average Cost of Capital

การเขียนโค้ดที่ดีไม่ใช่แค่ทำให้โปรแกรมทำงานได้ แต่ต้องเขียนให้อ่านง่าย ดูแลรักษาง่าย และ Scale ได้ หลัก SOLID Principles เป็นพื้นฐานสำคัญที่นักพัฒนาทุกคนควรเข้าใจ ได้แก่ Single Responsibility ที่แต่ละ Class ทำหน้าที่เดียว Open-Closed ที่เปิดให้ขยายแต่ปิดการแก้ไข Liskov Substitution ที่ Subclass ต้องใช้แทน Parent ได้ Interface Segregation ที่แยก Interface ให้เล็ก และ Dependency Inversion ที่พึ่งพา Abstraction ไม่ใช่ Implementation

เรื่อง Testing ก็ขาดไม่ได้ ควรเขียน Unit Test ครอบคลุมอย่างน้อย 80% ของ Code Base ใช้ Integration Test ทดสอบการทำงานร่วมกันของ Module ต่างๆ และ E2E Test สำหรับ Critical User Flow เครื่องมือยอดนิยมเช่น Jest, Pytest, JUnit ช่วยให้การเขียน Test เป็นเรื่องง่าย

เนื้อหาเกี่ยวข้อง — HAProxy Advanced Technical Debt Management

เรื่อง Version Control ด้วย Git ใช้ Branch Strategy ที่เหมาะกับทีม เช่น Git Flow สำหรับโปรเจคใหญ่ หรือ Trunk-Based Development สำหรับทีมที่ Deploy บ่อย ทำ Code Review ทุก Pull Request และใช้ CI/CD Pipeline ทำ Automated Testing และ Deployment

แนะนำเพิ่มเติม — บทวิเคราะห์จาก XM Signal

เปรียบเทียบข้อดีและข้อเสีย

ข้อดีข้อเสีย
ประสิทธิภาพสูง ทำงานได้เร็วและแม่นยำ ลดเวลาทำงานซ้ำซ้อนต้องใช้เวลาเรียนรู้เบื้องต้นพอสมควร มี Learning Curve สูง
มี Community ขนาดใหญ่ มีคนช่วยเหลือและแหล่งเรียนรู้มากมายบางฟีเจอร์อาจยังไม่เสถียร หรือมีการเปลี่ยนแปลงบ่อยในเวอร์ชันใหม่
รองรับ Integration กับเครื่องมือและบริการอื่นได้หลากหลายต้นทุนอาจสูงสำหรับ Enterprise License หรือ Cloud Service
เป็น Open Source หรือมีเวอร์ชันฟรีให้เริ่มต้นใช้งานต้องการ Hardware หรือ Infrastructure ที่เพียงพอ

จากตารางเปรียบเทียบจะเห็นว่าข้อดีมีมากกว่าข้อเสียอย่างชัดเจน โดยเฉพาะในแง่ของประสิทธิภาพและความสามารถในการ Scale สำหรับข้อเสียส่วนใหญ่สามารถแก้ไขได้ด้วยการเรียนรู้อย่างเป็นระบบและวางแผนทรัพยากรให้เหมาะสม

เนื้อหาเกี่ยวข้อง — อ่านต่อ: AWS Amplify MLOps Workflow

WACC คืออะไร

Weighted Average Cost of Capital ต้นทุนเงินทุนถัวเฉลี่ย Debt Equity Weight Discount Rate DCF IRR ผลตอบแทนขั้นต่ำ

คำนวณอย่างไร

WACC = (E/V×Re) + (D/V×Rd×(1-Tc)) E Market Cap D Total Debt Re CAPM Rd ดอกเบี้ย Tc ภาษี ตัวอย่าง 60/40 Re12% Rd5% Tax20% = 8.8%

แนะนำเพิ่มเติม — อีบุ๊กการลงทุน SiamCafeBook

เนื้อหาเกี่ยวข้อง — แนะนำให้อ่าน กลยุทธ์ demand supply zone

ใช้ทำอะไร

DCF Valuation Discount Rate Capital Budgeting IRR > WACC EVA M&A Performance Benchmark Optimal Capital Structure

ปัจจัยที่ส่งผลมีอะไร

Risk-free Rate Beta Capital Structure Tax Rate Credit Rating Market Risk Premium ดอกเบี้ยตลาด สัดส่วนหนี้ ภาษี ความเสี่ยง

เนื้อหาเกี่ยวข้อง — ACME Protocol Log Management ELK

สรุป

WACC Weighted Average Cost of Capital ต้นทุนเงินทุน CAPM DCF Valuation Capital Budgeting Debt Equity Tax Shield Sensitivity Analysis

XM Legend · เทรดเดอร์ & ผู้สอน Forex 13 ปี

ผู้ก่อตั้ง SiamCafe ตั้งแต่ปี 1997 · เทรดเดอร์สาย Forex มากกว่า 13 ปี ได้รับการยกย่องเป็น XM Legend · แบ่งปันความรู้ Forex, ไอที, AI และการเทรด จากประสบการณ์จริงในตลาดจริง