จัดการข้อผิดพลาดการซื้อขาย
แยกการจับคู่ คำสั่งรอ และการปฏิเสธจากโบรกเกอร์ อ่านผลก่อนส่งรายการถัดไป
คำแนะนำทีละขั้นตอน
- 0:00
จัดการข้อผิดพลาดการซื้อขาย
บทเรียนนี้อธิบายผลและข้อผิดพลาดการซื้อขาย MT5 เราจะแยกการจับคู่ทั้งหมด การจับคู่บางส่วน คำสั่งรอ การปฏิเสธจากโบรกเกอร์ และผลที่ยังไม่แน่นอน
- 0:17
เปิดคู่มือเมธอดซื้อขาย
เปิดเอ็มทีไฟว์ดอตเอ็มอาร์พีซีดอตโปร เลือก Order Send ในหมวดช่วยซื้อขาย แล้วขยายคู่มือใต้ตัวอย่างโค้ด หากใช้เมธอดอื่น ให้เปิดคู่มือเฉพาะของเมธอดนั้น
- 0:31
1. ตรวจรหัสสถานะ HTTP
ขั้นแรกตรวจรหัสสถานะเอชทีทีพี รหัสสถานะเอชทีทีพีสองร้อยหมายถึงเอพีไอรับคำขอและส่งคำตอบแล้ว จากนั้นอ่านเนื้อหาเจสัน ถ้าเป็นรหัสอื่น ให้อ่านข้อผิดพลาดเอชทีทีพีและเนื้อหาคำตอบก่อน
- 0:54
2. ตรวจ error และรายละเอียดโบรกเกอร์
ถ้า error ไม่ใช่ null ให้อ่าน errorCode และ errorMessage หากมี mqlErrorTradeIntCode พร้อมคำอธิบาย ให้อ่านด้วย การปฏิเสธจากโบรกเกอร์อาจอยู่ในโครงสร้างนี้ จึงต้องเลือกวิธีแก้ตามรหัสจริง
- 1:14
3. อ่านผลจากโบรกเกอร์
สำหรับคำขอซื้อขาย รหัสสถานะเอชทีทีพีสองร้อยโดยไม่มีข้อผิดพลาดเอพีไอ หมายถึงส่งคำขอให้โบรกเกอร์แล้ว แต่ไม่ได้หมายความว่าจับคู่สำเร็จ อ่าน returnedCode, returnedStringCode และผลเฉพาะเมธอดใน data
- 1:36
คำสั่งตลาด: ทั้งหมดหรือบางส่วน
คำสั่งตลาด Buy หรือ Sell ที่คืนหนึ่งหมื่นเก้า Done หมายถึงเสร็จสมบูรณ์ หนึ่งหมื่นสิบ Done Partial หมายถึงจับคู่บางส่วน อ่านปริมาณ ราคา และ deal ที่เกิดขึ้น ตรวจสถานะกับประวัติเพื่อทราบส่วนที่เหลือ
- 1:55
วางคำสั่งรอไม่ใช่จับคู่ทันที
สำหรับคำสั่งตลาด หนึ่งหมื่นแปด Placed คือรับไว้เพื่อดำเนินการ ยังไม่ยืนยันการจับคู่ สำหรับคำสั่งรอ Placed หรือ Done ยืนยันการวางคำสั่ง เก็บ data order แล้วดู Opened Orders คำสั่งยังรอราคาที่กำหนดให้ทำงาน
- 2:16
ตลาดปิดคือการปฏิเสธจากโบรกเกอร์
ผลปฏิเสธอาจอยู่ใน data แม้ไม่มี error หนึ่งหมื่นสิบแปดหมายถึงตลาดปิด ให้รอช่วงเวลาซื้อขายของสัญลักษณ์นั้น อย่าตัดสินว่าสำเร็จเพียงเพราะมี data ต้องอ่านรหัสผลลัพธ์
- 2:34
แก้ปัญหาตามสาเหตุ
เงินไม่พอให้ลดปริมาณหรือเตรียมฟรีมาร์จินให้พอ ระดับ stop ไม่ถูกต้องให้แก้ราคาและระยะห่าง ปริมาณไม่ถูกต้องให้ใช้ขนาดและขั้นปริมาณที่สัญลักษณ์อนุญาต หากไม่มีราคาให้รอราคาใหม่ คู่มือแสดงรหัสและวิธีแก้ไว้ด้วยกัน
- 2:57
หมดเวลา: ตรวจบัญชีก่อนลองใหม่
คำขอซื้อขายหมดเวลาหรือหลุดจากโบรกเกอร์อาจมีผลไม่แน่นอน ตรวจคำสั่ง สถานะ และประวัติก่อนส่งอีกครั้ง ไม่เช่นนั้นอาจเกิดรายการซ้ำ รหัสโบรกเกอร์เดียวกันอาจอยู่ใน returnedCode ของ data หรือ mqlErrorTradeIntCode ของ error
- 3:21
การปิดและแก้ไขมีเกณฑ์ของตนเอง
สำหรับ Order Close ให้อ่านผลแล้วตรวจสถานะคงเหลือ การปิดบางส่วนยังเหลือปริมาณเปิดอยู่ สำหรับ Order Modify ค่า Done คือแก้ไขแล้ว ส่วน No Changes คือค่าที่ขอตั้งไว้อยู่แล้ว อย่านำเกณฑ์ Order Send ไปใช้กับทุกเมธอด
- 3:42
การตรวจล่วงหน้าไม่ได้ส่งคำสั่งซื้อขาย
Order Check ต่างจาก Order Send ให้อ่านรหัสและคำอธิบายใน mqlTradeCheckResult ของ data รหัสศูนย์พร้อม Done คือผ่านการตรวจล่วงหน้า ไม่ใช่เปิดคำสั่งแล้ว ต้องส่งรายการแยกต่างหากและตรวจผลการดำเนินการ
- 4:02
ตรวจการซื้อขายในสามขั้น
ทุกการซื้อขายให้ตรวจรหัสสถานะเอชทีทีพี error และผลโบรกเกอร์ตามเมธอด เก็บรหัส order, deal หรือสถานะตามความเหมาะสม หลังหมดเวลาหรือหลุดการเชื่อมต่อ ให้ตรวจบัญชีก่อนส่งใหม่