Technology

dca dollar-cost averaging คือ

dca dollar cost averaging คอ
dca dollar-cost averaging คือ | SiamCafe Blog
2025-07-08· อ. บอม — SiamCafe.net· 8,828 คำ

DCA คืออะไร

DCA Dollar-Cost Averaging ลงทุนสม่ำเสมอ ต้นทุนเฉลี่ย Market Timing วินัยการออม หุ้น กองทุน ETF คริปโต ทองคำ ระยะยาว

เดือนราคา/หน่วยลงทุน (บาท)หน่วยที่ได้ต้นทุนเฉลี่ย
ม. ค.1005,00050.00100.00
ก. พ.805,00062.5088.89
มี. ค.605,00083.3376.92
เม. ย.805,00062.5077.42
พ. ค.1005,00050.0081.17
มิ. ย.1205,00041.6785.71
รวม30,000350.0085.71

ราคาเฉลี่ย = (100+80+60+80+100+120)/6 = 90 บาท แต่ต้นทุนเฉลี่ย DCA = 85.71 บาท ต่ำกว่าราคาเฉลี่ย 4.76%

วิธีทำ DCA

# === DCA Calculator ===

from dataclasses import dataclass

@dataclass
class DCAInvestment:
    month: str
    price: float
    amount: float
    units: float = 0.0
    avg_cost: float = 0.0

def calculate_dca(investments):
    total_amount = 0.0
    total_units = 0.0
    for inv in investments:
        inv.units = inv.amount / inv.price
        total_amount += inv.amount
        total_units += inv.units
        inv.avg_cost = total_amount / total_units
    return total_amount, total_units

# ตัวอย่าง DCA ลงทุน 5000 บาท/เดือน ใน SET50 ETF
monthly = [
    DCAInvestment("Jan", 100, 5000),
    DCAInvestment("Feb", 80, 5000),
    DCAInvestment("Mar", 60, 5000),
    DCAInvestment("Apr", 80, 5000),
    DCAInvestment("May", 100, 5000),
    DCAInvestment("Jun", 120, 5000),
    DCAInvestment("Jul", 110, 5000),
    DCAInvestment("Aug", 90, 5000),
    DCAInvestment("Sep", 95, 5000),
    DCAInvestment("Oct", 105, 5000),
    DCAInvestment("Nov", 115, 5000),
    DCAInvestment("Dec", 125, 5000),
]

total_amt, total_units = calculate_dca(monthly)
avg_price = sum(m.price for m in monthly) / len(monthly)

print("=== DCA Results ===")
print(f"  Total Invested: {total_amt:,.0f} THB")
print(f"  Total Units: {total_units:,.2f}")
print(f"  Avg Cost (DCA): {total_amt/total_units:,.2f} THB")
print(f"  Avg Price: {avg_price:,.2f} THB")
print(f"  DCA Advantage: {(1 - (total_amt/total_units)/avg_price)*100:.2f}%")
print(f"  Current Value: {total_units * monthly[-1].price:,.0f} THB")
print(f"  Profit: {total_units * monthly[-1].price - total_amt:,.0f} THB")

print("\n=== Monthly Detail ===")
for m in monthly:
    print(f"  {m.month}: Price={m.price} Units={m.units:.2f} AvgCost={m.avg_cost:.2f}")

DCA vs Lump Sum

# === DCA vs Lump Sum Comparison ===

@dataclass
class Comparison:
    scenario: str
    lump_sum_result: str
    dca_result: str
    winner: str
    reason: str

comparisons = [
    Comparison("ตลาดขึ้นต่อเนื่อง",
        "กำไร 20% (ลงทุนก่อน ได้ราคาถูกกว่า)",
        "กำไร 12% (ซื้อแพงขึ้นเรื่อยๆ)",
        "Lump Sum",
        "ตลาดขึ้น Lump Sum ได้ราคาต่ำสุดตั้งแต่แรก"),
    Comparison("ตลาดลงก่อนแล้วขึ้น (V-Shape)",
        "ขาดทุน 5% → กลับมา Break Even",
        "กำไร 8% (ซื้อถูกตอนตลาดตก)",
        "DCA",
        "DCA สะสมหน่วยถูกตอนตลาดตก"),
    Comparison("ตลาด Sideways (ขึ้นลงสลับ)",
        "กำไร 2% (ราคาเกือบเท่าเดิม)",
        "กำไร 5% (ต้นทุนเฉลี่ยต่ำกว่า)",
        "DCA",
        "DCA ได้ประโยชน์จาก Volatility"),
    Comparison("ตลาดลงอย่างเดียว (Bear)",
        "ขาดทุน 30%",
        "ขาดทุน 15% (ซื้อถูกลงเรื่อยๆ)",
        "DCA (ขาดทุนน้อยกว่า)",
        "DCA ลด Drawdown แต่ยังขาดทุน"),
    Comparison("สถิติ 20 ปี S&P 500",
        "ชนะ 68% ของ Rolling 12-month",
        "ชนะ 32% ของ Rolling 12-month",
        "Lump Sum (สถิติ)",
        "ตลาดหุ้นขึ้นระยะยาว ~70% ของเวลา"),
]

