REST, WebSocket, FIX และ MT5 มักถูกนำเสนอเป็นสี่ API การเทรดฟอเร็กซ์ที่แข่งขันกัน แต่จริง ๆ แล้วพวกเขาไม่ใช่เช่นนั้น.
REST โดยทั่วไปเป็นวิธีที่สะอาดที่สุดในการขอข้อมูลบัญชี โหลดประวัติ หรือส่งคำสั่งเป็นครั้งคราว WebSocket รักษาการเชื่อมต่อให้อยู่ในสถานะเปิดเพื่อให้ราคาสินค้าและการอัปเดตคำสั่งสามารถเข้ามาได้เมื่อเกิดขึ้น FIX เป็นมาตรฐานการส่งข้อความทางการเงินที่ใช้สำหรับการส่งคำสั่ง รายงานการดำเนินการ และข้อมูลตลาดระหว่างระบบการซื้อขายมืออาชีพ MT5 เป็นแพลตฟอร์มการซื้อขายที่มี API หลายตัวสำหรับงานที่แตกต่างกัน
โบรกเกอร์อาจใช้ทั้งสี่วิธี แอปพลิเคชันมือถือสามารถโหลดบัญชีผ่าน REST สตรีมราคา ผ่าน WebSocket ส่งคำสั่งไปยัง MetaTrader 5 และจัดการการเปิดเผยภายนอกไปยัง ผู้ให้สภาพคล่อง ผ่าน FIX แต่ละอินเตอร์เฟซมีความสำคัญในส่วนที่แตกต่างกันของการซื้อขาย.
| อินเทอร์เฟซ | รูปแบบการสื่อสาร | เหมาะสมที่สุด | ไม่เหมาะสม |
|---|---|---|---|
| REST API | ไคลเอนต์ส่งคำขอและรับการตอบกลับ | การเข้าสู่ระบบ, บัญชี, สัญลักษณ์, ประวัติ, รายงาน และคำสั่งที่มีความถี่ต่ำ | การสตรีมราคาต่อเนื่องผ่านการตรวจสอบซ้ำ |
| WebSocket API | ไคลเอนต์และเซิร์ฟเวอร์รักษาการเชื่อมต่อแบบสองทางไว้ | ราคาสด, ความลึก, สถานะคำสั่ง และเหตุการณ์บัญชี | การสอบถามประวัติยาว ๆ และบันทึกการจัดการที่ง่าย |
| FIX API | ระบบการซื้อขายสองระบบแลกเปลี่ยนข้อความทางการเงินที่มีมาตรฐานภายในเซสชันที่จัดการ | การไหลของคำสั่งจากนายหน้าไปยัง LP, สถานที่ และสถาบัน | API สาธารณะที่ง่ายสำหรับแอปมือถือค้าปลีก |
| MT5 APIs | หลายอินเทอร์เฟซรอบแพลตฟอร์ม MetaTrader 5 | การจัดการนายหน้า, การขยายแพลตฟอร์ม, เกตเวย์, รายงาน และการทำงานอัตโนมัติของเทอร์มินัล | โปรโตคอลสากลที่ไม่ขึ้นกับ MT5 |
วิธีที่ API เหล่านี้เข้ากับระบบการซื้อขายฟอเร็กซ์หนึ่ง
ฉันถือว่าสี่ชื่อนั้นเป็นชั้นที่แตกต่างกัน
REST และ WebSocket มักจะอยู่ใกล้กับแอปพลิเคชันที่ผู้ค้าหันหน้าไปหา FIX มักจะอยู่ลึกลงไปในโครงสร้างพื้นฐานการดำเนินการ MT5 อาจเป็นแพลตฟอร์มการซื้อขายที่อยู่ตรงกลาง แต่ก็สามารถเชื่อมต่อกับเว็บไซต์ เครื่องมือภายใน และสถานที่ภายนอกผ่าน API ของตนเองได้
การที่คำสั่งฟอเร็กซ์หนึ่งคำสั่งเคลื่อนที่ผ่านสแต็ค
หนึ่งคำสั่ง. ห้าขั้นตอน. จากแอปของเทรดเดอร์ไปยังการดำเนินการและกลับมาอีกครั้ง.
- แอปส่งคำสั่งไปยังโบรกเกอร์ผ่าน REST.
- ผู้ให้บริการสภาพคล่องส่งราคาไปยังโบรกเกอร์ และ WebSocket ทำให้แอปทันสมัยอยู่เสมอ.
- โบรกเกอร์ตรวจสอบคำสั่งและส่งต่อไปยังแพลตฟอร์มการเทรด.
- เราท์เตอร์การดำเนินการส่งคำสั่งไปยังผู้ให้บริการสภาพคล่องผ่าน FIX.
- การเติมกลับไปยังโบรกเกอร์ จากนั้นแอปจะได้รับการยืนยันผ่าน WebSocket.
เส้นทางที่แน่นอนขึ้นอยู่กับโบรกเกอร์ บางแพลตฟอร์มเปิดเผยคำสั่งซื้อขายผ่าน REST ขณะที่แพลตฟอร์มอื่น ๆ ใช้ทั้งคำขอและเหตุการณ์ผ่าน WebSocket หรือ TCP ดิบ โบรกเกอร์ MT5 อาจใช้เกตเวย์ สะพาน หรือการทำงานภายในแทนที่จะส่งคำสั่งทุกคำสั่งตรงไปยังผู้ให้สภาพคล่อง
ดังนั้น แผนภาพควรถูกอ่านว่าเป็นรูปแบบสถาปัตยกรรม ไม่ใช่คำสัญญาว่าผู้ซื้อขายทุกคนจะดำเนินการซื้อขายในลักษณะเดียวกัน
REST API ในการซื้อขายฟอเร็กซ์คืออะไร?
API REST เปิดเผยทรัพยากรผ่าน HTTP ลูกค้าส่งคำขอไปยังจุดสิ้นสุด และเซิร์ฟเวอร์ส่งกลับการตอบสนอง
การโทรศัพท์ทั่วไปจะมีลักษณะเช่นนี้:
GET /accounts/417เพื่อโหลดบัญชี;GET /orders?status=openเพื่อนำข้อมูลคำสั่งซื้อตามสถานะที่เปิดอยู่;GET /candles?symbol=EURUSD&timeframe=1hเพื่อขอข้อมูลแท่งประวัติศาสตร์;POST /ordersเพื่อส่งคำสั่งซื้อ;DELETE /orders/8921เพื่อขอยกเลิกการสั่งซื้อ.
URL และวิธีการที่แน่นอนขึ้นอยู่กับผู้ให้บริการ แนวคิดที่มั่นคงคือการร้องขอและการตอบสนอง HTTP เองเป็นโปรโตคอลที่ไม่มีสถานะ ซึ่งหมายความว่าการร้องขอแต่ละครั้งสามารถเข้าใจได้ด้วยตัวมันเอง ข้อกำหนด HTTP กำหนดความหมายเบื้องหลังวิธีการ รหัสสถานะ และการตอบสนอง
ที่ไหนที่ REST ทำงานได้ดี
REST เป็นทางเลือกที่เหมาะสมสำหรับข้อมูลที่เปลี่ยนแปลงเฉพาะเมื่อมีการร้องขอ:
- โปรไฟล์บัญชีและสิทธิ์;
- เครื่องมือและการตั้งค่าในสัญญาที่มีอยู่;
- เงินฝาก, การถอนเงิน และรายงาน;
- คำสั่งประวัติศาสตร์, ข้อตกลงและเทียน;
- การตั้งค่าแผนกลยุทธ์;
- การสร้างหรือยกเลิกคำสั่งซื้อเมื่อ API รองรับการซื้อขาย。
มันง่ายต่อการตรวจสอบ, บันทึก, แคช และรวมเข้ากับโครงสร้างพื้นฐานเว็บทั่วไป ทีมพัฒนาส่วนใหญ่รู้วิธีทำงานกับ HTTP และ JSON อยู่แล้ว
จุดเริ่มต้นที่ REST เริ่มมีปัญหา
REST ไม่ได้ช้าโดยธรรมชาติ API REST ที่สร้างขึ้นอย่างดีสามารถตอบสนองได้อย่างรวดเร็วพอสำหรับหลาย ๆ กระบวนการซื้อขาย ปัญหาจะเกิดขึ้นเมื่อไคลเอนต์ต้องถามคำถามเดียวกันซ้ำแล้วซ้ำเล่าเป็นร้อย ๆ ครั้ง:
EUR/USD เปลี่ยนแปลงหรือไม่?
คำสั่งซื้อของฉันถูกดำเนินการหรือยัง?
ขอบของฉันเปลี่ยนแปลงไปหรือไม่?
การสำรวจนั้นสร้างคำขอซ้ำๆ, หัวเรื่องและการทำงานของเซิร์ฟเวอร์ มันยังสามารถทำให้มีช่องว่างระหว่างการสำรวจ หากแอปขอราคาหนึ่งครั้งต่อวินาที มันจะไม่รู้ว่าเกิดอะไรขึ้นระหว่างคำขอนั้น
ฉันใช้ REST สำหรับการถ่ายภาพและคำสั่ง ฉันไม่ใช้การตรวจสอบเป็นแหล่งข้อมูลหลักของสถานะการซื้อขายสดเมื่อมีการสตรีมเหตุการณ์ที่เหมาะสมอยู่
WebSocket API คืออะไรในตลาดฟอเร็กซ์?
WebSocket สร้างการเชื่อมต่ออย่างต่อเนื่องแบบสองทางระหว่างไคลเอนต์และเซิร์ฟเวอร์ หลังจากการจับมือเปิดแล้ว ฝ่ายใดฝ่ายหนึ่งสามารถส่งข้อความได้โดยไม่ต้องรอคำขอ HTTP ใหม่ พฤติกรรมนี้ถูกกำหนดไว้ใน โปรโตคอล WebSocket.
ในแอปการซื้อขาย ลูกค้าสามารถสมัครสมาชิก EURUSD ได้ครั้งเดียว จากนั้นเซิร์ฟเวอร์จะส่งการอัปเดตอ้างอิงที่อนุญาตแต่ละครั้งผ่านการเชื่อมต่อที่เปิดอยู่ สตรีมเดียวกันอาจส่งการยืนยันคำสั่ง การเติมเงิน การเปลี่ยนแปลงยอดคงเหลือ และเหตุการณ์มาร์จิ้น
ที่ไหนที่ WebSocket ทำงานได้ดี
API เว็บซ็อกเก็ต Forex เหมาะสำหรับข้อมูลที่เปลี่ยนแปลงตลอดเวลา:
- ราคาเสนอซื้อและเสนอขาย;
- การอัปเดตแผนภูมิ;
- ความลึกของตลาด;
- การยอมรับคำสั่งซื้อ, การปฏิเสธและการเติมเต็ม;
- การเปลี่ยนตำแหน่งและบัญชี;
- คำเตือนเกี่ยวกับขอบ;
- สถานะการซื้อขาย.
ลูกค้าจะได้รับการเปลี่ยนแปลงแทนที่จะต้องร้องขอซ้ำแล้วซ้ำอีก สิ่งนี้ช่วยลดการตรวจสอบและทำให้ส่วนต่อประสานรู้สึกสดใหม่
การเชื่อมต่อแบบเปิดไม่เพียงพอ
WebSocket ไม่ทำให้แอปพลิเคชันการซื้อขายมีความน่าเชื่อถือด้วยตัวมันเอง
โทรศัพท์เปลี่ยนเครือข่าย แล็ปท็อปเข้าสู่โหมดพักเครื่อง พร็อกซี่ปิดการเชื่อมต่อที่ไม่ใช้งาน เซิร์ฟเวอร์เริ่มต้นใหม่ ข้อความอาจหยุดเข้ามาก่อนที่ส่วนติดต่อจะสังเกตเห็น
ฉันมองหากลไกการฟื้นฟูห้าอย่าง:
- การเต้นของหัวใจ. ลูกค้าต้องรู้ว่า การเชื่อมต่อยังคงใช้งานอยู่หรือไม่.
- สถานะข้อมูลที่ล้าสมัย. อินเทอร์เฟซต้องหยุดการแสดงราคาที่เก่าเป็นราคาปัจจุบัน.
- เชื่อมต่อใหม่และสมัครสมาชิกอีกครั้ง. ลูกค้าจำเป็นต้องกู้คืนทุกสตรีมที่จำเป็น.
- สแน็ปช็อตพร้อมอัปเดต. หลังจากเชื่อมต่อใหม่ โหลดสแน็ปช็อต REST ปัจจุบันก่อนที่จะใช้เหตุการณ์ใหม่.
- ลำดับหรือเคอร์เซอร์ หาก API มีการระบุเหตุการณ์ ให้ใช้เพื่อตรวจจับช่องว่างและข้อมูลซ้ำ
FIX API คืออะไรในการซื้อขายฟอเร็กซ์?
FIX ย่อมาจาก Financial Information eXchange มันกำหนดข้อความที่ระบบการเงินใช้ในการสื่อสารเกี่ยวกับการสั่งซื้อ การดำเนินการ การเสนอราคา ข้อมูลตลาด และเซสชันต่างๆ
คำสั่งใหม่ ตัวอย่างเช่น จะตามข้อความที่แชร์ซึ่งมีฟิลด์ที่ตั้งชื่อสำหรับรายละเอียด เช่น เครื่องมือ, ด้าน, ปริมาณ, ประเภทคำสั่ง และรหัสคำสั่งของลูกค้า.
FIX เป็นเรื่องปกติระหว่าง:
- นายหน้าและผู้ให้บริการสภาพคล่อง;
- โบรกเกอร์และตลาดหลักทรัพย์หรือสถานที่อื่น ๆ;
- ลูกค้าสถาบันและนายหน้า;
- ระบบการจัดการคำสั่งซื้อและระบบการดำเนินการ.
ทำไมบริษัทต่างๆ จึงใช้ FIX
FIX ให้ทั้งสองฝ่ายมีภาษาการเงินที่เป็นกลางและวิธีการที่มีระเบียบในการจัดการการเชื่อมต่อ มันไม่ได้เป็น API ที่เร็วที่สุดโดยอัตโนมัติ; เครื่องยนต์ เครือข่าย และการตั้งค่าฝ่ายตรงข้ามยังคงกำหนดประสิทธิภาพ
เซสชัน FIX จะติดตามหมายเลขลำดับข้อความ หากด้านหนึ่งได้รับข้อความ 208 หลังจากข้อความ 206 มันสามารถตรวจจับได้ว่า 207 ขาดหายไปและขอให้ส่งใหม่ การส่งสัญญาณชีพและคำขอทดสอบช่วยให้ทั้งสองฝ่ายสามารถตรวจสอบเซสชันได้
สิ่งนั้นมีความสำคัญเมื่อข้อความที่ส่งแสดงถึงคำสั่งและการเติมเต็ม “การเชื่อมต่อกลับมา” ไม่เพียงพอ ทั้งสองระบบต้องตกลงกันว่า ข้อความใดถูกประมวลผลแล้ว
สิ่งที่ FIX ไม่สามารถแก้ไขได้
FIX ไม่ได้ลบงานการรวมเข้าด้วยกัน.
คู่สัญญาทั้งสองยังต้องตกลงกันเกี่ยวกับ:
- เวอร์ชัน FIX และข้อความที่รองรับ;
- ฟิลด์ที่จำเป็น, ฟิลด์ที่เลือกได้และฟิลด์ที่กำหนดเอง;
- ชื่อสัญลักษณ์และตัวระบุอุปกรณ์;
- ประเภทคำสั่งที่รองรับและค่าช่วงเวลาที่มีผล;
- ความแม่นยำของราคาและปริมาณ;
- เซสชันการซื้อขายและหน้าต่างการดูแลรักษา;
- กฎการรีเซ็ตลำดับและส่งใหม่;
- กรณีทดสอบการรับรอง;
- ความปลอดภัยของเครือข่ายและที่อยู่ IP ที่อนุญาต
ฉันไม่เคยรับ “FIX supported” เป็นคำตอบการรวมระบบที่สมบูรณ์ ฉันขอรายละเอียดการเฉพาะเจาะจงของคู่สัญญาและแผนการรับรอง มาตรฐานที่มีกฎฟิลด์ที่แตกต่างกันในแต่ละด้านยังคงต้องการการแมพปิ้งและการทดสอบ
“MT5 API” หมายถึงอะไร?
MetaTrader 5 เป็นแพลตฟอร์ม ไม่ใช่โปรโตคอล API ตัวเดียว MetaQuotes มีรายการอินเทอร์เฟซหลายรายการสำหรับโบรกเกอร์ ซึ่งรวมถึง Manager, Gateway, Report, Server และ Web APIs แต่ละรายการมีบทบาทที่แตกต่างกันในสภาพแวดล้อม MT5.
ผู้จัดการ API
API ผู้จัดการเป็นเครื่องมือสำหรับการบริหารจัดการและการจัดการด้านโบรกเกอร์ โบรกเกอร์สามารถใช้เพื่อสร้างยูทิลิตี้ภายในเกี่ยวกับบัญชี กลุ่ม การดำเนินการซื้อขาย และการบริหารจัดการแพลตฟอร์ม
นี่ไม่ใช่ผลิตภัณฑ์เดียวกันกับ API key ของผู้ค้าปลีก การเข้าถึง การอนุญาต และการดำเนินการที่รองรับเป็นของการตั้งค่า MetaTrader ของโบรกเกอร์
เกตเวย์ API
Gateway API เป็นเครื่องมือที่ใช้เชื่อมต่อ MetaTrader 5 กับระบบการซื้อขายภายนอกและการให้ข้อมูล MetaQuotes อธิบายว่า gateway เป็นปลั๊กอินของแพลตฟอร์มที่จัดการการโต้ตอบกับการแลกเปลี่ยนหรือระบบที่เชื่อมต่ออื่นๆ
นี่อยู่ใกล้กับการเชื่อมต่อกับตลาดมากกว่าจุดสิ้นสุด REST ที่เผชิญหน้ากับผู้ค้าค่ะ
เว็บ, รายงานและ API เซิร์ฟเวอร์
MetaQuotes อธิบาย Web API ว่าเป็นส่วนต่อประสานสำหรับเชื่อมโยงแพลตฟอร์มกับทรัพยากรและบริการเว็บของโบรกเกอร์ รายงาน API ขยายการรายงานเซิร์ฟเวอร์ เซิร์ฟเวอร์ API ช่วยให้ผู้ดำเนินการแพลตฟอร์มสามารถเพิ่มฟังก์ชันการทำงานของเซิร์ฟเวอร์การค้าและเซิร์ฟเวอร์ประวัติได้
ชื่อของพวกเขาอาจดูเหมือนจะอธิบายตัวเองได้ แต่ขอบเขตและความพร้อมใช้งานต้องตรวจสอบในใบอนุญาตของโบรกเกอร์และเอกสารทางเทคนิค
MQL5
MQL5 เป็นภาษาที่ใช้และสภาพแวดล้อมการเขียนโปรแกรมที่ใช้ภายใน MetaTrader 5 นักเทรดและนักพัฒนาสร้างที่ปรึกษาผู้เชี่ยวชาญ, ตัวชี้วัด, สคริปต์และบริการที่ทำงานร่วมกับเทอร์มินัล
เป็นเส้นทางพื้นเมืองสำหรับกลยุทธ์อัตโนมัติที่ต้องการข้อมูลแผนภูมิ ตัวชี้วัด และฟังก์ชันการซื้อขายภายใน MT5 ไม่ใช่โปรโตคอลจากโบรกเกอร์ไปยังผู้ให้สภาพคล่อง.
การรวม MetaTrader 5 กับ Python
แพ็คเกจ MetaTrader5 Python อย่างเป็นทางการช่วยให้โปรแกรม Python สามารถอ่านข้อมูลและส่งคำขอการซื้อขายผ่านทางเทอร์มินัล MetaTrader 5 คำสำคัญคือ ผ่านทางเทอร์มินัล.
เอกสาร Python อย่างเป็นทางการ ระบุว่าชุดโปรแกรมสื่อสารโดยตรงกับเทอร์มินัลโดยใช้การสื่อสารระหว่างกระบวนการ มันไม่ให้บริการคลาวด์แบบสุ่มเชื่อมต่อโดยตรงกับเซิร์ฟเวอร์ MT5 ของโบรกเกอร์
ความแตกต่างนั้นเปลี่ยนวิธีการใช้งาน การวางกลยุทธ์ด้วย Python ต้องการสภาพแวดล้อมในเทอร์มินัลที่เข้ากันได้ การเข้าสู่ระบบบัญชี การติดตาม และแผนสำหรับการรีสตาร์ทเทอร์มินัล มันไม่ควรถูกออกแบบราวกับว่า pip install MetaTrader5 สร้าง API โบรกเกอร์ด้านเซิร์ฟเวอร์
คำสั่งหนึ่งสามารถผ่านหลาย API ได้
สมมติว่าผู้ค้ามีการซื้อ 100,000 หน่วยของ EUR/USD ในแอปมือถือของโบรกเกอร์
- แอปโหลดบัญชี, การระบุสัญลักษณ์ และสิทธิ์ผ่าน REST.
- มันรับราคาประมูลและเสนอปัจจุบันผ่าน WebSocket.
- ผู้ค้ากดซื้อ แอปจะส่งคำสั่งซื้อที่มีหมายเลขคำสั่งซื้อเฉพาะของลูกค้า
- บริการความเสี่ยงของโบรกเกอร์ตรวจสอบมาร์จิน ขีดจำกัด และสถานะตลาด
- แพลตฟอร์มการซื้อขายจะยอมรับหรือปฏิเสธคำสั่งนั้น แพลตฟอร์มนั้นอาจเป็น MT5.
- ขึ้นอยู่กับโมเดลการดำเนินการของโบรกเกอร์ การเปิดเผยภายนอกอาจถูกส่งไปยังผู้ให้บริการสภาพคล่องผ่าน FIX, เกตเวย์ หรือการเชื่อมต่ออื่น ๆ.
- รายงานการดำเนินการจะส่งกลับผ่านสแต็ก。
- แอปจะได้รับคำสั่งซื้อที่อัปเดต ตำแหน่ง และยอดคงเหลือผ่านสตรีมเหตุการณ์ของมัน
REST ไม่ได้แข่งขันกับ FIX ในลำดับนี้ พวกเขาทำงานที่ขอบเขตที่แตกต่างกัน
กรณีหมดเวลา ที่เปิดเผย API ที่อ่อนแอ
ส่วนที่ยากของ API คำสั่งคือไม่ใช่การส่งคำขอ แต่คือการรู้ว่าเกิดอะไรขึ้นเมื่อการตอบกลับหายไป
สมมติว่าแอปส่งคำสั่งนี้:
ซื้อ EURUSD, clientOrderId = mobile-84721
คำขอหมดเวลา มีสองความเป็นไปได้:
- นายหน้าซื้อขายไม่เคยได้รับมัน;
- นายหน้าตกลงรับมัน แต่คำตอบไม่ได้ส่งถึงแอปพลิเคชัน
การส่งคำสั่งซื้อขายเดียวกันโดยไม่ดูให้ดีอาจสร้างตำแหน่งได้สองตำแหน่ง
การทำงานที่ปลอดภัยมากขึ้นคือ:
- รักษาหมายเลขคำสั่งซื้อของลูกค้าให้เหมือนเดิม.
- สอบถามสถานะคำสั่งที่มีอำนาจหรือรอเหตุการณ์คำสั่ง
- ให้เซิร์ฟเวอร์ปฏิเสธหรือทำการกำจัดคำสั่งที่ซ้ำกันที่มี ID เดียวกัน
- ทำการปรับยอดคำสั่งซื้อสุดท้ายและกรอกข้อมูลก่อนที่จะเปิดใช้งานการลองใหม่อีกครั้ง.
REST กับ WebSocket กับ FIX กับ MT5 ตามกรณีการใช้งาน
| ความต้องการ | ส่วนติดต่อที่ฉันจะตรวจสอบเป็นอันดับแรก | เหตุผล |
|---|---|---|
| เว็บไซต์ของโบรกเกอร์ที่แสดงประวัติบัญชี | REST | การสอบถามที่ง่าย การรับรองความถูกต้องที่คุ้นเคย และการตอบสนองที่ชัดเจน |
| รายการเฝ้าดูแบบสดในแอปเว็บไซต์หรือมือถือ | WebSocket | การอ้างอิงเข้ามาเป็นเหตุการณ์โดยไม่ต้องตรวจสอบตามเวลาที่กำหนด |
| การสั่งซื้อจากแอปที่กำหนดเอง | คำสั่ง REST พร้อมสถานะ WebSocket | กระบวนการส่งที่ชัดเจนพร้อมการยืนยันแบบสดและการอัปเดตการเติม |
| การเชื่อมต่อของโบรกเกอร์กับผู้ให้บริการสภาพคล่อง | FIX หรือการเชื่อมต่อที่ได้รับการรับรองจากผู้ให้บริการ | กระบวนการสั่งซื้อและการดำเนินการมาตรฐานระหว่างระบบการซื้อขาย |
| การบริหารจัดการโบรกเกอร์รอบ MT5 | MT5 Manager API | สร้างขึ้นสำหรับยูทิลิตี้การจัดการฝั่งแพลตฟอร์ม |
| การเชื่อมต่อ MT5 ที่กำหนดเองกับสถานที่ | MT5 Gateway API หรือการตั้งค่าบริดจ์/เกตเวย์ที่ผ่านการทดสอบ | ออกแบบมาสำหรับการเชื่อมต่อระหว่างตลาดแพลตฟอร์ม |
| ที่ปรึกษาผู้เชี่ยวชาญที่ทำงานใน MT5 | MQL5 | การทำงานอัตโนมัติของเทอร์มินัลแบบเนทีฟและสภาพแวดล้อมการทดสอบ |
| การวิเคราะห์และการดำเนินการ Python ผ่านเทอร์มินัล MT5 | MetaTrader 5 Python package | ให้ Python เข้าถึงข้อมูลเทอร์มินัลและฟังก์ชันการซื้อขาย |
| ชุดข้อมูลการวิจัยประวัติศาสตร์ | REST หรือการส่งออกข้อมูลแบบกลุ่ม | การแบ่งหน้า ง่ายขึ้น ช่วงวันที่ และการดึงข้อมูลซ้ำได้ |
ตารางเป็นจุดเริ่มต้น ตัวเลือกสุดท้ายขึ้นอยู่กับ API ของผู้ให้บริการจริง ข้อจำกัดอัตรา การตรวจสอบสิทธิ์ ประเภทคำสั่งที่รองรับ และการรับประกันบริการ
คำถามที่ฉันถามก่อนเลือก API การซื้อขายฟอเร็กซ์
ข้อมูลตลาด
- ฟีดเป็นแบบทีละนาที, รวมกันหรือสุ่มตัวอย่าง?
- เวลาเสนอราคาและถามถูกสร้างขึ้นที่แหล่งที่มา หรือในขณะจัดส่ง?
- การสตรีมรวมหมายเลขลำดับหรือไม่?
- ลูกค้าจะกู้คืนข้อมูลได้อย่างไรหลังจากการตัดการเชื่อมต่อ?
- การระบุสัญลักษณ์จะมีการเวอร์ชันเมื่อการตั้งค่าในสัญญาเปลี่ยนแปลงหรือไม่?
คำสั่งซื้อ
- มีหมายเลขคำสั่งซื้อของลูกค้าที่ไม่ซ้ำกันหรือไม่?
- คำสั่งสร้างและยกเลิกมีอิดempotent หรือไม่?
- API สามารถรายงานการเติมบางส่วนและรายงานการดำเนินการหลายครั้งได้หรือไม่?
- บันทึกใดที่เป็นที่เชื่อถือได้หลังจากหมดเวลา?
- คำสั่งที่ถูกปฏิเสธ หมดอายุ และถูกแทนที่จะแสดงผลอย่างไร?
การดำเนินงาน
- ข้อกำหนดในการขอ การสมัครสมาชิก และข้อจำกัดการเชื่อมต่อคืออะไร?
- สภาพแวดล้อมเดโมและสดมีพฤติกรรมเทียบเท่ากันหรือไม่?
- มีหน้าสถานะและการแจ้งเตือนการบำรุงรักษาที่กำหนดไว้หรือไม่?
- สามารถทำให้บันทึกเชื่อมโยงกันได้ระหว่างลูกค้า โบรกเกอร์ และสถานที่จัดงานหรือไม่?
- การเปลี่ยนแปลงที่สำคัญถูกเวอร์ชันและประกาศอย่างไร?
ความปลอดภัย
- สิทธิ์ใดบ้างที่สามารถจำกัดได้ต่อแอปพลิเคชันหรือโทเค็น?
- การเปลี่ยนและเพิกถอนข้อมูลรับรองทำได้อย่างไร?
- มีการสนับสนุน IP allowlists, TLS และข้อมูลรับรองการผลิตแยกต่างหากหรือไม่?
- บริการหนึ่งสามารถอ่านข้อมูลโดยไม่ต้องได้รับอนุญาตในการซื้อขายได้หรือไม่?
- การกระทำที่มีสิทธิพิเศษทุกอย่างถูกบันทึกลงในบันทึกการตรวจสอบหรือไม่?
คำตอบบอกฉันมากกว่าป้ายกำกับบน API สอง REST APIs อาจแตกต่างกันในคุณภาพการใช้งานมากกว่าระหว่าง REST และ WebSocket
นายหน้าควรตัดสินใจก่อนการรวมระบบ
โครงการ API มักจะกลายเป็นเรื่องยากเมื่อความเป็นเจ้าของไม่ชัดเจน。
กำหนดจุดเหล่านี้ก่อนเริ่มการพัฒนา:
- ระบบการบันทึก. ระบบใดที่เป็นเจ้าของคำสั่ง, การเติมเต็ม, ยอดคงเหลือ และตำแหน่ง?
- ลำดับเหตุการณ์. การจัดการกับข้อความซ้ำ ข้อความที่ส่งช้า และการอัปเดตที่ไม่เป็นระเบียบทำอย่างไร?
- การกู้คืน. สแน็ปช็อตใดที่ถูกโหลดหลังจากการเชื่อมต่อใหม่ และเหตุการณ์จะเริ่มต้นจากเคอร์เซอร์ใด?
- ขอบเขตความเสี่ยง. การตรวจสอบใดบ้างที่เกิดขึ้นก่อนที่คำสั่งจะถึงแพลตฟอร์มหรือสถานที่?
- แบบจำลองสัญลักษณ์. ใครเป็นผู้กำหนดชื่อ ขนาดสัญญา ช่วงเวลา และความแม่นยำของราคา?
- บันทึกการตรวจสอบ. สามารถสนับสนุนการติดตามการกระทำของลูกค้าจากแอปไปยังรายงานการดำเนินการสุดท้ายได้หรือไม่?
นี่คือจุดที่การตัดสินใจเกี่ยวกับแพลตฟอร์มกลายเป็นการตัดสินใจในการดำเนินงาน โครงสร้างพื้นฐานการซื้อขายของ Quadcode นำแพลตฟอร์มการซื้อขาย แอปพลิเคชันของลูกค้า CRM สำนักงานหลัง ความเสี่ยง และการรวมเข้าเป็นสภาพแวดล้อมเดียว ความสามารถในการเชื่อมต่อ REST, สตรีมมิ่ง, MT5 หรือสภาพคล่องที่จำเป็นควรยังคงถูกเขียนลงในการออกแบบโซลูชันและทดสอบตามกระแสคำสั่งของโบรกเกอร์เอง
คำตอบสุดท้าย
ใช้ REST สำหรับคำขอที่ชัดเจน, สแน็ปช็อต และบันทึก ใช้ WebSocket เมื่อแอปพลิเคชันต้องรับการเปลี่ยนแปลงแบบสด ใช้ FIX สำหรับการสื่อสารการซื้อขายที่เป็นมาตรฐานระหว่างระบบมืออาชีพ ใช้ส่วนติดต่อ MT5 ที่เกี่ยวข้องเมื่อ MetaTrader 5 เป็นส่วนหนึ่งของแพลตฟอร์ม
ผลิตภัณฑ์ฟอเร็กซ์ส่วนใหญ่ต้องการการรวมกัน หลังจากการล้มเหลวของเครือข่าย สถาปัตยกรรมที่ดีสามารถตอบคำถามสามข้อ: ได้รับคำสั่งหรือไม่? ดำเนินการเสร็จหรือยัง? ระบบที่เชื่อมต่อทุกระบบตอนนี้เห็นพ้องต้องกันเกี่ยวกับผลลัพธ์หรือไม่?
FAQ
WebSocket เร็วกว่าการใช้ REST สำหรับการซื้อขายฟอเร็กซ์หรือไม่?
WebSocket โดยปกติจะจัดการการอัปเดตอย่างต่อเนื่องได้มีประสิทธิภาพมากขึ้นเพราะมันรักษาให้การเชื่อมต่อเปิดอยู่และหลีกเลี่ยงการตรวจสอบซ้ำ นั่นไม่ได้หมายความว่าการใช้งาน WebSocket ทุกตัวจะเร็วกว่า REST API ทุกตัว ระยะทางเครือข่าย การออกแบบเซิร์ฟเวอร์ รูปแบบข้อความ และภาระงานยังคงมีความสำคัญ
FIX API เป็นเพียงสำหรับนักเทรดสถาบันเท่านั้นหรือ?
FIX มักถูกใช้โดยโบรกเกอร์ ผู้ให้สภาพคล่อง สถานที่ทำการ และบริษัทการค้าขั้นสูง บางโบรกเกอร์ยังเสนอการเข้าถึง FIX ให้กับลูกค้าที่มีปริมาณการซื้อขายสูงที่มีคุณสมบัติ การเชื่อมต่อ ข้อกำหนดขั้นต่ำ และข้อความที่รองรับจะแตกต่างกันไปตามผู้ให้บริการ
บอทการเทรดฟอเร็กซ์สามารถใช้ REST ได้หรือไม่?
ใช่ REST สามารถเหมาะสมกับกลยุทธ์ที่ความถี่ต่ำกว่าได้หากมีราคาที่ต้องการ ประเภทคำสั่ง และขีดจำกัด กลยุทธ์ที่ตอบสนองต่อการเปลี่ยนแปลงหรือเหตุการณ์คำสั่งอย่างต่อเนื่องจะต้องการการเชื่อมต่อแบบสตรีมมิ่งด้วยเช่นกัน
MT5 API เป็น API เดียวกับ FIX API หรือไม่?
ไม่ MT5 เป็นแพลตฟอร์มที่มีหลายโปรแกรมและอินเตอร์เฟซสำหรับการรวมเข้าด้วยกัน FIX เป็นมาตรฐานการส่งข้อความทางการเงิน สภาพแวดล้อม MT5 อาจเชื่อมต่อกับระบบการซื้อขายอื่นผ่านเกตเวย์ สะพาน หรือการรวมเข้าที่ใช้ FIX แต่เงื่อนไขเหล่านี้ไม่สามารถใช้งานแทนกันได้
Python สามารถเชื่อมต่อโดยตรงกับเซิร์ฟเวอร์โบรกเกอร์ MT5 ได้หรือไม่?
แพ็คเกจ MetaTrader 5 Python อย่างเป็นทางการเชื่อมต่อกับเทอร์มินัล MetaTrader 5 ท้องถิ่น ซึ่งจะสื่อสารกับเซิร์ฟเวอร์การค้า การเข้าถึงโดยตรงจากฝ่ายโบรกเกอร์ต้องการอินเทอร์เฟซและโครงสร้างพื้นฐานที่ได้รับการอนุญาตแยกต่างหาก。
API ไหนดีที่สุดสำหรับแอปการเทรดฟอเร็กซ์?
การออกแบบทั่วไปใช้ REST สำหรับการตรวจสอบสิทธิ์ ข้อมูลบัญชี และประวัติการใช้งาน จากนั้นใช้ WebSocket สำหรับการเสนอราคาและเหตุการณ์การสั่งซื้อ คำสั่งการซื้อขายอาจใช้ REST หรือโปรโตคอลที่ถาวรของผู้ให้บริการ คำตอบขึ้นอยู่กับ API ที่มีให้โดยโบรกเกอร์หรือแพลตฟอร์มที่เลือก
