Expert Advisor (EA) คืออะไร? ทำงานอย่างไรบน MT4/MT5
ทำความเข้าใจ Expert Advisor ตั้งแต่ event loop, signal, order management, risk control ไปจนถึงความแตกต่างระหว่าง backtest และการใช้งานจริง

Expert Advisor หรือ EA คือโปรแกรมที่ทำงานอยู่ภายใน MetaTrader เพื่ออ่านข้อมูลตลาด ประมวลผลเงื่อนไข และจัดการคำสั่งตามกฎที่เขียนไว้ คำว่า “อัตโนมัติ” จึงหมายถึงการทำตามกฎได้สม่ำเสมอ ไม่ได้หมายถึงการตัดสินใจเองเหมือนคน
สรุปสาระสำคัญ
- EA ไม่ได้มีแค่แบบเปิดออเดอร์เอง ยังมีแบบช่วยจัดการคำสั่งและแบบแจ้งเตือนอย่างเดียว
- โครงสร้างที่ดูแลง่ายควรแยก Signal ออกจาก Execution
- ชั้นตรวจความเสี่ยงต้องอยู่ก่อนการส่งคำสั่ง ไม่ใช่หลังจากนั้น
- EA ทำตามกฎได้สม่ำเสมอ แต่กฎอาจไม่เหมาะกับทุกสภาพตลาด
- ผลทดสอบย้อนหลังกับการใช้งานจริงเป็นคนละสิ่ง ต้องมี forward test ประกอบ
EA ไม่ได้แปลว่าเปิดออเดอร์อัตโนมัติอย่างเดียว
หลายคนเข้าใจว่า EA คือระบบที่เปิดปิดคำสั่งเองทั้งหมด แต่จริง ๆ มันทำได้หลายระดับ และระดับที่ช่วยงานได้มากที่สุดมักไม่ใช่ระดับที่อัตโนมัติที่สุด
- วิเคราะห์และแจ้งเตือนอย่างเดียว — ไม่แตะคำสั่งเลย แต่บอกว่าเงื่อนไขที่เฝ้าอยู่เกิดขึ้นแล้ว
- ช่วยจัดการคำสั่ง — คำนวณขนาด ตั้ง Stop Loss และ Take Profit ทำ Trailing หรือปิดทั้งชุดตามเงื่อนไข
- กึ่งอัตโนมัติ — คนเป็นคนกดเปิด แต่ระบบดูแลการจัดการหลังจากนั้นทั้งหมด
- อัตโนมัติเต็มรูปแบบ — ระบบตัดสินใจเข้าและออกเองตามกฎที่กำหนด
- ส่งข้อมูลออกภายนอก — ส่งสถานะไป Telegram หรือ API เพื่อเฝ้าดูจากที่อื่น
โครงสร้างการทำงานภายใน
ใน MQL ระบบทำงานผ่านเหตุการณ์ที่แพลตฟอร์มเรียกให้ เช่น OnInit ตอนเริ่มทำงาน OnTick ทุกครั้งที่ราคาขยับ OnTimer ตามรอบเวลาที่ตั้งไว้ และ OnTradeTransaction เมื่อมีความเปลี่ยนแปลงเกี่ยวกับคำสั่ง
การเลือกเหตุการณ์ให้เหมาะสมมีผลต่อการใช้ CPU และความเสถียรโดยตรง งานที่ไม่จำเป็นต้องทำทุก tick เช่น การอ่านข้อมูล Timeframe ใหญ่หรือการเขียนรายงาน ควรย้ายไปทำตามรอบเวลาแทน มิฉะนั้นระบบจะทำงานซ้ำโดยเปล่าประโยชน์หลายพันครั้งต่อนาทีในช่วงตลาดผันผวน

