Skip to main content
🔬 Advanced

เครื่องแปลงสกุลเงิน

แปลงระหว่างสกุลเงินหลักของโลกด้วยอัตราแลกเปลี่ยนที่อัปเดตรายวัน รองรับกว่า 20 สกุลเงิน ฟรี

วิธีการแปลงสกุลเงิน

การแปลงสกุลเงินคือการคูณจำนวนเงินด้วยอัตราแลกเปลี่ยนระหว่างสกุลเงินสองสกุล สำหรับวิธีการแปลง 100 ดอลลาร์สหรัฐฯ เป็นยูโรที่อัตรา 0.92 คุณจะได้ 92.00 ยูโร อัตราแลกเปลี่ยนเปลี่ยนแปลงอย่างต่อเนื่องตามความต้องการและอุปสงค์ในตลาดการซื้อขายเงินตราต่างประเทศ การดำเนินการของธนาคารกลาง การแตกต่างของการเงินเฟ้อ การสมดุลการค้า และเหตุการณ์ทางการเมือง

เครื่องแปลงสกุลเงินของเราขึ้นอยู่กับสมการแบบเปิดเผย: จำนวนเงินแปลง = จำนวนเงินฐาน × อัตราแลกเปลี่ยน เนื่องจากอัตราแลกเปลี่ยนแบบเรียลไทม์จำเป็นต้องมีการสมัครสมาชิกข้อมูล เราจึงแสดงวิธีการคำนวณไว้อย่างชัดเจน เพื่อให้คุณสามารถใส่อัตราแลกเปลี่ยนปัจจุบันจากแหล่งใดแหล่งหนึ่ง (ธนาคาร Google XE.com) และได้รับผลลัพธ์ทันที

อัตราแลกเปลี่ยนแสดงในสองวิธี: การอ้างอิงโดยตรง (ภายใน/ต่างประเทศ) แสดงว่าหน่วยต่างประเทศหนึ่งหน่วยสามารถซื้อหน่วยภายในประเทศได้เท่าใด (ตัวอย่างเช่น 1 USD = 0.92 EUR) การอ้างอิงโดยอ้อม (ต่างประเทศ/ภายใน) แสดงว่าหน่วยภายในประเทศหนึ่งหน่วยสามารถซื้อหน่วยต่างประเทศได้เท่าใด (ตัวอย่างเช่น 1 EUR = 1.087 USD) อัตราสองอัตรานี้เป็นค่าผกผันของกันและกัน: 1/0.92 = 1.087 การทำความเข้าใจความแตกต่างนี้จะป้องกันการแปลงผิดพลาดที่มีค่าใช้จ่าย โดยเฉพาะอย่างยิ่งเมื่อแปลงจำนวนเงินต่างประเทศเป็นสกุลเงินในบ้าน

ตลาดการซื้อขายเงินตราต่างประเทศเป็นตลาดการเงินที่ใหญ่ที่สุดในโลก โดยมีมูลค่าการซื้อขายรายวันมากกว่า 7.5 ล้านล้านดอลลาร์สหรัฐฯ (ข้อมูล BIS ปี 2022) ซึ่งมากกว่ามูลค่าการซื้อขายของตลาดหุ้นของสหรัฐฯ ประมาณ 50 เท่า ตลาดดำเนินการ 24 ชั่วโมงต่อวัน ตั้งแต่เย็นของวันอาทิตย์ (เปิดตลาดในซิดนีย์) ถึงบ่ายวันศุกร์ (ปิดตลาดในนิวยอร์ก) โดยมีความชื้นในตลาดสูงสุดในช่วงเวลาการล่วงหน้าของลอนดอนและนิวยอร์ก (8.00-12.00 น. EST)

อัตราแลกเปลี่ยนหลักของโลก

ตารางด้านล่างแสดงอัตราแลกเปลี่ยนประมาณการเทียบกับ USD ในช่วงต้นปี 2025 อัตราเปลี่ยนแปลงทุกวัน — ตรวจสอบกับแหล่งที่มาแบบเรียลไทม์ก่อนทำธุรกรรม

