สำหรับนักลงทุนที่วัดมูลค่าทองคำในสกุลเงินที่เทียบกับดอลลาร์สหรัฐ ผลตอบแทนทองคำในสกุลท้องถิ่นคือ (1 + gold USD return) × (1 + USD/local FX return) − 1 พจน์สุดท้ายมีความสำคัญ: การนำเปอร์เซ็นต์การเปลี่ยนแปลงทั้งสองมาบวกกันตรงๆ เป็นเพียงค่าประมาณ ไม่ใช่ผลลัพธ์ที่แม่นยำ การเปรียบเทียบนี้ใช้ราคาทองคำแท่งที่ปิดตัวสมบูรณ์แล้ว และค่าสังเกตอัตราแลกเปลี่ยนที่ไม่ใช่การเติมค่าย้อนหลัง (non-forward-filled) ในวันทำการเดียวกันทั้งสองวัน
คำถามที่บทความชุดนี้ตอบ
กราฟราคาทองคำในสกุลดอลลาร์สหรัฐตอบคำถามที่มีประโยชน์ข้อหนึ่ง แต่ไม่ได้ตอบคำถามว่านักลงทุนในประเทศนั้นๆ ได้ประสบอะไรบ้าง เมื่อวัดราคาทองคำเป็น IDR, INR, JPY, EUR หรือ TRY ทั้งราคาทองคำเป็นดอลลาร์และอัตราแลกเปลี่ยนของดอลลาร์เทียบกับสกุลเงินนั้นต่างก็มีผลต่อผลลัพธ์
นั่นไม่ได้หมายความว่าราคาทองคำในสกุลท้องถิ่นที่เพิ่มขึ้นมีสาเหตุเดียวที่เรียบง่าย การคำนวณนี้เพียงแค่แยกองค์ประกอบด้านราคาและอัตราแลกเปลี่ยนที่สังเกตได้ในช่วงเวลาที่กำหนดออกจากกัน โดยไม่มีการพยากรณ์หรือข้อเสนอแนะใดๆ ว่านักลงทุนควรทำอย่างไร
สูตรที่แม่นยำ
กำหนดให้ g คือผลตอบแทนของทองคำในสกุลดอลลาร์สหรัฐ และ f คือผลตอบแทนของอัตราแลกเปลี่ยนที่แสดงเป็นสกุลท้องถิ่นต่อดอลลาร์สหรัฐ กำหนดให้ L คือผลตอบแทนทองคำในสกุลท้องถิ่น ดังนั้น:
g = gold_usd_end / gold_usd_start - 1
f = usd_to_local_end / usd_to_local_start - 1
L = (gold_usd_end × usd_to_local_end) / (gold_usd_start × usd_to_local_start) - 1
L = g + f + (g × f)นิพจน์สุดท้ายมีประโยชน์ในการอธิบาย g คือองค์ประกอบทองคำในสกุลดอลลาร์ f คือองค์ประกอบสกุลเงิน และ g × f คือผลกระทบร่วมระหว่างทั้งสอง นี่คือเหตุผลที่การนำเปอร์เซ็นต์การเปลี่ยนแปลงสองค่ามาบวกกันตรงๆ จึงไม่ใช่ค่าที่แม่นยำ
ช่วงเวลาเปรียบเทียบที่ผ่านการตรวจสอบ
ช่วงเวลาที่เลือก: 2025-07-10 ถึง 2026-07-10 ราคาทองคำปิด: จาก 3323.81 ถึง 4119.172 ดอลลาร์สหรัฐต่อทรอยออนซ์ อัตราแลกเปลี่ยนแต่ละค่าคือสกุลท้องถิ่นต่อดอลลาร์สหรัฐ เปอร์เซ็นต์ที่แสดงทั้งหมดถูกปัดเศษเป็นทศนิยมสองตำแหน่ง ส่วนการคำนวณยังคงความละเอียดเต็มรูปแบบ
แหล่งที่มาของข้อมูลสังเกต
ส่วนของทองคำในสกุลดอลลาร์สหรัฐมาจากแท่งราคารายวันที่ปิดตัวสมบูรณ์แล้วของ XAU-USD-SPOT ส่วนของอัตราแลกเปลี่ยนมาจากค่าสังเกตฐานดอลลาร์สหรัฐตามวันที่สำหรับ EUR, JPY, IDR, INR และ TRY คำตอบทั้งสองรายการของอัตราแลกเปลี่ยนมีค่า source: ecb_daily, มีค่า is_forward_filled: false และมีค่า data_updated_at ตรงกับวันที่ที่ร้องขอ อัตราเหล่านี้เป็นอัตราอ้างอิงเชิงบ่งชี้ ไม่ใช่ราคาสำหรับการชำระเงินหรือการทำธุรกรรมจริง
GET https://api.goldprice.dev/v1/bars?symbol=XAU-USD-SPOT&interval=1d&from=2025-07-10T00:00:00Z&to=2026-07-10T00:00:00Z&limit=400
GET https://api.exchangerate.dev/v1/2025-07-10/USD?symbols=EUR,JPY,IDR,INR,TRY
GET https://api.exchangerate.dev/v1/2026-07-10/USD?symbols=EUR,JPY,IDR,INR,TRYวันที่หนึ่งจะถือว่าใช้ได้ก็ต่อเมื่อแท่งราคาทองคำปิดตัวสมบูรณ์แล้วและค่าสังเกตอัตราแลกเปลี่ยนไม่ใช่การเติมค่าย้อนหลัง หากวันครบรอบตามปฏิทินไม่เป็นไปตามเงื่อนไขทั้งสองข้อ วันที่เปรียบเทียบทั้งสองจะถูกเลื่อนย้อนกลับไปพร้อมกันจนถึงคู่วันทำการร่วมที่ใกล้ที่สุด วิธีนี้ป้องกันไม่ให้ชุดข้อมูลหนึ่งแอบใช้วันที่ต่างจากอีกชุดหนึ่งโดยไม่รู้ตัว
ทำการคำนวณซ้ำ
from decimal import Decimal
gold_start = Decimal("3323.81")
gold_end = Decimal("4119.172")
fx_start = Decimal("16237.25") # IDR per USD on 2025-07-10
fx_end = Decimal("18076.55") # IDR per USD on 2026-07-10
g = gold_end / gold_start - 1
f = fx_end / fx_start - 1
local_return = (gold_end * fx_end) / (gold_start * fx_start) - 1
interaction = g * f
assert local_return == g + f + interactionการยืนยันด้วย assert เป็นการตรวจสอบที่มีประโยชน์ก่อนเผยแพร่ ผลต่างที่ไม่เป็นศูนย์หลังการคำนวณด้วยเลขทศนิยมที่แม่นยำ มักหมายความว่าทิศทางของอัตราแลกเปลี่ยนถูกสลับกัน วันที่ไม่ตรงกัน หรือค่าระหว่างการคำนวณถูกปัดเศษเร็วเกินไป
สิ่งที่การคำนวณนี้ไม่ได้วัด
- ค่าพรีเมียมจากผู้ค้าปลีก ภาษี ค่าจัดเก็บ ส่วนต่างราคาซื้อขาย (spread) หรือค่าจัดส่ง
- ราคาสำหรับการซื้อขายจริงหรือราคาชำระบัญชี ค่าสังเกตอัตราแลกเปลี่ยนเป็นเพียงข้อมูลอ้างอิงเชิงบ่งชี้
- คำอธิบายเชิงเหตุผล การพยากรณ์ หรือคำแนะนำการลงทุน
สำหรับโค้ดแอปพลิเคชันที่ต้องการชุดข้อมูลสกุลท้องถิ่นที่ยาวขึ้น ดูคู่มือช่วงข้อมูลอัตราแลกเปลี่ยนย้อนหลัง และเอกสารอ้างอิง bars ของ goldprice.dev กุญแจสำคัญไม่ใช่การคูณ แต่คือการรักษาค่าสังเกตทั้งสองไว้ให้การคูณนั้นถูกต้องตามข้อมูลประวัติศาสตร์
