หน้าแรก การเทรดด้วยระบบ โพสต์

ใช้ MQL5 Wizard สร้างสัญญาณซื้อขายจากการตัดกันของ EMA

ไฟล์แนบ
261.zip (2.85 KB, ดาวน์โหลด 0 ครั้ง)

MQL5 Wizard เป็นเครื่องมือที่ช่วยให้เราสามารถสร้างโค้ด EA (Expert Advisor) ได้อย่างอัตโนมัติ สำหรับผู้ที่อยากรู้รายละเอียดเพิ่มเติมสามารถดูได้ที่ การสร้าง EA ที่พร้อมใช้งานใน MQL5 Wizard.

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

สัญญาณการซื้อขายมีดังนี้:

  • ซื้อ: เมื่อ EMA เร็วตัดขึ้นเหนือ EMA ช้า
  • ขาย: เมื่อ EMA เร็วตัดลงต่ำกว่า EMA ช้า

กลยุทธ์นี้ถูกนำไปใช้ในคลาส CSignalCrossEMA.

Figure 1. สัญญาณการซื้อขายจากการตัดกันของ EMA สองตัว

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

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

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

Figure 4. ผลการทดสอบย้อนกลับของ Expert Advisor จากการตัดกันของสอง EMA


ไฟล์แนบ: ไฟล์ SignalCrossEMA.mqh ที่มีคลาส CSignalCrossEMA ต้องถูกวางไว้ที่
terminal_data_folder\MQL5\Include\Expert\Signal folder.
ไฟล์ crossover_2ema.mq5 มีโค้ดของ Expert Advisor ที่สร้างขึ้นโดยใช้ MQL5 Wizard.

โพสต์ที่เกี่ยวข้อง

ความคิดเห็น (0)