MQL5 Wizard เป็นเครื่องมือที่ช่วยให้เราสามารถสร้างโค้ด EA (Expert Advisor) ได้อย่างอัตโนมัติ สำหรับผู้ที่อยากรู้รายละเอียดเพิ่มเติมสามารถดูได้ที่ การสร้าง EA ที่พร้อมใช้งานใน MQL5 Wizard.
วันนี้เราจะพูดถึงกลยุทธ์ที่อิงจากการตัดกันของค่าเฉลี่ยเคลื่อนที่แบบเอ็กซ์โพเนนเชียล (EMA) สองตัว ได้แก่ EMA เร็วและ EMA ช้า ซึ่งกลยุทธ์นี้เรียกว่า "สัญญาณจากการตัดกันของสอง EMA" เมื่อเราสร้าง EA โดยอัตโนมัติใน MQL5 Wizard.
สัญญาณการซื้อขายมีดังนี้:
- ซื้อ: เมื่อ EMA เร็วตัดขึ้นเหนือ EMA ช้า
- ขาย: เมื่อ EMA เร็วตัดลงต่ำกว่า EMA ช้า
กลยุทธ์นี้ถูกนำไปใช้ในคลาส CSignalCrossEMA.

Figure 1. สัญญาณการซื้อขายจากการตัดกันของ EMA สองตัว
สัญญาณการซื้อขาย
กลยุทธ์การซื้อขายนี้ถูกนำไปใช้ในคลาส CSignalCrossEMA และมีฟังก์ชันที่ช่วยให้เข้าถึงค่าอินดิเคเตอร์ได้ง่ายขึ้น:
double FastEMA(int ind) // คืนค่าของค่าเฉลี่ยเคลื่อนที่เร็วของแท่ง double SlowEMA(int ind) // คืนค่าของค่าเฉลี่ยเคลื่อนที่ช้าของแท่ง double StateEMA(int ind) // คืนค่าความแตกต่างระหว่างค่าเฉลี่ยเคลื่อนที่เร็วและช้าของแท่ง
1. เปิดสถานะซื้อ
เงื่อนไขในการเปิดสถานะซื้อ:
- StateEMA(1) > 0 และ StateEMA(2) < 0: เมื่อ EMA เร็วตัดขึ้นเหนือ EMA ช้าในแท่งล่าสุดที่เสร็จสิ้น.
//+------------------------------------------------------------------+ //| ตรวจสอบเงื่อนไขในการเปิดสถานะซื้อ | //+------------------------------------------------------------------+ bool CSignalCrossEMA::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration) { if(!(StateEMA(2)<0 && StateEMA(1)>0)) return(false); //--- price=0.0; sl =0.0; tp =0.0; //--- return(true); }
2. ปิดสถานะซื้อ
เงื่อนไขในการปิดสถานะซื้อ:
- StateEMA(1) < 0 และ StateEMA(2) > 0: เมื่อ EMA เร็วตัดลงต่ำกว่า EMA ช้าในแท่งล่าสุดที่เสร็จสิ้น.
//+------------------------------------------------------------------+ //| ตรวจสอบเงื่อนไขในการปิดสถานะซื้อ | //+------------------------------------------------------------------+ bool CSignalCrossEMA::CheckCloseLong(double& price) { if(!(StateEMA(2)>0 && StateEMA(1)<0)) return(false); //--- price=0.0; //--- return(true); }
3. เปิดสถานะขาย
เงื่อนไขในการเปิดสถานะขายจะเหมือนกับเงื่อนไขในการปิดสถานะซื้อ.
//+------------------------------------------------------------------+ //| ตรวจสอบเงื่อนไขในการเปิดสถานะขาย (ขาย) | //+------------------------------------------------------------------+ bool CSignalCrossEMA::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration) { if(!(StateEMA(2)>0 && StateEMA(1)<0)) return(false); //--- price=0.0; sl =0.0; tp =0.0; //--- return(true); }
4. ปิดสถานะขาย
เงื่อนไขในการปิดสถานะขายจะเหมือนกับเงื่อนไขในการเปิดสถานะซื้อ.
//+------------------------------------------------------------------+ //| ตรวจสอบเงื่อนไขในการปิดสถานะขาย | //+------------------------------------------------------------------+ bool CSignalCrossEMA::CheckCloseShort(double& price) { if(!(StateEMA(2)<0 && StateEMA(1)>0)) return(false); //--- price=0.0; //--- return(true); }
การสร้าง Expert Advisor ด้วย MQL5 Wizard
ในการสร้างหุ่นยนต์เทรดตามกลยุทธ์นี้ คุณต้องเลือกคุณสมบัติของสัญญาณเป็น "สัญญาณจากการตัดกันของสอง EMA" ในตัวเลือก "การสร้าง EA ที่พร้อมใช้งาน" ของ MQL5 Wizard:

Figure 2. เลือก 'สัญญาณจากการตัดกันของสอง EMA' ใน MQL5 Wizard
จากนั้นคุณต้องระบุอัลกอริธึม Trailing Stop ที่ต้องการ และ การจัดการเงินและความเสี่ยง. โค้ดของ Expert Advisor จะถูกสร้างขึ้นโดยอัตโนมัติ คุณสามารถคอมไพล์และทดสอบใน Strategy Tester ของ MetaTrader 5.
นอกจากนี้ คลาสใน Standard library ยังมี "สัญญาณจากการตัดกันของสอง MA" ที่ถูกนำไปใช้ในคลาส CSignalCrossMA ความคิดการซื้อขายคล้ายกัน แต่มีฟีเจอร์เพิ่มเติมมากมาย (ระบุประเภท, ชนิด, และวิธีการเฉลี่ย รวมถึงการใช้ระดับ Take Profit และ Stop Loss).

Figure 3. 'สัญญาณจากการตัดกันของสอง MA' ใน MQL5 Wizard
ผลการทดสอบ
มาดูการทดสอบย้อนหลังก่อนหน้านี้ของ Expert Advisor บนข้อมูลประวัติ (EURUSD H1, ระยะเวลาทดสอบ: 1.1.2010-05.01.2011, FastPeriod=12, SlowPeriod=24).
ในการสร้าง Expert Advisor เราใช้ปริมาณคงที่ (Trading Fixed Lot, 0.1) และไม่ได้ใช้ Trailing Stop (ไม่ใช้ Trailing).

Figure 4. ผลการทดสอบย้อนกลับของ Expert Advisor จากการตัดกันของสอง EMA
ไฟล์แนบ: ไฟล์ SignalCrossEMA.mqh ที่มีคลาส CSignalCrossEMA ต้องถูกวางไว้ที่
terminal_data_folder\MQL5\Include\Expert\Signal folder.
ไฟล์ crossover_2ema.mq5 มีโค้ดของ Expert Advisor ที่สร้างขึ้นโดยใช้ MQL5 Wizard.
โพสต์ที่เกี่ยวข้อง
- สร้าง Expert Advisor ด้วย MQL5 Wizard: สัญญาณซื้อขายจาก Morning/Evening Stars + MFI
- สร้างสัญญาณการซื้อขายด้วย MQL5 Wizard: การใช้ EMA และกรองเวลาภายใน
- สร้างสัญญาณการซื้อขายด้วย MQL5 Wizard: เทคนิค Hammer/Hanging Man และ CCI
- สร้าง EA บน MQL5 Wizard ด้วยสัญญาณการซื้อขายจากแท่งเทียน 3 Black Crows/3 White Soldiers + Stochastic
- ใช้ MQL5 Wizard สร้าง Expert Advisor ด้วยสัญญาณเทรด Morning/Evening Stars + Stochastic