SiamCafe.net Blog
Technology

Spdr Spy

spdr spy
Spdr Spy | SiamCafe Blog
2026-01-11· อ. บอม — SiamCafe.net· 1,644 คำ

SPDR SPY คืออะไร — คู่มือ ETF ที่ใหญ่ที่สุดในโลก 2026

SPDR S&P 500 ETF Trust (ticker: SPY) เป็น Exchange-Traded Fund (ETF) ที่ใหญ่ที่สุดและมีสภาพคล่องสูงสุดในโลก จัดการโดย State Street Global Advisors ติดตามดัชนี S&P 500 ซึ่งรวมหุ้น 500 บริษัทชั้นนำของสหรัฐอเมริกา SPY เปิดตัวเมื่อปี 1993 เป็น ETF ตัวแรกในสหรัฐฯ มี AUM (Assets Under Management) มากกว่า 500 พันล้านดอลลาร์ เหมาะสำหรับทั้งนักลงทุนระยะยาวและนักเทรดระยะสั้น

SPY Fundamentals

# spy_basics.py — SPY ETF fundamentals
import json

class SPYBasics:
    INFO = {
        "name": "SPDR S&P 500 ETF Trust",
        "ticker": "SPY",
        "manager": "State Street Global Advisors",
        "inception": "January 22, 1993",
        "index": "S&P 500",
        "expense_ratio": "0.0945% (9.45 บาทต่อเงินลงทุน 10,000 บาท/ปี)",
        "aum": "> $500 billion USD",
        "avg_volume": "> 70 million shares/day",
        "holdings": "~503 stocks (ตาม S&P 500 components)",
        "dividend_yield": "~1.3% (จ่ายทุกไตรมาส)",
        "structure": "Unit Investment Trust (UIT)",
    }

    TOP_HOLDINGS = {
        "AAPL": {"name": "Apple", "weight": "7.2%"},
        "MSFT": {"name": "Microsoft", "weight": "6.8%"},
        "NVDA": {"name": "NVIDIA", "weight": "6.1%"},
        "AMZN": {"name": "Amazon", "weight": "3.8%"},
        "META": {"name": "Meta Platforms", "weight": "2.5%"},
        "GOOGL": {"name": "Alphabet A", "weight": "2.1%"},
        "BRK.B": {"name": "Berkshire Hathaway", "weight": "1.7%"},
        "LLY": {"name": "Eli Lilly", "weight": "1.5%"},
        "AVGO": {"name": "Broadcom", "weight": "1.4%"},
        "JPM": {"name": "JPMorgan Chase", "weight": "1.3%"},
    }

    SECTOR_WEIGHTS = {
        "Technology": "31.5%",
        "Healthcare": "12.2%",
        "Financials": "13.1%",
        "Consumer Discretionary": "10.5%",
        "Communication Services": "8.9%",
        "Industrials": "8.5%",
        "Consumer Staples": "5.8%",
        "Energy": "3.6%",
        "Utilities": "2.5%",
        "Real Estate": "2.3%",
        "Materials": "2.1%",
    }

    def show_info(self):
        print("=== SPY ETF Info ===\n")
        for key, val in self.INFO.items():
            print(f"  [{key}] {val}")

    def show_holdings(self):
        print(f"\n=== Top 10 Holdings ===")
        for ticker, info in self.TOP_HOLDINGS.items():
            print(f"  {ticker}: {info['name']} ({info['weight']})")

    def show_sectors(self):
        print(f"\n=== Sector Weights ===")
        for sector, weight in self.SECTOR_WEIGHTS.items():
            print(f"  {sector}: {weight}")

spy = SPYBasics()
spy.show_info()
spy.show_holdings()
spy.show_sectors()

SPY vs Alternatives

# alternatives.py — SPY vs other S&P 500 ETFs
import json

