SPDR S&P 500
SPDR S&P 500 ETF SPY Investment S&P 500 Index Fund Buy-and-Hold DCA Performance Analysis Portfolio Allocation Trading Strategy Dividend Total Return
| ETF | Ticker | Expense Ratio | AUM | Provider | เหมาะกับ |
|---|---|---|---|---|---|
| SPDR S&P 500 | SPY | 0.0945% | $500B+ | State Street | Trading High Volume |
| Vanguard S&P 500 | VOO | 0.03% | $400B+ | Vanguard | Long-term Low Cost |
| iShares Core S&P | IVV | 0.03% | $350B+ | BlackRock | Long-term Low Cost |
| Invesco QQQ | QQQ | 0.20% | $200B+ | Invesco | Nasdaq 100 Tech |
| Vanguard Total | VTI | 0.03% | $350B+ | Vanguard | Total US Market |
Performance Analysis
# === SPY Performance Analysis with Python ===
# pip install yfinance pandas matplotlib
# import yfinance as yf
# import pandas as pd
# import numpy as np
#
# # Download SPY data
# spy = yf.download("SPY", start="2014-01-01", end="2024-12-31")
#
# # Calculate returns
# spy["Daily_Return"] = spy["Adj Close"].pct_change()
# spy["Cumulative_Return"] = (1 + spy["Daily_Return"]).cumprod() - 1
#
# # Annual returns
# annual_return = spy["Daily_Return"].mean() * 252
# annual_vol = spy["Daily_Return"].std() * np.sqrt(252)
# sharpe = annual_return / annual_vol
#
# # Max Drawdown
# rolling_max = spy["Adj Close"].cummax()
# drawdown = (spy["Adj Close"] - rolling_max) / rolling_max
# max_dd = drawdown.min()
#
# print(f"=== SPY Performance (10 Years) ===")
# print(f" Annualized Return: {annual_return:.2%}")
# print(f" Annualized Volatility: {annual_vol:.2%}")
# print(f" Sharpe Ratio: {sharpe:.2f}")
# print(f" Max Drawdown: {max_dd:.2%}")
# print(f" Total Return: {spy['Cumulative_Return'].iloc[-1]:.2%}")
from dataclasses import dataclass
@dataclass
class YearlyReturn:
year: int
spy_return: str
sp500_return: str
max_drawdown: str
dividend_yield: str
returns = [
YearlyReturn(2019, "+31.2%", "+31.5%", "-6.8%", "1.8%"),
YearlyReturn(2020, "+18.4%", "+18.4%", "-33.9%", "1.6%"),
YearlyReturn(2021, "+28.7%", "+28.7%", "-5.2%", "1.3%"),
YearlyReturn(2022, "-18.2%", "-18.1%", "-25.4%", "1.6%"),
YearlyReturn(2023, "+26.3%", "+26.3%", "-10.3%", "1.4%"),
YearlyReturn(2024, "+25.0%", "+25.0%", "-8.5%", "1.2%"),
]
print("=== SPY Yearly Performance ===")
for r in returns:
print(f" [{r.year}] SPY: {r.spy_return} | S&P 500: {r.sp500_return}")
print(f" Max DD: {r.max_drawdown} | Div Yield: {r.dividend_yield}")
Investment Strategy
# === Investment Strategies for SPY ===
@dataclass
class Strategy:
name: str
approach: str
frequency: str
expected_return: str
risk: str
suitable_for: str
strategies = [
Strategy("DCA (Dollar Cost Averaging)", "ซื้อจำนวนเงินเท่ากันทุกเดือน", "Monthly",
"~10% CAGR", "ต่ำ (averaged)", "มือใหม่ Long-term"),
Strategy("Buy-and-Hold", "ซื้อครั้งเดียวถือยาว", "One-time + DCA",
"~10% CAGR", "ปานกลาง (timing risk)", "Long-term Investor"),
Strategy("60/40 Portfolio", "60% SPY + 40% AGG (Bonds)", "Quarterly rebalance",
"~7-8% CAGR", "ต่ำ (diversified)", "Conservative"),
Strategy("Momentum", "ซื้อเมื่อ Above 200 EMA ขายเมื่อ Below", "Weekly check",
"~8-12% CAGR", "ปานกลาง", "Active Investor"),
Strategy("Covered Call", "ถือ SPY + ขาย Call Option", "Monthly/Weekly",
"~8-10% + Premium", "ปานกลาง (capped upside)", "Income Investor"),
Strategy("Sector Rotation", "ปรับ Weight ตาม Economic Cycle", "Quarterly",
"~10-14% CAGR", "สูง (active)", "Advanced"),
]
print("=== SPY Investment Strategies ===")
for s in strategies:
print(f" [{s.name}]")
print(f" Approach: {s.approach}")
print(f" Frequency: {s.frequency} | Return: {s.expected_return}")
print(f" Risk: {s.risk} | For: {s.suitable_for}")
# DCA Simulation
# initial = 0
# monthly = 500 # $500/month
# years = 10
# avg_return = 0.10 # 10% annual
# monthly_return = (1 + avg_return) ** (1/12) - 1
#
# balance = initial
# total_invested = 0
# for month in range(years * 12):
# balance = (balance + monthly) * (1 + monthly_return)
# total_invested += monthly
#
# profit = balance - total_invested
# print(f"\nDCA Simulation: /month for {years} years")
# print(f" Total Invested: ")
# print(f" Final Balance: ")
# print(f" Profit: ({profit/total_invested:.1%})")
dca_results = {
"Monthly Investment": "$500",
"Duration": "10 years",
"Total Invested": "$60,000",
"Final Balance (avg 10%)": "$102,422",
"Profit": "$42,422 (70.7%)",
"Final Balance (avg 7%)": "$86,540",
"Final Balance (avg 12%)": "$115,019",
}
print(f"\n\nDCA Simulation:")
for k, v in dca_results.items():
print(f" {k}: {v}")
Portfolio Allocation
# === Portfolio Allocation Examples ===
@dataclass
class PortfolioModel:
name: str
spy_pct: int
bonds_pct: int
intl_pct: int
other_pct: int
risk_level: str
expected_return: str
max_drawdown: str
portfolios = [
PortfolioModel("Aggressive Growth", 80, 5, 10, 5, "สูง", "10-12%", "-35%"),
PortfolioModel("Growth", 60, 20, 15, 5, "ปานกลาง-สูง", "8-10%", "-25%"),
PortfolioModel("Balanced", 50, 30, 15, 5, "ปานกลาง", "7-8%", "-20%"),
PortfolioModel("Conservative", 30, 50, 10, 10, "ต่ำ-ปานกลาง", "5-6%", "-12%"),
PortfolioModel("Income", 20, 60, 10, 10, "ต่ำ", "4-5%", "-8%"),
]
print("Portfolio Models:")
for p in portfolios:
print(f" [{p.name}] Risk: {p.risk_level}")
print(f" SPY: {p.spy_pct}% | Bonds: {p.bonds_pct}% | Intl: {p.intl_pct}% | Other: {p.other_pct}%")
print(f" Expected: {p.expected_return} | Max DD: {p.max_drawdown}")
# Top SPY Holdings (approximate)
holdings = {
"Apple (AAPL)": "7.2%",
"Microsoft (MSFT)": "6.8%",
"NVIDIA (NVDA)": "6.5%",
"Amazon (AMZN)": "3.8%",
"Meta (META)": "2.5%",
"Alphabet A (GOOGL)": "2.1%",
"Alphabet C (GOOG)": "1.8%",
"Berkshire (BRK.B)": "1.7%",
"Broadcom (AVGO)": "1.6%",
"Tesla (TSLA)": "1.5%",
}
print(f"\n\nTop 10 SPY Holdings:")
total = 0
for name, pct in holdings.items():
print(f" {name}: {pct}")
total += float(pct.replace('%', ''))
print(f" Top 10 Total: {total:.1f}%")
เคล็ดลับ
- DCA: ซื้อสม่ำเสมอทุกเดือน ไม่ต้อง Time Market
- VOO: ถ้าถือยาว VOO ถูกกว่า SPY (0.03% vs 0.09%)
- Rebalance: Rebalance Portfolio ทุก Quarter
- Dividend: Reinvest Dividend เพิ่ม Compound Growth
- Diversify: อย่าใส่ 100% SPY เพิ่ม Bonds International
SPDR S&P 500 ETF คืออะไร
SPY ETF ติดตาม S&P 500 หุ้น 500 บริษัทใหญ่สหรัฐ AUM $500B+ Expense 0.0945% Volume สูงสุด Liquidity ดี Buy-and-Hold Trading
SPY ต่างจาก VOO IVV อย่างไร
SPY State Street 0.0945% Volume สูง Trader VOO Vanguard 0.03% ถูกกว่า IVV iShares 0.03% ทั้ง 3 ติดตาม S&P 500 เหมือนกัน Long-term VOO ถูกกว่า
ลงทุน SPY อย่างไร
DCA ทุกเดือน Buy-and-Hold ถือยาว 60/40 Portfolio Momentum EMA Covered Call Income Sector Rotation Technical Analysis 10% CAGR
วิเคราะห์ Performance SPY อย่างไร
Total Return Annualized Return Max Drawdown Tracking Error Sharpe Ratio Sector Allocation Top Holdings P/E Dividend Yield Python yfinance pandas
สรุป
SPDR S&P 500 ETF SPY Investment DCA Buy-and-Hold Performance Analysis Portfolio Allocation Dividend Total Return Sharpe Ratio Trading Strategy Production