ทำไม Signal กับ Execution ควรแยกกัน
เมื่อทุกอย่างเขียนรวมกันเป็นก้อนเดียว การแก้เงื่อนไขเข้าออกจะไปกระทบส่วนที่ส่งคำสั่งเสมอ และการทดสอบก็แยกไม่ออกว่าปัญหามาจากสัญญาณผิดหรือการส่งคำสั่งผิด
เมื่อแยกชั้นแล้ว จะได้ประโยชน์ที่ชัดเจนสามอย่าง
- เปลี่ยนกลยุทธ์ได้โดยไม่ต้องแตะโค้ดส่วนที่ส่งคำสั่ง ซึ่งเป็นส่วนที่เสี่ยงต่อการพังมากที่สุด
- ทดสอบสัญญาณแยกจากพฤติกรรมการส่งออเดอร์ได้ ทำให้หาสาเหตุของปัญหาเร็วขึ้น
- ชั้นตรวจความเสี่ยงมีที่อยู่ชัดเจนและถูกเรียกใช้ทุกครั้ง ไม่ใช่กระจายอยู่ตามเงื่อนไขต่าง ๆ
EA กับความเสี่ยง
EA ทำตามกฎได้สม่ำเสมอกว่าคน แต่ความสม่ำเสมอนั้นเป็นดาบสองคม ถ้ากฎไม่เหมาะกับสภาพตลาดที่กำลังเกิดขึ้น ระบบก็จะทำสิ่งที่ไม่เหมาะสมนั้นซ้ำ ๆ โดยไม่หยุดเอง
ตัวอย่างที่เห็นบ่อยคือระบบแบบ Grid ที่ทำงานได้ดีในตลาดแกว่ง แต่สะสมความเสี่ยงขึ้นเรื่อย ๆ เมื่อตลาดเกิดแนวโน้มยาว ดูรายละเอียดได้ในบทความ Grid Trading
ขอบเขตที่ควรมีในทุกระบบ ไม่ว่ากลยุทธ์จะเป็นแบบไหน
- เพดานจำนวนคำสั่งที่เปิดพร้อมกัน — ทำให้ความเสี่ยงสูงสุดเป็นตัวเลขที่รู้ล่วงหน้า
- เพดานขนาดรวม — คุมภาพรวมของพอร์ต ไม่ใช่ดูทีละคำสั่ง
- เพดาน Drawdown — หยุดเปิดใหม่เมื่อ Equity ลดจากจุดสูงสุดเกินเกณฑ์
- เพดานขาดทุนต่อวัน — จำกัดความเสียหายของวันที่แย่ที่สุด
- ตัวกรอง Spread และช่วงเวลา — ลดการเปิดคำสั่งในสภาพที่ต้นทุนสูงผิดปกติ
- ปุ่มหยุดฉุกเฉิน — สั่งหยุดได้ทันทีโดยไม่ต้องถอด EA ออกจากกราฟ
Backtest ไม่เท่ากับการใช้งานจริง
ผลการทดสอบย้อนหลังขึ้นกับสมมติฐานหลายอย่างที่มักถูกมองข้าม และสมมติฐานที่ผ่อนปรนเกินไปทำให้ผลออกมาดูดีเกินจริง

- คุณภาพข้อมูล — ใช้ราคาทุก tick หรือประมาณจากแท่งเทียน ผลต่างกันมากในระบบที่ไวต่อราคา
- โมเดล Spread — ใช้ค่าคงที่หรือค่าจริงที่เปลี่ยนตามเวลา
- ค่าคอมมิชชันและ Swap — ถ้าไม่ใส่ ผลจะดีกว่าความเป็นจริงทุกครั้ง
- Slippage — การสมมติว่าได้ราคาที่ต้องการเสมอเป็นสมมติฐานที่ผ่อนปรนมาก
- การเลือกพารามิเตอร์ — ถ้าปรับจนพอดีกับข้อมูลชุดที่ทดสอบ ผลจะสวยแต่ใช้จริงไม่ได้
ก่อนใช้งานจริงจึงควรมี forward test บนบัญชีทดลองในสภาพตลาดปัจจุบัน และตรวจ log เพื่อดูว่าพฤติกรรมจริงตรงกับสมมติฐานหรือไม่
สรุป
EA คือเครื่องมือเปลี่ยนกฎการเทรดให้เป็นกระบวนการที่เครื่องทำซ้ำได้ ความแข็งแรงจึงไม่ได้วัดจากจำนวนฟังก์ชัน แต่วัดจากความชัดเจนของตรรกะ ขอบเขตความเสี่ยงที่ตรวจก่อนส่งคำสั่ง การจัดการกรณีผิดปกติ และความสามารถในการตรวจสอบย้อนหลังว่าทำไมระบบจึงตัดสินใจแบบนั้น



Discussion