class SPYAlternatives:
    COMPARISON = {
        "SPY": {
            "name": "SPDR S&P 500 ETF",
            "expense": "0.0945%",
            "aum": "$500B+",
            "volume": "70M+/day",
            "structure": "UIT",
            "pros": "สภาพคล่องสูงสุด, options chain ใหญ่สุด, spread แคบสุด",
            "cons": "Expense ratio สูงกว่า VOO/IVV, ไม่ reinvest dividends อัตโนมัติ",
        },
        "VOO": {
            "name": "Vanguard S&P 500 ETF",
            "expense": "0.03%",
            "aum": "$400B+",
            "volume": "5M+/day",
            "structure": "Open-End Fund",
            "pros": "Expense ratio ต่ำสุด, reinvest dividends ได้, tax efficient",
            "cons": "สภาพคล่องต่ำกว่า SPY, options chain เล็กกว่า",
        },
        "IVV": {
            "name": "iShares Core S&P 500 ETF",
            "expense": "0.03%",
            "aum": "$350B+",
            "volume": "5M+/day",
            "structure": "Open-End Fund",
            "pros": "Expense ratio ต่ำ, BlackRock ecosystem, tax efficient",
            "cons": "สภาพคล่องต่ำกว่า SPY",
        },
    }

    def show_comparison(self):
        print("=== S&P 500 ETF Comparison ===\n")
        for ticker, etf in self.COMPARISON.items():
            print(f"[{ticker}] {etf['name']}")
            print(f"  Expense: {etf['expense']} | AUM: {etf['aum']} | Volume: {etf['volume']}")
            print(f"  Pros: {etf['pros']}")
            print()

    def recommendation(self):
        print("=== Recommendation ===")
        print("  Long-term investing: VOO หรือ IVV (expense ratio ต่ำกว่า)")
        print("  Active trading: SPY (สภาพคล่องสูงสุด, options ดีสุด)")
        print("  Options trading: SPY (options volume สูงสุดในโลก)")

alt = SPYAlternatives()
alt.show_comparison()
alt.recommendation()

Python Analysis Tools

# analysis.py — Python SPY analysis tools
import json

class SPYAnalysis:
    CODE = """
# spy_analyzer.py — Analyze SPY ETF performance
import pandas as pd
import numpy as np

class SPYAnalyzer:
    def __init__(self, data):
        '''data: DataFrame with columns [Date, Open, High, Low, Close, Volume]'''
        self.data = data.copy()
        self.data['returns'] = self.data['Close'].pct_change()
    
    def performance_summary(self, periods=None):
        '''Calculate performance over various periods'''
        if periods is None:
            periods = {
                '1D': 1, '1W': 5, '1M': 21, '3M': 63,
                '6M': 126, 'YTD': None, '1Y': 252, '3Y': 756, '5Y': 1260,
            }
        
        results = {}
        for name, days in periods.items():
            if days is None:  # YTD
                ytd_data = self.data[self.data.index.year == self.data.index[-1].year]
                if len(ytd_data) > 1:
                    ret = (ytd_data['Close'].iloc[-1] / ytd_data['Close'].iloc[0] - 1) * 100
                    results[name] = round(ret, 2)
                continue
            
            if days < len(self.data):
                ret = (self.data['Close'].iloc[-1] / self.data['Close'].iloc[-days] - 1) * 100
                results[name] = round(ret, 2)
        
        return results
    
    def risk_metrics(self):
        '''Calculate risk metrics'''
        returns = self.data['returns'].dropna()
        
        annual_return = returns.mean() * 252
        annual_vol = returns.std() * np.sqrt(252)
        sharpe = annual_return / annual_vol if annual_vol > 0 else 0
        
        cumulative = (1 + returns).cumprod()
        peak = cumulative.expanding().max()
        drawdown = (cumulative - peak) / peak
        max_dd = drawdown.min()
        
        # Sortino ratio
        downside_returns = returns[returns < 0]
        downside_vol = downside_returns.std() * np.sqrt(252)
        sortino = annual_return / downside_vol if downside_vol > 0 else 0
        
        return {
            'annual_return_pct': round(annual_return * 100, 2),
            'annual_volatility_pct': round(annual_vol * 100, 2),
            'sharpe_ratio': round(sharpe, 2),
            'sortino_ratio': round(sortino, 2),
            'max_drawdown_pct': round(max_dd * 100, 2),
            'calmar_ratio': round(annual_return / abs(max_dd), 2) if max_dd != 0 else 0,
        }
    
    def monthly_returns(self):
        '''Calculate monthly return table'''
        monthly = self.data['Close'].resample('M').last().pct_change() * 100
        
        table = {}
        for date, ret in monthly.items():
            year = date.year
            month = date.month
            if year not in table:
                table[year] = {}
            table[year][month] = round(ret, 1) if not np.isnan(ret) else None
        
        return table
    
    def dca_simulation(self, monthly_amount=10000, start_date=None):
        '''Simulate Dollar-Cost Averaging'''
        monthly_data = self.data['Close'].resample('M').first()
        
        if start_date:
            monthly_data = monthly_data[monthly_data.index >= start_date]
        
        total_invested = 0
        total_shares = 0
        
        for date, price in monthly_data.items():
            shares = monthly_amount / price
            total_shares += shares
            total_invested += monthly_amount
        
        current_value = total_shares * self.data['Close'].iloc[-1]
        profit = current_value - total_invested
        
        return {
            'monthly_amount': monthly_amount,
            'months': len(monthly_data),
            'total_invested': round(total_invested, 2),
            'current_value': round(current_value, 2),
            'profit': round(profit, 2),
            'return_pct': round((profit / total_invested) * 100, 2),
            'total_shares': round(total_shares, 4),
            'avg_cost': round(total_invested / total_shares, 2),
        }

# import yfinance as yf
# data = yf.download("SPY", start="2020-01-01")
# analyzer = SPYAnalyzer(data)
# perf = analyzer.performance_summary()
# risk = analyzer.risk_metrics()
# dca = analyzer.dca_simulation(monthly_amount=10000)
"""

    def show_code(self):
        print("=== SPY Analyzer ===")
        print(self.CODE[:600])