สกุลเงินรหัสอัตรา USD ประมาณภูมิภาค / การใช้งาน
ยูโรEUR1 USD ≈ 0.92 EURยูโรโซน (20 ประเทศ)
ปอนด์สเตอร์ลิงGBP1 USD ≈ 0.79 GBPสหราชอาณาจักร
เยนญี่ปุ่นJPY1 USD ≈ 149 JPYญี่ปุ่น
ดอลลาร์แคนาดาCAD1 USD ≈ 1.36 CADแคนาดา
ดอลลาร์ออสเตรเลียAUD1 USD ≈ 1.55 AUDออสเตรเลีย, โอเชียเนีย
ฟรังก์สวิสCHF1 USD ≈ 0.90 CHFสวิตเซอร์แลนด์, ลิกเตนสไตน์
หยวนจีนCNY1 USD ≈ 7.24 CNYจีน (แผ่นดินใหญ่)
รูปีหินดีINR1 USD ≈ 83 INRอินเดีย
เปโซเม็กซิโกMXN1 USD ≈ 17.1 MXNเม็กซิโก
เรียลบราซิลBRL1 USD ≈ 4.97 BRLบราซิล
วอนเกาหลีใต้KRW1 USD ≈ 1,330 KRWเกาหลีใต้
ดอลลาร์สิงคโปร์SGD1 USD ≈ 1.34 SGDสิงคโปร์

หมายเหตุ: อัตราเหล่านี้เป็นอัตราแบบประมาณการ อัตราแท้จริงเปลี่ยนแปลงอย่างต่อเนื่อง ตรวจสอบกับ XE.com, Google Finance หรือธนาคารของคุณก่อนทำธุรกรรมใดๆ

คู่สกุลเงินหลักและตลาด Forex

สกุลเงินที่ซื้อขายมากที่สุดในโลกถูกเรียกว่า "หลัก" : EUR/USD (ยูโร/ดอลลาร์), USD/JPY (ดอลลาร์/เยน), GBP/USD (ปอนด์/ดอลลาร์), USD/CHF (ดอลลาร์/ฟรังก์สวิส), AUD/USD (ดอลลาร์ออสเตรเลีย/ดอลลาร์), USD/CAD (ดอลลาร์/ดอลลาร์แคนาดา), และ NZD/USD (ดอลลาร์นิวซีแลนด์/ดอลลาร์) สกุลเงินเหล่านี้มีส่วนแบ่งการซื้อขาย Forex ประมาณ 70–75% ของปริมาณการซื้อขายทั้งหมด

การแสดงคู่สกุลเงิน: EUR/USD = 1.0850 หมายถึง 1 ยูโรซื้อ 1.0850 ดอลลาร์สหรัฐฯ สกุลเงินแรกคือ "ฐาน" สกุลเงินอื่นคือ "อ้างอิง" (หรือ "สกุลเงินตรงกันข้าม") เพื่อแปลงยูโรเป็นดอลลาร์: คูณจำนวนยูโรด้วยอัตรา เพื่อแปลงดอลลาร์กลับเป็นยูโร: หารด้วยอัตรา (หรือคูณด้วย 1/อัตรา)

คู่สกุลเงินข้าม (ไม่เกี่ยวข้องกับ USD) ได้แก่ EUR/GBP, EUR/JPY, GBP/JPY, AUD/NZD, และอื่นๆ มักจะซื้อขายโดยการสร้างอัตราโดยการอนุมานผ่าน USD: EUR/GBP ≈ (EUR/USD) / (GBP/USD) อัตราข้ามมีอัตรา spread ที่กว้างกว่าของ USD pairs เพราะถูกสร้างขึ้นจากสองคู่ USD

คู่สกุลเงินตลาดใหม่ เช่น USD/MXN, USD/BRL, USD/INR, USD/TRY มีศักยภาพในการทำกำไรสูงขึ้น แต่ยังมีความผันผวนสูงและอัตรา spread ที่กว้างกว่า มีความเสี่ยงต่อการเปลี่ยนแปลงที่ไม่คาดคิดจากเหตุการณ์ทางการเมืองในท้องถิ่น การเปลี่ยนแปลงราคาสินค eskort และความเสี่ยงในการหลีกเลี่ยงในตลาดโลก

PairNicknameDaily VolumeKey Drivers
EUR/USDFiber~$1.1TECB/Fed policy, EU-US trade, risk sentiment
USD/JPYGopher~$750BBOJ policy, US yields, risk-off demand for JPY
GBP/USDCable~$400BBank of England, UK economic data, Brexit effects
USD/CHFSwissie~$180BSNB policy, safe-haven demand, gold prices
AUD/USDAussie~$175BRBA policy, commodity prices (iron ore, coal)
USD/CADLoonie~$165BBOC policy, oil prices, US-Canada trade