print("=== DCA vs Lump Sum ===")
for c in comparisons:
    print(f"\n  [{c.scenario}]")
    print(f"    Lump Sum: {c.lump_sum_result}")
    print(f"    DCA: {c.dca_result}")
    print(f"    Winner: {c.winner}")
    print(f"    Reason: {c.reason}")

Platform และสินทรัพย์

# === DCA Platforms & Assets for Thai Investors ===

@dataclass
class DCAOption:
    asset: str
    platform: str
    min_amount: str
    fee: str
    auto_invest: str

options = [
    DCAOption("กองทุน SET50 / SET100 ETF",
        "Finnomena, Jitta Wealth, SCBS, KBank",
        "100-1000 บาท/ครั้ง",
        "0-1.5% ต่อปี (Management Fee)",
        "Yes (ตั้ง Auto ได้ทุก Platform)"),
    DCAOption("S&P 500 ETF (ต่างประเทศ)",
        "Finnomena, Jitta Wealth, IBKR",
        "500-1000 บาท/ครั้ง",
        "0.03-0.5% (ETF Expense Ratio)",
        "Yes"),
    DCAOption("หุ้นไทยรายตัว",
        "Settrade, Streaming, SCBS",
        "ขั้นต่ำ 100 หุ้น (Board Lot)",
        "0.1-0.25% ค่า Commission",
        "บางโบรกเกอร์มี DCA Plan"),
    DCAOption("Bitcoin / Crypto",
        "Bitkub, Satang Pro, Binance",
        "1-100 บาท/ครั้ง",
        "0.25% ค่า Trading Fee",
        "Bitkub Auto Invest"),
    DCAOption("ทองคำ",
        "GoldSpot, Hua Seng Heng, MTS Gold",
        "100-1000 บาท/ครั้ง",
        "Spread + Premium",
        "บาง Platform มี Auto"),
]

print("=== DCA Options ===")
for o in options:
    print(f"\n  [{o.asset}]")
    print(f"    Platform: {o.platform}")
    print(f"    Min: {o.min_amount}")
    print(f"    Fee: {o.fee}")
    print(f"    Auto: {o.auto_invest}")

เคล็ดลับ

การนำความรู้ไปประยุกต์ใช้งานจริง

แหล่งเรียนรู้ที่แนะนำ ได้แก่ Official Documentation ที่อัพเดทล่าสุดเสมอ Online Course จาก Coursera Udemy edX ช่อง YouTube คุณภาพทั้งไทยและอังกฤษ และ Community อย่าง Discord Reddit Stack Overflow ที่ช่วยแลกเปลี่ยนประสบการณ์กับนักพัฒนาทั่วโลก

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

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

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

สรุปประเด็นสำคัญ

สิ่งที่ควรทำต่อหลังอ่านบทความนี้จบ คือ ลองตั้ง Lab Environment ทดสอบด้วยตัวเอง อ่าน Official Documentation เพิ่มเติม เข้าร่วม Community เช่น Discord หรือ Facebook Group ที่เกี่ยวข้อง และลองทำ Side Project เล็กๆ เพื่อฝึกฝน หากมีคำถามเพิ่มเติม สามารถติดตามเนื้อหาได้ที่ SiamCafe.net ซึ่งอัพเดทบทความใหม่ทุกสัปดาห์

DCA คืออะไร

ลงทุนสม่ำเสมอเท่ากันทุกงวด ต้นทุนเฉลี่ยต่ำกว่าราคาเฉลี่ย ลด Market Timing วินัยการออม หุ้น กองทุน ETF คริปโต ทองคำ ระยะยาว

ทำ DCA อย่างไร

เลือกสินทรัพย์ กำหนดเงิน/งวด ตั้ง Auto Invest Finnomena Jitta Bitkub ไม่ต้องดูราคา Review 6-12 เดือน ลงทุน 5+ ปี เงินเย็น

เปรียบเทียบกับ Lump Sum อย่างไร

Lump Sum ชนะ 68% สถิติ DCA ลด Drawdown ลดเครียด ตลาดขึ้น Lump Sum ดี ตลาดลงก่อนขึ้น DCA ดี มนุษย์เงินเดือน DCA เหมาะกว่า

ข้อควรระวังคืออะไร

ไม่การันตีกำไร เลือกสินทรัพย์ขึ้นระยะยาว กระจายความเสี่ยง ค่าธรรมเนียมต่ำ อย่าหยุดตอนตลาดตก Review Rebalance เงินเย็น 5+ ปี

สรุป

DCA Dollar-Cost Averaging ลงทุนสม่ำเสมอ ต้นทุนเฉลี่ยต่ำ วินัย ลด Market Timing Auto Invest กองทุน ETF คริปโต ระยะยาว 5+ ปี

📖 บทความที่เกี่ยวข้อง

dollar-cost averaging dca คืออ่านบทความ → AWS Glue ETL FinOps Cloud Costอ่านบทความ → Dynatrace OneAgent FinOps Cloud Costอ่านบทความ →

📚 ดูบทความทั้งหมด →