analysis = SPYAnalysis()
analysis.show_code()

วิธีลงทุน SPY จากไทย

# invest_thai.py — How to invest in SPY from Thailand
import json

class InvestFromThailand:
    METHODS = {
        "us_broker": {
            "name": "1. US Broker (ตรง)",
            "brokers": "Interactive Brokers (IBKR), Charles Schwab International",
            "min_deposit": "$0 (IBKR), $25,000 (Schwab)",
            "fee": "$0 commission (IBKR Lite), $0.0035/share (IBKR Pro)",
            "tax": "withholding tax 30% บน dividends (ลดเหลือ 15% ด้วย W-8BEN)",
            "pros": "ซื้อ SPY จริง, สภาพคล่องสูง, ค่าธรรมเนียมต่ำ",
            "cons": "ต้องเปิดบัญชีต่างประเทศ, โอนเงินข้ามประเทศ",
        },
        "thai_broker": {
            "name": "2. Thai Broker (ผ่าน บล. ไทย)",
            "brokers": "Bualuang, KGI, Phillip, KTBST — ผ่าน DMA (Direct Market Access)",
            "min_deposit": "ขึ้นกับ broker (บางแห่ง 50,000 บาท+)",
            "fee": "$15-25 per trade + FX spread",
            "tax": "withholding tax 30% (ลด W-8BEN) + capital gains tax ไทย",
            "pros": "เปิดบัญชีง่าย, support ภาษาไทย, ไม่ต้องโอนเงินออกเอง",
            "cons": "ค่าธรรมเนียมสูงกว่า, เลือก ETF ได้จำกัด",
        },
        "thai_fund": {
            "name": "3. กองทุนรวมไทย (Feeder Fund)",
            "brokers": "KFUS500, KT-SP500, ONE-SP500",
            "min_deposit": "1 บาท (บาง app), 500-1,000 บาท",
            "fee": "Expense ratio 0.3-0.8%/ปี (รวม underlying ETF)",
            "tax": "ไม่มี withholding tax (กองทุนจัดการ), capital gains ไทยยกเว้น",
            "pros": "ง่ายที่สุด, ซื้อผ่าน app, ภาษีดี, เริ่มน้อยได้",
            "cons": "ค่าธรรมเนียมสูงกว่าซื้อ SPY ตรง, tracking error",
        },
    }

    def show_methods(self):
        print("=== วิธีลงทุน SPY จากไทย ===\n")
        for key, method in self.METHODS.items():
            print(f"[{method['name']}]")
            print(f"  Brokers: {method['brokers']}")
            print(f"  Fee: {method['fee']}")
            print(f"  Pros: {method['pros']}")
            print()

    def recommendation(self):
        print("=== Recommendation ===")
        print("  งบน้อย / มือใหม่: กองทุนรวมไทย (KFUS500, ONE-SP500)")
        print("  งบ > 100,000 บาท: Thai Broker DMA")
        print("  งบ > 500,000 บาท / เทรดบ่อย: Interactive Brokers")

invest = InvestFromThailand()
invest.show_methods()
invest.recommendation()

SPY Historical Performance

# history.py — SPY historical performance
import json

