Carry Trade
Carry Trade กู้ยืมสกุลเงินดอกเบี้ยต่ำ ลงทุนสกุลเงินดอกเบี้ยสูง กำไรจากส่วนต่างดอกเบี้ย Interest Rate Differential
คู่เงินนิยม AUD/JPY NZD/JPY USD/JPY MXN/JPY เลือกส่วนต่างดอกเบี้ยสูง แนวโน้มค่าเงินเสถียร
| คู่เงิน | ดอกเบี้ยซื้อ | ดอกเบี้ยขาย | ส่วนต่าง |
|---|---|---|---|
| AUD/JPY | 4.35% (RBA) | 0.10% (BOJ) | +4.25% |
| NZD/JPY | 5.50% (RBNZ) | 0.10% (BOJ) | +5.40% |
| USD/JPY | 5.25% (Fed) | 0.10% (BOJ) | +5.15% |
| MXN/JPY | 11.25% (Banxico) | 0.10% (BOJ) | +11.15% |
| GBP/JPY | 5.25% (BOE) | 0.10% (BOJ) | +5.15% |
| USD/CHF | 5.25% (Fed) | 1.75% (SNB) | +3.50% |
Python Carry Trade Calculator
# carry_trade.py — Carry Trade Calculator
from dataclasses import dataclass
from typing import List, Dict
import numpy as np
@dataclass
class CurrencyPair:
pair: str
buy_currency: str
sell_currency: str
buy_rate: float # ดอกเบี้ยสกุลเงินซื้อ
sell_rate: float # ดอกเบี้ยสกุลเงินขาย
current_price: float
volatility: float # Annual volatility
@property
def carry(self) -> float:
return self.buy_rate - self.sell_rate
class CarryTradeCalculator:
"""Carry Trade Calculator"""
def __init__(self):
self.pairs: List[CurrencyPair] = []
def add_pair(self, pair: CurrencyPair):
self.pairs.append(pair)
def calculate_return(self, pair: CurrencyPair,
capital: float, leverage: float,
holding_days: int) -> dict:
"""คำนวณผลตอบแทน Carry Trade"""
position_size = capital * leverage
daily_carry = pair.carry / 365
# Carry Return
carry_return = position_size * daily_carry * holding_days
carry_return_pct = (carry_return / capital) * 100
# Risk (based on volatility)
daily_vol = pair.volatility / np.sqrt(252)
max_drawdown_pct = daily_vol * np.sqrt(holding_days) * 2 * leverage * 100
return {
"pair": pair.pair,
"capital": capital,
"leverage": f"{leverage:.0f}x",
"position": position_size,
"holding_days": holding_days,
"carry_rate": f"{pair.carry*100:.2f}%",
"carry_return": carry_return,
"carry_return_pct": f"{carry_return_pct:.2f}%",
"max_drawdown": f"{max_drawdown_pct:.1f}%",
"risk_reward": f"1:{carry_return_pct/max_drawdown_pct:.2f}" if max_drawdown_pct > 0 else "N/A",
}
def rank_pairs(self):
"""จัดอันดับคู่เงิน"""
sorted_pairs = sorted(self.pairs, key=lambda p: p.carry, reverse=True)
print(f"\n{'='*55}")
print(f"Carry Trade Ranking")
print(f"{'='*55}")
for i, pair in enumerate(sorted_pairs, 1):
risk_adj = pair.carry / pair.volatility if pair.volatility > 0 else 0
print(f"\n #{i} {pair.pair}")
print(f" Carry: {pair.carry*100:.2f}% | Vol: {pair.volatility*100:.1f}%")
print(f" Risk-Adjusted: {risk_adj:.2f}")
print(f" {pair.buy_currency} {pair.buy_rate*100:.2f}% - {pair.sell_currency} {pair.sell_rate*100:.2f}%")
# ตัวอย่าง
calc = CarryTradeCalculator()
pairs = [
CurrencyPair("AUD/JPY", "AUD", "JPY", 0.0435, 0.001, 97.50, 0.12),
CurrencyPair("NZD/JPY", "NZD", "JPY", 0.0550, 0.001, 91.20, 0.13),
CurrencyPair("USD/JPY", "USD", "JPY", 0.0525, 0.001, 154.50, 0.10),
CurrencyPair("MXN/JPY", "MXN", "JPY", 0.1125, 0.001, 9.10, 0.18),
CurrencyPair("GBP/JPY", "GBP", "JPY", 0.0525, 0.001, 196.80, 0.11),
CurrencyPair("USD/CHF", "USD", "CHF", 0.0525, 0.0175, 0.8850, 0.08),
]
for pair in pairs:
calc.add_pair(pair)
calc.rank_pairs()
# คำนวณผลตอบแทน
print(f"\n\nCarry Trade Scenarios (Capital: $10,000):")
for pair in pairs[:3]:
result = calc.calculate_return(pair, 10000, 5, 180)
print(f"\n [{result['pair']}] Leverage: {result['leverage']}")
print(f" Carry Rate: {result['carry_rate']}")
print(f" Return (180 days): {result['carry_return']:,.0f} ({result['carry_return_pct']})")
print(f" Max Drawdown Risk: {result['max_drawdown']}")
Risk Management
# carry_risk.py — Carry Trade Risk Management
from dataclasses import dataclass
from typing import List
@dataclass
class RiskScenario:
name: str
description: str
impact: str
mitigation: str
class CarryTradeRiskManager:
"""Carry Trade Risk Manager"""
def __init__(self):
self.scenarios: List[RiskScenario] = []
def add(self, scenario: RiskScenario):
self.scenarios.append(scenario)
def show_risks(self):
print(f"\n{'='*55}")
print(f"Carry Trade Risk Analysis")
print(f"{'='*55}")
for scenario in self.scenarios:
print(f"\n [{scenario.name}]")
print(f" {scenario.description}")
print(f" Impact: {scenario.impact}")
print(f" Mitigation: {scenario.mitigation}")
def position_sizing(self, capital, risk_pct, stop_loss_pct):
"""คำนวณ Position Size"""
risk_amount = capital * risk_pct
position_size = risk_amount / stop_loss_pct
print(f"\n Position Sizing:")
print(f" Capital: ")
print(f" Risk per Trade: {risk_pct*100:.1f}% ()")
print(f" Stop Loss: {stop_loss_pct*100:.1f}%")
print(f" Position Size: ")
print(f" Leverage: {position_size/capital:.1f}x")
return position_size
risk_mgr = CarryTradeRiskManager()
risks = [
RiskScenario("Currency Depreciation",
"สกุลเงินดอกเบี้ยสูงอ่อนค่าลง",
"ขาดทุนมากกว่ากำไรดอกเบี้ย",
"ใช้ Stop Loss, Hedge ด้วย Options"),
RiskScenario("Carry Unwind",
"นักลงทุนปิด Position พร้อมกันตอนตลาดผันผวน",
"ค่าเงินเคลื่อนไหวรุนแรง Flash Crash",
"ลด Leverage, กระจายคู่เงิน, มี Cash Buffer"),
RiskScenario("Interest Rate Change",
"ธนาคารกลางเปลี่ยนอัตราดอกเบี้ย",
"ส่วนต่างดอกเบี้ยลดลง กลยุทธ์ไม่คุ้ม",
"ติดตาม Central Bank Meetings, ปรับ Position"),
RiskScenario("Geopolitical Risk",
"สงคราม วิกฤตการเมือง ภัยธรรมชาติ",
"Safe Haven Flow เยนแข็งค่า",
"Diversify คู่เงิน ลด Position ก่อนเหตุการณ์สำคัญ"),
]
for risk in risks:
risk_mgr.add(risk)
risk_mgr.show_risks()
risk_mgr.position_sizing(10000, 0.02, 0.05)
# Central Bank Rates
rates = {
"Federal Reserve (USD)": 5.25,
"ECB (EUR)": 4.50,
"BOE (GBP)": 5.25,
"BOJ (JPY)": 0.10,
"RBA (AUD)": 4.35,
"RBNZ (NZD)": 5.50,
"SNB (CHF)": 1.75,
"BOC (CAD)": 5.00,
"Banxico (MXN)": 11.25,
"CBRT (TRY)": 50.00,
}
print(f"\n\nCentral Bank Interest Rates:")
for bank, rate in sorted(rates.items(), key=lambda x: x[1], reverse=True):
bar = "#" * int(rate / 2)
print(f" {bank:<25} {rate:>6.2f}% {bar}")
Carry Trade Strategy
# carry_strategy.py — Carry Trade Strategy
strategies = {
"Classic Carry": {
"description": "Long สกุลเงินดอกเบี้ยสูง Short ดอกเบี้ยต่ำ",
"pairs": ["AUD/JPY", "NZD/JPY", "USD/JPY"],
"leverage": "3-5x",
"holding": "3-12 เดือน",
"pros": "กำไรจากดอกเบี้ยสม่ำเสมอ",
"cons": "เสี่ยงค่าเงินผันผวน",
},
"Diversified Carry": {
"description": "กระจายหลายคู่เงิน ลดความเสี่ยง",
"pairs": ["AUD/JPY", "NZD/CHF", "USD/JPY", "MXN/JPY"],
"leverage": "2-3x",
"holding": "6-12 เดือน",
"pros": "ลดความเสี่ยง Correlation ต่ำ",
"cons": "ผลตอบแทนต่ำกว่า Concentrated",
},
"Trend + Carry": {
"description": "Carry Trade เฉพาะเมื่อ Trend เป็นบวก",
"pairs": ["ขึ้นอยู่กับ Trend"],
"leverage": "3-5x",
"holding": "1-6 เดือน",
"pros": "กำไรทั้ง Carry และ Capital Gain",
"cons": "ต้อง Monitor Trend สม่ำเสมอ",
},
}
print("Carry Trade Strategies:")
for name, info in strategies.items():
print(f"\n [{name}]")
print(f" {info['description']}")
print(f" Pairs: {', '.join(info['pairs'])}")
print(f" Leverage: {info['leverage']}")
print(f" Holding: {info['holding']}")
print(f" Pros: {info['pros']}")
print(f" Cons: {info['cons']}")
เคล็ดลับ
- ส่วนต่างดอกเบี้ย: เลือกคู่เงินที่ส่วนต่างสูง AUD/JPY NZD/JPY MXN/JPY
- Leverage ต่ำ: ใช้ Leverage 3-5x ไม่ใช้มากเกินไป
- Stop Loss: ตั้ง Stop Loss ทุกครั้ง ป้องกัน Carry Unwind
- กระจาย: ลงทุนหลายคู่เงิน ลด Correlation Risk
- ติดตามข่าว: Central Bank Meetings การเปลี่ยนดอกเบี้ย
- ระยะยาว: Carry Trade เหมาะกับระยะ 3-12 เดือน
ข้อควรรู้สำหรับนักลงทุนไทย ปี 2026
การลงทุนในสินทรัพย์ดิจิทัลและตลาดการเงินต้องเข้าใจความเสี่ยง สิ่งสำคัญที่สุดคือ การจัดการความเสี่ยง ไม่ลงทุนมากกว่าที่พร้อมจะเสีย กระจายพอร์ตลงทุนในสินทรัพย์หลายประเภท ตั้ง Stop Loss ทุกครั้ง และไม่ใช้ Leverage สูงเกินไป
ในประเทศไทย กลต กำหนดกรอบกฎหมายชัดเจนสำหรับ Digital Assets ผู้ให้บริการต้องได้รับใบอนุญาต นักลงทุนต้องทำ KYC และเสียภาษี 15% จากกำไร แนะนำให้ใช้แพลตฟอร์มที่ได้รับอนุญาตจาก กลต เท่านั้น เช่น Bitkub Satang Pro หรือ Zipmex
สำหรับ Forex ต้องเลือก Broker ที่มี Regulation จากหน่วยงานที่น่าเชื่อถือ เช่น FCA, ASIC, CySEC เริ่มต้นด้วย Demo Account ก่อน เรียนรู้ Technical Analysis และ Fundamental Analysis ให้เข้าใจ และมีแผนการเทรดที่ชัดเจน ไม่เทรดตามอารมณ์
เปรียบเทียบข้อดีและข้อเสีย
จากตารางเปรียบเทียบจะเห็นว่าข้อดีมีมากกว่าข้อเสียอย่างชัดเจน โดยเฉพาะในแง่ของประสิทธิภาพและความสามารถในการ Scale สำหรับข้อเสียส่วนใหญ่สามารถแก้ไขได้ด้วยการเรียนรู้อย่างเป็นระบบและวางแผนทรัพยากรให้เหมาะสม
Carry Trade คืออะไร
กู้ยืมสกุลเงินดอกเบี้ยต่ำ ลงทุนดอกเบี้ยสูง กำไรส่วนต่างดอกเบี้ย Interest Rate Differential เช่น กู้เยน 0.1% ลงทุน AUD 4.35%
คู่เงินไหนเหมาะกับ Carry Trade
AUD/JPY NZD/JPY USD/JPY MXN/JPY GBP/JPY ส่วนต่างดอกเบี้ยสูง แนวโน้มค่าเงินเสถียร เยนดอกเบี้ยต่ำสุด
Carry Trade มีความเสี่ยงอะไร
ค่าเงินผันผวน ขาดทุนมากกว่ากำไรดอกเบี้ย Carry Unwind ปิด Position พร้อมกัน ดอกเบี้ยเปลี่ยนกะทันหัน Geopolitical Risk
เริ่มต้น Carry Trade ทำอย่างไร
ศึกษาดอกเบี้ยธนาคารกลาง เลือกคู่เงินส่วนต่างสูง Technical Analysis Leverage ต่ำ 1:5-1:10 Stop Loss ระยะยาว 3-12 เดือน ติดตามข่าว
สรุป
Carry Trade กู้ดอกเบี้ยต่ำลงทุนดอกเบี้ยสูง AUD/JPY NZD/JPY USD/JPY MXN/JPY ส่วนต่างดอกเบี้ยสูง Leverage ต่ำ Stop Loss กระจายคู่เงิน ติดตาม Central Bank ระยะยาว 3-12 เดือน ระวัง Carry Unwind