คำแนะนำสำหรับการได้รับสกุลเงินแลกเปลี่ยนดีที่สุด

การได้รับสกุลเงินแลกเปลี่ยนดีที่สุดสามารถช่วยประหยัดเงินได้มากขึ้น โดยเฉพาะอย่างยิ่งสำหรับการแลกเปลี่ยนจำนวนมาก การช่องว่างระหว่างอัตราที่ดีที่สุดและอัตราที่เลวที่สุดสำหรับคู่สกุลเงินยอดนิยมสามารถแตกต่างกันได้ 3–7% หมายความว่าการแลกเปลี่ยน $10,000 อาจแตกต่างกัน $300–$700 ขึ้นอยู่กับสถานที่แลกเปลี่ยน

หลีกเลี่ยงตัวเลือกที่มีค่าใช้จ่ายสูง:

ตัวเลือกที่ดีกว่า:

สำหรับการโอนจำนวนมาก (ซื้อทรัพย์สินต่างประเทศ การชำระเงินระหว่างประเทศ): ใช้แพลตฟอร์มแลกเปลี่ยน FX พิเศษ (OFX, Moneycorp, AFEX) พวกเขาจะตั้งอัตราใกล้เคียงกับแบงก์กลาง และเสนอสัญญาอนุมาน — ระบายอัตราไว้สำหรับการชำระเงินในอนาคต เพื่อป้องกันการเคลื่อนไหวของสกุลเงินที่ไม่พึงประสงค์ ในการซื้อทรัพย์สิน €200,000 อัตราที่ดีกว่า 0.5% สามารถประหยัดได้ €1,000