class SPYHistory:
    ANNUAL_RETURNS = {
        "2024": "+24.9%",
        "2023": "+26.3%",
        "2022": "-18.1%",
        "2021": "+28.7%",
        "2020": "+18.4%",
        "2019": "+31.5%",
        "2018": "-4.4%",
        "2017": "+21.8%",
        "2016": "+12.0%",
        "2015": "+1.4%",
    }

    STATS = {
        "avg_annual_return": "~10.5% (since 1993)",
        "best_year": "+38.1% (1995)",
        "worst_year": "-36.8% (2008)",
        "positive_years": "~73% ของปีให้ผลตอบแทนบวก",
        "max_drawdown": "-50.8% (2008-2009 Financial Crisis)",
        "recovery_time": "~4.5 ปี (2009 low → 2013 new high)",
    }

    MILESTONES = {
        "$10K_1993": "ลงทุน $10,000 ปี 1993 → มูลค่า ~$180,000+ ปี 2026",
        "dca_monthly": "DCA $500/เดือน ตั้งแต่ 2010 → มูลค่า ~$180,000+ (ลงทุน ~$96,000)",
        "compound": "Average 10.5%/ปี compound → เงินทวีคูณทุก ~7 ปี (Rule of 72)",
    }

    def show_returns(self):
        print("=== Annual Returns (Recent) ===\n")
        for year, ret in self.ANNUAL_RETURNS.items():
            bar = "█" * max(1, abs(int(float(ret.replace('%', '').replace('+', '')))) // 2)
            print(f"  {year}: {ret:>8} {bar}")

    def show_stats(self):
        print(f"\n=== Historical Stats ===")
        for key, stat in self.STATS.items():
            print(f"  [{key}] {stat}")

    def show_milestones(self):
        print(f"\n=== Investment Milestones ===")
        for key, milestone in self.MILESTONES.items():
            print(f"  {milestone}")

history = SPYHistory()
history.show_returns()
history.show_stats()
history.show_milestones()

FAQ - คำถามที่พบบ่อย

Q: SPY กับ VOO อันไหนดีกว่า?

A: สำหรับลงทุนระยะยาว: VOO ดีกว่า — expense ratio 0.03% vs 0.0945% (ประหยัด ~$60/ปี ต่อ $100,000) สำหรับเทรด/Options: SPY ดีกว่า — volume สูงกว่า 10 เท่า, bid-ask spread แคบกว่า, options chain ใหญ่ที่สุด ผลตอบแทน: แทบเหมือนกัน — ต่างกัน < 0.07%/ปี (expense ratio difference) สรุป: DCA ระยะยาว → VOO, Active trading → SPY

Q: SPY เหมาะกับมือใหม่ไหม?

A: เหมาะมาก — SPY เป็น one-stop solution สำหรับลงทุนหุ้นสหรัฐฯ ซื้อ SPY = ลงทุนใน 500 บริษัทชั้นนำ (Apple, Microsoft, NVIDIA, Amazon ฯลฯ) ไม่ต้องเลือกหุ้นเอง — diversified อัตโนมัติ วิธีง่ายสุด: DCA ทุกเดือน ถือยาว — ผลตอบแทนเฉลี่ย ~10%/ปี สำหรับคนไทย: เริ่มจากกองทุน Feeder Fund (KFUS500) ก่อนก็ได้

Q: ความเสี่ยงของ SPY คืออะไร?

A: Market risk: ตลาดหุ้นสหรัฐฯ ตกได้ (2008: -37%, 2022: -18%) Currency risk: ถ้าบาทแข็ง ผลตอบแทนในเงินบาทลดลง Concentration risk: Tech sector > 30% — ถ้า tech ตก SPY ได้รับผลกระทบมาก Drawdown: อาจขาดทุน 30-50% ในวิกฤต — ต้องมี patience ถือยาว วิธีลด risk: DCA สม่ำเสมอ, ถือระยะยาว (> 5 ปี), diversify ข้ามประเทศ

Q: ภาษีสำหรับคนไทยที่ลงทุน SPY?

A: Dividends: US withholding tax 30% (ลดเหลือ 15% ด้วย W-8BEN form) Capital Gains: ไม่เสียภาษีในสหรัฐฯ (non-US person), เสียภาษีในไทยตามกฎหมาย (ถ้านำเงินเข้าไทยในปีที่ได้กำไร) กองทุนรวมไทย: capital gains ยกเว้นภาษี, dividends จากกองทุนเสียภาษี 10% IBKR: ยื่น W-8BEN อัตโนมัติ — ลด withholding tax จาก 30% เป็น 15%

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

spdr s&p 500 etf trust spy priceอ่านบทความ → spdr s&p 500 etf trust spy expense ratioอ่านบทความ → spy spdrอ่านบทความ → spdr s&p 500 etf trust spy overviewอ่านบทความ → spdr s&p 500 etf trust (spy)อ่านบทความ →

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