{ “@context”: “https://schema.org”, “@type”: “FAQPage”, “mainEntity”: [ { “name”: “What is the best way to get a good exchange rate?”, “acceptedAnswer”: { “@type”: “Answer”, “text”: “Getting a good currency conversion rate can save you significant money, especially on large transactions. The gap between the best and worst rates for common currency pairs can easily be 3–7%, meaning a $10,000 conversion could differ by $300–$700 depending on where you exchange.” } }, { “name”: “What are the best options for getting a good exchange rate?”, “acceptedAnswer”: { “@type”: “Answer”, “text”: “No-foreign-transaction-fee credit cards, online FX platforms, your bank, and local ATMs abroad are all good options for getting a good exchange rate.” } } ] }

ปัจจัยที่ขับเคลื่อนอัตราแลกเปลี่ยน: ปัจจัยทางเศรษฐกิจและทางการเมือง

อัตราแลกเปลี่ยนสะท้อนถึงสุขภาพเศรษฐกิจและเงินตราของประเทศอย่างเป็นทางการ เมื่อเข้าใจปัจจัยหลักที่ขับเคลื่อนจะช่วยให้คุณสามารถคาดการณ์การเคลื่อนไหวของอัตราและตัดสินใจได้ดีขึ้นเกี่ยวกับเวลาการแปลงเงินสกุลเงินขนาดใหญ่

ความแตกต่างอัตราดอกเบี้ย: ปัจจัยขับเคลื่อนระยะสั้นที่มีพลังมากที่สุด อัตราดอกเบี้ยสูงดึงดูดเงินต่างประเทศที่ต้องการผลตอบแทนที่ดีขึ้น ทำให้ความต้องการสกุลเงินนั้นเพิ่มขึ้นและทำให้เพิ่มขึ้น การ "การซื้อขายดอกเบี้ย" — การกู้ยืมในสกุลเงินอัตราดอกเบี้ยต่ำ (ประวัติศาสตร์ JPY) และลงทุนในสกุลเงินอัตราดอกเบี้ยสูง — สามารถเคลื่อนไหวอัตราได้อย่างมีนัยสำคัญ เมื่อธนาคารกลางสหรัฐฯ เพิ่มอัตราดอกเบี้ยเร็วกว่า ECB อัตรา EUR/USD จะลดลง

การเงินเฟ้อ: การเงินเฟ้อที่สูงทำให้ความสามารถในการซื้อของเสื่อมโทรม ทำให้สกุลเงินอ่อนแอลงไปในระยะยาว ทฤษฎี Purchasing Power Parity (PPP) กล่าวว่าอัตราแลกเปลี่ยนควรสะท้อนถึงอัตราการเงินเฟ้อที่เป็นทางการในระยะยาว ในทางปฏิบัติ PPP กำหนดแนวโน้มระยะยาว แต่ไม่ได้กำหนดการเคลื่อนไหวระยะสั้น ดัชนี Big Mac (นิตยสาร Economist) ใช้ PPP เพื่อแสดงว่าสกุลเงินใดมีราคาต่ำหรือสูงกว่า USD

สมดุลการค้า: ประเทศที่มีสมดุลการค้าอย่างต่อเนื่อง (นำเข้ามากกว่าการส่งออก) ทำให้แรงกดดันลงต่อสกุลเงินในระยะยาว เนื่องจากต้องขายสกุลเงินเพื่อชำระค่านำเข้า สหรัฐอเมริกามีสมดุลการค้าอย่างต่อเนื่อง; สิ่งนี้จะทำให้ USD อ่อนแอลง แต่ถูก OFFSET โดยการไหลเข้าของเงินเข้าสู่ทรัพย์สินของสหรัฐฯ (สถานะสกุลเงินสำรอง)

ความเสถียรภาพทางการเมืองและความเสี่ยง: ความไม่แน่นอนทางการเมือง ความขัดแย้งทางภูมิรัฐศาสตร์ และการคว่ำบาตรทำให้เกิดการเคลื่อนไหวของสกุลเงินอย่างรวดเร็ว สวิสฟรังค์ (CHF) เป็น "ศูนย์กลางปลอดภัย" ที่ดั้งเดิม — นักลงทุนซื้อในช่วงวิกฤติระหว่างประเทศ ในช่วงการรุกรานยูเครนในปี 2022 CHF มีความแข็งแกร่งอย่างมาก เช่นเดียวกับ JPY ที่มีความแข็งแกร่งในช่วงการเปลี่ยนแปลงความเสี่ยง

การแทรกแซงจากธนาคารกลาง: ธนาคารกลางบางแห่งมีการแทรกแซงโดยตรงในตลาดการซื้อขายเงินตราต่างประเทศโดยการซื้อหรือขายสกุลเงินของตนเอง ธนาคารกลางญี่ปุ่นได้แทรกแซงหลายครั้งเพื่อป้องกันการลดลงของ JPY ธนาคารแห่งชาติสวิส (SNB) ได้บังคับใช้ขีดจำกัดที่แข็งแกร่งต่อ EUR/CHF เป็นเวลาหลายปีก่อนที่จะยกเลิกอย่างรวดเร็วในเดือนมกราคม 2015 (ทำให้ CHF เพิ่มขึ้น 20% ใน 1 นาที)

การแปลงสกุลเงินสำหรับนักท่องเที่ยว: คู่มือที่มีประสิทธิภาพ

นักท่องเที่ยวระหว่างประเทศเผชิญกับการแปลงสกุลเงินอย่างต่อเนื่อง การใช้กลยุทธ์ที่มีประสิทธิภาพจะช่วยประหยัดเงินได้อย่างมีประสิทธิภาพ

ก่อนออกเดินทาง: ตรวจสอบอัตราแลกเปลี่ยนปัจจุบันเพื่อสร้างฐานเส้นต้นทุนของคุณรู้ว่าราคาที่ต่างประเทศคือถูกหรือแพงกว่าหรือไม่ relative to สกุลเงินของคุณเอง สำหรับการคำนวณง่ายๆ ที่ต่างประเทศ: หาก 1 USD = 0.92 EUR แล้ว 10 EUR ≈ $10.90 สำหรับการแปลงที่มีประสิทธิภาพในหัวใจของคุณ: 1 EUR ≈ $1.10 (สำหรับ EUR/USD ที่ใกล้เคียงกับเส้นฐาน)

เมื่อถึงที่: ใช้เครื่องเอทีเอ็มท้องถิ่นเพื่อเงินสด (เลือกสกุลเงินท้องถิ่น ไม่ใช่สกุลเงินของบ้าน) ถอนจำนวนมากเพื่อลดค่าธรรมเนียมต่อการทำธุรกรรม — หากมีค่าธรรมเนียม $5 ให้ถอน $200 แทนที่จะถอน $50 สี่ครั้ง

ที่จุดหมายปลายทาง: ใส่การชำระเงินด้วยบัตรสำหรับการซื้อขายที่ใหญ่กว่า (การบันทึกอัตราแลกเปลี่ยน, การป้องกันการฉ้อโกง) ใช้เงินสดสำหรับซื้อขายเล็กๆ น้อยๆ ตลาด และสถานที่ที่ไม่รับบัตร อย่าเปลี่ยนจำนวนมากทั้งหมดในครั้งเดียว — อัตราอาจดีขึ้น และคุณจะมีเงินสกุลเงินท้องถิ่นที่เหลืออยู่เพื่อแปลงกลับบ้าน

เมื่อเดินทางกลับ: ใช้เงินสกุลเงินท้องถิ่นที่เหลือหรือเปลี่ยนเงินกับธนาคารท้องถิ่น เงินเหรียญทั่วไปไม่สามารถเปลี่ยนกลับ (เพียงธนบัตรเท่านั้น) การแลกเปลี่ยนเงินตราที่สนามบินเมื่อเดินทางกลับบ้านนั้นไม่เลวเท่ากับการแลกเปลี่ยนเมื่อถึงที่ (คุณต้องการน้อยกว่า) แต่ยังคงเป็นราคาที่แพง การแลกเปลี่ยนเงินตราที่ธนาคารและสำนักงานไปรษณีย์ในประเทศของคุณอาจรับธนบัตรต่างประเทศ บางครั้งด้วยอัตราที่ดีกว่าเครื่องแลกเปลี่ยนเงินตราที่สนามบิน

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

ทำไมแบงก์จึงมีอัตราแลกเปลี่ยนแตกต่างจากเครื่องคอนเวอร์เตอร์

แบงก์จะบวกส่วนกำไร (สเปรด) บนยอดอัตราแลกเปลี่ยนระหว่างธนาคารเพื่อครอบคลุมต้นทุนและกำไร ส่วนกำไรนี้มักจะอยู่ในช่วง 1% ถึง 5% เครื่องคอนเวอร์เตอร์แสดงอัตราแลกเปลี่ยนกลางตลาด แต่จำนวนเงินที่แปลงจริงจะน้อยกว่าผลตอบแทน

อัตราแลกเปลี่ยนกลางตลาดคืออะไร

อัตราแลกเปลี่ยนกลางตลาด (หรืออัตราแลกเปลี่ยนระหว่างธนาคาร) คืออัตราที่อยู่ตรงกลางระหว่างราคาซื้อและขายของตัวชุดเงินตรา นี่คืออัตราแลกเปลี่ยน "แท้จริง" ที่ธนาคารใช้ในการซื้อขายกับกันและกัน ผู้บริโภคไม่เคยได้รับอัตรานี้อย่างแม่นยำเสมอไป มีเส้นกำไรเสมอไป

อัตราแลกเปลี่ยนเปลี่ยนแปลงได้กี่ครั้ง

ตลาดเงินตราต่างประเทศดำเนินการ 24 ชั่วโมงต่อวัน 5 วันต่อสัปดาห์ และอัตราแลกเปลี่ยนสามารถเปลี่ยนแปลงได้ภายในวินาทีในช่วงเวลาที่มีการซื้อขายสูง การประกาศทางเศรษฐกิจที่สำคัญ (การตัดสินใจดอกเบี้ย รายงานการจ้างงาน ข้อมูลการเงิน) สามารถทำให้อัตราแลกเปลี่ยนเปลี่ยนแปลงอย่างมีนัยสำคัญภายในนาที อัตราแลกเปลี่ยนในช่วงสุดสัปดาห์จะถูกตั้งไว้เมื่อสิ้นสุดการซื้อขายตลาดวันศุกร์และเปิดอีกครั้งเมื่อสุดสัปดาห์ (เมื่อเวลาเปิดตลาดในซิดนีย์)

เวลาที่ดีที่สุดในการแลกเปลี่ยนเงินตรา

ไม่มีเวลาที่ดีที่สุด แต่มีบางรูปแบบที่มีอยู่ การหลีกเลี่ยงการแลกเปลี่ยนก่อนการประกาศทางเศรษฐกิจที่สำคัญ (การประชุมเฟด การตัดสินใจของ ECB รายงานการจ้างงาน) เมื่ออัตราแลกเปลี่ยนมีความผันผวนสูง วันที่ 2-4 ของสัปดาห์ มีความผันผวนที่ต่ำกว่าเมื่อเปิดตลาดในวันจันทร์และปิดตลาดในวันศุกร์ สำหรับการแลกเปลี่ยนจำนวนมากพิจารณาใช้สัญญาจำนวนจำกัด — การตั้งเป้าหมายอัตราแลกเปลี่ยนและดำเนินการเมื่อถึงเป้าหมาย

สัญญาแลกเปลี่ยนล่วงหน้าคืออะไร

สัญญาแลกเปลี่ยนล่วงหน้าจะจัดเก็บอัตราแลกเปลี่ยนในวันนี้สำหรับการแลกเปลี่ยนในอนาคต (30 วัน 60 วัน 90 วัน หรือมากกว่า) ใช้โดยธุรกิจที่ชำระค่าใช้จ่ายต่างประเทศ ผู้นำเข้า ผู้ส่งออก และผู้ซื้อที่มีอสังหาริมทรัพย์เพื่อลดความเสี่ยงในการแลกเปลี่ยนอัตราแลกเปลี่ยน บริษัท FX (OFX, Moneycorp) ให้บริการสัญญาแลกเปลี่ยนล่วงหน้า โดยทั่วไปต้องการการฝากเงิน 5-10% อัตราแลกเปลี่ยนล่วงหน้าแตกต่างจากอัตราแลกเปลี่ยน spot โดยอัตราดอกเบี้ย

ควรใช้บัตรเครดิตหรือเงินสดต่างประเทศ

ใช้บัตรเครดิตที่ไม่มีค่าธรรมเนียมการแลกเปลี่ยนต่างประเทศสำหรับการซื้อขายส่วนใหญ่ — คุณจะได้รับอัตราแลกเปลี่ยนกลางตลาดผ่านเครือข่าย Visa/Mastercard นอกจากนี้ยังมีการคุ้มครองการซื้อขาย ใช้เงินสดท้องถิ่น (ได้รับจากเครื่องเอทีเอ็ม) สำหรับซื้อขายเล็กๆ น้อยๆ ตลาด และค่าเที่ยวชม景แว่น นี่จะช่วยให้คุณหลีกเลี่ยงการใช้บัตรที่มีค่าธรรมเนียมการแลกเปลี่ยนต่างประเทศ (โดยทั่วไป 3%) ซึ่งจะทำให้คุณเสียมากกว่าบริการแลกเปลี่ยนสนามบินสำหรับจำนวนเงินเล็กน้อย

เงินตราเพกคืออะไรและทำงานอย่างไร

เงินตราเพกคือเมื่อประเทศตั้งอัตราแลกเปลี่ยนของเงินตราของตนไว้ที่อัตราแลกเปลี่ยนของเงินตราอื่น (โดยทั่วไปเป็น USD) ซาอุดีอาระเบียกำหนด SAR ที่ 3.75/USD ฮ่องกงกำหนด HKD ที่ 7.75-7.85/USD ธนาคารกลางจะรักษาเพกโดยการซื้อขายเงินตราของตนตามที่จำเป็นเพื่อรักษาอัตราแลกเปลี่ยนไว้เพก นี่ทำให้มีความเสถียรภาพ แต่ต้องมีสำรองเงินตราต่างประเทศจำนวนมาก เมื่อสำรองไม่เพียงพอ เพกอาจล้มเหลวอย่างรุนแรง (เช่น บาทของประเทศไทยในปี 1997)

การเงินเฟ้อมีผลต่ออัตราแลกเปลี่ยนในระยะยาวอย่างไร

ทฤษฎี Purchasing Power Parity (PPP) ระบุว่าอัตราแลกเปลี่ยนจะปรับให้เท่ากับราคาของสินค้าจริงในประเทศต่างๆ หากสหรัฐมีการเงินเฟ้อ 3% ต่อปี และสหภาพยุโรปมีการเงินเฟ้อ 2% อัตราแลกเปลี่ยน USD จะลดลงประมาณ 1% ต่อปี ต่อ EUR ในทางปฏิบัติ PPP เป็นแนวคิดที่มีสมดุลในระยะยาว อัตราแลกเปลี่ยนอาจแตกต่างอย่างมีนัยสำคัญเป็นปีๆ เพื่อกระแสเงินตราและความเชื่อมั่นของตลาด

อัตราแลกเปลี่ยน spot และอัตราแลกเปลี่ยนล่วงหน้าแตกต่างกันอย่างไร

อัตราแลกเปลี่ยน spot คืออัตราแลกเปลี่ยนที่ใช้สำหรับการแลกเปลี่ยนในขณะนี้ (T+2 การชำระเงิน) อัตราแลกเปลี่ยนล่วงหน้าคืออัตราที่ตกลงไว้ในวันนี้สำหรับการชำระเงินในอนาคต อัตราแลกเปลี่ยนล่วงหน้าแตกต่างจากอัตราแลกเปลี่ยน spot โดยอัตราดอกเบี้ยระหว่างสองเงินตรา: หากอัตราดอกเบี้ยของ USD สูงกว่าอัตราดอกเบี้ยของ EUR อัตราแลกเปลี่ยน USD จะมีอัตราแลกเปลี่ยนล่วงหน้า (อัตราแลกเปลี่ยน EUR/USD ในอนาคตจะสูงกว่าอัตราแลกเปลี่ยน spot) นี้จะป้องกันการค้าปลีกที่ไม่มีความเสี่ยง

เงินตราโลกที่มีสำรองอยู่ในธนาคารกลาง

เงินตราที่มีสำรองในธนาคารกลางคือเงินตราที่ธนาคารกลางเก็บไว้เป็นส่วนหนึ่งของสำรองเงินตราต่างประเทศ ณ ปี 2024: USD ประมาณ 58% ของสำรองเงินตราต่างประเทศ EUR ประมาณ 20% JPY ประมาณ 5.5% GBP ประมาณ 5% CNY ประมาณ 2.3% และอื่นๆ ประมาณ 9% ความโดดเด่นของ USD มาจากขนาดเศรษฐกิจของสหรัฐ ความลึกของตลาดการเงิน การกำหนดราคาของสินค้าดอลลาร์ (น้ำมัน ทองคำ) และความไว้วางใจของโลก "การลดความเชื่อมั่นของดอลลาร์" ยังไม่ได้เปลี่ยนแปลงสัดส่วนเหล่านี้อย่างมีนัยสำคัญ

; // { base: { rates, time_last_update_unix, fetchedAt } } const CACHE_TTL = 3600000; // 1 hour in ms
const POPULAR = ['USD','EUR','GBP','JPY','CAD','AUD','CHF','CNY','INR','MXN',
  'BRL','KRW','SGD','SEK','NOK','NZD','TRY','ZAR','HKD','PLN'];

const NAMES = {USD:'US Dollar',EUR:'Euro',GBP:'British Pound',JPY:'Japanese Yen',
  CAD:'Canadian Dollar',AUD:'Australian Dollar',CHF:'Swiss Franc',CNY:'Chinese Yuan',
  INR:'Indian Rupee',MXN:'Mexican Peso',BRL:'Brazilian Real',KRW:'South Korean Won',
  SGD:'Singapore Dollar',SEK:'Swedish Krona',NOK:'Norwegian Krone',NZD:'New Zealand Dollar',
  TRY:'Turkish Lira',ZAR:'South African Rand',HKD:'Hong Kong Dollar',PLN:'Polish Zloty',
  DKK:'Danish Krone',CZK:'Czech Koruna',HUF:'Hungarian Forint',ILS:'Israeli Shekel',
  THB:'Thai Baht',PHP:'Philippine Peso',IDR:'Indonesian Rupiah',MYR:'Malaysian Ringgit',
  TWD:'Taiwan Dollar',AED:'UAE Dirham',SAR:'Saudi Riyal',CLP:'Chilean Peso',
  COP:'Colombian Peso',ARS:'Argentine Peso',EGP:'Egyptian Pound',PKR:'Pakistani Rupee',
  NGN:'Nigerian Naira',KES:'Kenyan Shilling',RON:'Romanian Leu',BGN:'Bulgarian Lev',
  ISK:'Icelandic Króna',HRK:'Croatian Kuna',RUB:'Russian Ruble',UAH:'Ukrainian Hryvnia'};

const fromSel = document.getElementById('fromCurrency');
const toSel = document.getElementById('toCurrency');
const amountEl = document.getElementById('amount');
const resultEl = document.getElementById('result');

/* ── Swap button injection ── */
const swapBtn = document.createElement('button');
swapBtn.type = 'button';
swapBtn.textContent = '⇄ Swap';
swapBtn.style.cssText = 'margin:0.25rem 0 0.75rem;padding:0.4rem 1rem;font-size:0.9rem;cursor:pointer;border:1px solid #cbd5e1;border-radius:6px;background:#f8fafc;';
swapBtn.addEventListener('click', () => {
  const tmp = fromSel.value;
  fromSel.value = toSel.value;
  toSel.value = tmp;
  convert();
});
fromSel.parentNode.insertBefore(swapBtn, toSel.previousElementSibling);

/* ── Populate selects with all currencies from API ── */
function populateSelects(rates) {
  const allCodes = Object.keys(rates).sort();
  const extras = allCodes.filter(c => !POPULAR.includes(c));
  [fromSel, toSel].forEach(sel => {
    const current = sel.value;
    // Keep popular options, add separator + extras
    const existing = new Set(Array.from(sel.options).map(o => o.value));
    if (!sel.querySelector('option[disabled]')) {
      const sep = document.createElement('option');
      sep.disabled = true;
      sep.textContent = '── All currencies ──';
      sel.appendChild(sep);
    }
    extras.forEach(code => {
      if (!existing.has(code)) {
        const opt = document.createElement('option');
        opt.value = code;
        opt.textContent = code + (NAMES[code] ? ' — ' + NAMES[code] : '');
        sel.appendChild(opt);
      }
    });
    sel.value = current;
  });
}

/* ── Fetch rates with caching ── */
async function fetchRates(base) {
  const now = Date.now();
  if (cache[base] && (now - cache[base].fetchedAt) < CACHE_TTL) {
    return cache[base];
  }
  const res = await fetch(API_BASE + base);
  if (!res.ok) throw new Error('API returned ' + res.status);
  const data = await res.json();
  if (data.result !== 'success') throw new Error(data['error-type'] || 'API error');
  cache[base] = { rates: data.rates, time_last_update_unix: data.time_last_update_unix, fetchedAt: now };
  return cache[base];
}

/* ── Convert ── */
async function convert() {
  const amount = parseFloat(amountEl.value);
  const from = fromSel.value;
  const to = toSel.value;

  if (!amount && amount !== 0) {
    resultEl.innerHTML = 'Enter an amount to convert.';
    resultEl.style.display = 'block';
    return;
  }
  if (from === to) {
    const fmt = amount.toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
    resultEl.innerHTML = `<strong>${fmt} ${from}</strong> = <strong>${fmt} ${to}</strong><br><small>Same currency — no conversion needed.</small>`;
    resultEl.style.display = 'block';
    return;
  }

  resultEl.innerHTML = '<em>Fetching live rate…</em>';
  resultEl.style.display = 'block';

  try {
    const data = await fetchRates(from);
    populateSelects(data.rates);
    const rate = data.rates[to];
    if (!rate) { resultEl.innerHTML = 'Currency not available.'; return; }
    const converted = amount * rate;
    const fmtAmt = amount.toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
    const fmtRes = converted.toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
    const fmtRate = rate < 0.01 ? rate.toExponential(4) : rate < 1 ? rate.toFixed(6) : rate.toFixed(4);
    const updDate = data.time_last_update_unix ? new Date(data.time_last_update_unix * 1000).toLocaleDateString('en-US', {month:'short',day:'numeric',year:'numeric'}) : '';
    resultEl.innerHTML = `<strong>${fmtAmt} ${from}</strong> = <strong>${fmtRes} ${to}</strong>`
      + `<br><small>Rate: 1 ${from} = ${fmtRate} ${to}${updDate ? ' · Updated ' + updDate : ''}</small>`
      + `<br><small>Source: <a href="https://www.exchangerate-api.com/" target="_blank" rel="noopener">ExchangeRate-API</a> (open data, updates daily). Rates are indicative — verify with your bank before transacting.</small>`;
    resultEl.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
  } catch (e) {
    resultEl.innerHTML = '⚠️ Could not fetch live rates. Please try again in a moment, or check <a href="https://xe.com" target="_blank" rel="noopener">XE.com</a> for current rates.<br><small>Error: ' + e.message + '</small>';
  }
}

/* ── Event listeners ── */
document.getElementById('calcBtn').addEventListener('click', convert);
document.getElementById('calcForm').addEventListener('keydown', (e) => {
  if (e.key === 'Enter') { e.preventDefault(); convert(); }
});

function _dbCalc(fn, ms) { let t; return (...a) => { clearTimeout(t); t = setTimeout(() => fn(...a), ms); }; }
const debouncedConvert = _dbCalc(convert, 300);
amountEl.addEventListener('input', debouncedConvert);
fromSel.addEventListener('change', convert);
toSel.addEventListener('change', convert);

/* ── Auto-fetch on load to populate all currencies ── */
fetchRates(fromSel.value).then(data => populateSelects(data.rates)).catch(() => {});

})();