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

MQL5 Wizard: สัญญาณการเทรดจากรูปแบบแท่งเทียน 3 Black Crows/3 White Soldiers + CCI

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

MQL5 Wizard ช่วยให้คุณสร้าง Expert Advisor (EA) ที่พร้อมใช้งานจากคลาสใน Standard library ที่มาพร้อมกับโปรแกรม MetaTrader 5 (ดูรายละเอียดเพิ่มเติมที่ การสร้าง Expert Advisors ที่พร้อมใช้งานใน MQL5 Wizard). มันช่วยให้คุณสามารถตรวจสอบไอเดียการเทรดได้อย่างรวดเร็ว เพียงแค่สร้างคลาสสัญญาณการเทรดของคุณเอง โครงสร้างของคลาสนี้และตัวอย่างสามารถดูได้ในบทความ MQL5 Wizard: วิธีสร้างโมดูลของสัญญาณการเทรด.

แนวคิดทั่วไปคือ คลาสของสัญญาณการเทรดที่สร้างจาก CExpertSignal จากนั้นต้องทำการ override เมธอด LongCondition() และ ShortCondition() ด้วยเมธอดของคุณเอง.

มีหนังสือ "กลยุทธ์ของเทรดเดอร์ที่ดีที่สุด" (เป็นภาษารัสเซีย) มีการพิจารณากลยุทธ์การเทรดหลายอย่าง ซึ่งเราจะมุ่งเน้นไปที่รูปแบบแท่งเทียนที่กลับตัว ที่ได้รับการยืนยันจาก Stochastic, CCI, MFI และ RSI oscillators.

วิธีที่ดีที่สุดคือการสร้างคลาสแยกต่างหากที่สร้างจาก CExpertSignal สำหรับการตรวจสอบการสร้างรูปแบบแท่งเทียน สำหรับการยืนยันสัญญาณการเทรดที่สร้างจากรูปแบบแท่งเทียน เพียงแค่เขียนคลาสที่สร้างจาก CCandlePattern และเพิ่มฟีเจอร์ที่จำเป็น (เช่น การยืนยันโดย oscillators) เข้าไป.

ที่นี่เราจะพิจารณาสัญญาณที่มีพื้นฐานจากรูปแบบแท่งเทียน "3 Black Crows/3 White Soldiers" ที่ได้รับการยืนยันโดย CCI โมดูลของสัญญาณการเทรดนี้อิงจากคลาส CCandlePattern ซึ่งเป็นตัวอย่างที่ง่ายสำหรับการสร้างสัญญาณการเทรดด้วยรูปแบบแท่งเทียน.


1. รูปแบบแท่งเทียน 3 Black Crows และ 3 White Soldiers

1.1. 3 Black Crows

เป็นรูปแบบแท่งเทียนขาลงที่ใช้ในการคาดการณ์การกลับตัวของแนวโน้มขาขึ้นในปัจจุบัน รูปแบบนี้ประกอบด้วยแท่งเทียนที่มีร่างยาว 3 แท่งต่อเนื่องที่ปิดต่ำกว่าวันก่อนหน้า โดยการเปิดของแต่ละเซสชั่นเกิดขึ้นภายในร่างของแท่งเทียนก่อนหน้า.

Fig. 1. รูปแบบแท่งเทียน 3 Black Crows

Fig. 1. รูปแบบแท่งเทียน "3 Black Crows"

การตรวจจับรูปแบบ "3 Black Crows" จะดำเนินการในเมธอด CheckPatternThreeBlackCrows ของคลาส CCandlePattern:

//+------------------------------------------------------------------+
//| ตรวจสอบการสร้างรูปแบบแท่งเทียน "3 Black Crows"        |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternThreeBlackCrows()
  {
//--- 3 Black Crows 
   if((Open(3)-Close(3)>AvgBody(1)) && // (ยาวดำ)
      (Open(2)-Close(2)>AvgBody(1)) &&
      (Open(1)-Close(1)>AvgBody(1)) && 
      (MidPoint(2)<MidPoint(3))     && // (จุดกลางต่ำกว่า)
      (MidPoint(1)<MidPoint(2)))       
      return(true);
//---
   return(false);
  }

เมธอด CheckCandlestickPattern(CANDLE_PATTERN_THREE_BLACK_CROWS) ของคลาส CCandlePattern ใช้ในการตรวจสอบการสร้างรูปแบบ "3 Black Crows".


1.2. รูปแบบ 3 White Soldiers

เป็นรูปแบบแท่งเทียนขาขึ้นที่ใช้ในการคาดการณ์การกลับตัวของแนวโน้มขาลงในปัจจุบัน รูปแบบนี้ประกอบด้วยแท่งเทียนที่มีร่างยาว 3 แท่งต่อเนื่องที่ปิดสูงกว่าวันก่อนหน้า โดยการเปิดของแต่ละเซสชั่นจะเกิดขึ้นภายในร่างของแท่งเทียนก่อนหน้า.

รูปแบบนี้จะถูกต้องตราบใดที่แท่งเทียนของวันที่สองเปิดในครึ่งบนของช่วงของวันแรก โดยในตอนสิ้นสุดของวันที่สองจะต้องปิดใกล้ๆกับจุดสูงสุด โดยทิ้งเงาบนที่เล็กมากหรือไม่ทิ้งเลย รูปแบบเดียวกันจะถูกทำซ้ำในวันที่สาม.

Fig. 2. รูปแบบแท่งเทียน 3 White Soldiers

Fig. 2. รูปแบบแท่งเทียน "3 White Soldiers"

นี่คือเมธอดสำหรับการตรวจจับรูปแบบ "3 White Soldiers":

//+------------------------------------------------------------------+
//| ตรวจสอบการสร้างรูปแบบแท่งเทียน "3 White Soldiers"     |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternThreeWhiteSoldiers()
  {
   //--- 3 White Soldiers
   if((Close(3)-Open(3)>AvgBody(1)) && // (ยาวขาว)
      (Close(2)-Open(2)>AvgBody(1)) &&
      (Close(1)-Open(1)>AvgBody(1)) &&
      (MidPoint(2)>MidPoint(3))     && // (จุดกลางสูงกว่า)
      (MidPoint(1)>MidPoint(2)))
      return(true);
//---
   return(false);
  }

เมธอด CheckCandlestickPattern(CANDLE_PATTERN_THREE_WHITE_SOLDIERS) ของคลาส CCandlePattern ใช้ในการตรวจสอบการสร้างรูปแบบ "3 White Soldiers".


2. สัญญาณการเทรดที่ได้รับการยืนยันโดย CCI

สัญญาณการเทรดเพื่อเปิดตำแหน่งยาวหรือสั้นจะต้องได้รับการยืนยันจาก CCI ค่าของ CCI ต้องมีค่ามากกว่า/ต่ำกว่า ระดับวิกฤต (-50 สำหรับตำแหน่งยาวและ 50 สำหรับตำแหน่งสั้น)

การปิดตำแหน่งที่เปิดอยู่ขึ้นอยู่กับค่าของ CCI โดยสามารถทำได้ใน 2 กรณี:

  1. หากเส้น CCI ถึงระดับวิกฤตที่ตรงข้าม (80 สำหรับตำแหน่งยาวและ -80 สำหรับตำแหน่งสั้น)
  2. หากสัญญาณกลับด้านไม่ได้รับการยืนยัน (เมื่อ CCI ถึงระดับต่อไป: -80 สำหรับตำแหน่งยาวและ 80 สำหรับตำแหน่งสั้น)

Fig. 3. รูปแบบ 3 Black Crows ที่ได้รับการยืนยันโดย CCI

Fig. 3. รูปแบบ "3 Black Crows" ที่ได้รับการยืนยันโดย CCI


  • int CBC_WS_CCI::LongCondition() - ตรวจสอบเงื่อนไขในการเปิดตำแหน่งยาว (ส่งคืน 80) และปิดตำแหน่งสั้น (ส่งคืน 40);
  • int CBC_WS_CCI::ShortCondition() - ตรวจสอบเงื่อนไขในการเปิดตำแหน่งสั้น (ส่งคืน 80) และปิดตำแหน่งยาว (ส่งคืน 40).

2.1. เปิดตำแหน่งยาว/ปิดตำแหน่งสั้น

  1. การสร้างรูปแบบ "3 Black Crows" จะต้องได้รับการยืนยันโดย CCI indicator: CCI(1)<-50 (ค่าของ CCI ของแท่งที่เสร็จสิ้นล่าสุดต้องน้อยกว่า -50).

  2. ตำแหน่งสั้นจะต้องถูกปิดหาก CCI indicator ข้ามขึ้นระดับวิกฤต -80 หรือข้ามลงระดับวิกฤต 80.

//+------------------------------------------------------------------+
//| ตรวจสอบเงื่อนไขในการเข้าและออกจากตลาด               |
//| 1) การเข้าไปในตลาด (เปิดตำแหน่งยาว, ผลลัพธ์=80) |
//| 2) การออกจากตลาด (ปิดตำแหน่งสั้น, ผลลัพธ์=40) |
//+------------------------------------------------------------------+
int CBC_WS_CCI::LongCondition()
  {
   int result=0;
//--- idx สามารถใช้เพื่อกำหนดโหมดการทำงานของ Expert Advisor
//--- idx=0 - ในกรณีนี้ EA ตรวจสอบเงื่อนไขการเทรดที่ทุกๆ tick
//--- idx=1 - ในกรณีนี้ EA ตรวจสอบเฉพาะที่แท่งข่าวเท่านั้น
   int idx   =StartIndex();
//--- ตรวจสอบเงื่อนไขในการเปิดตำแหน่งยาว
//--- การสร้างรูปแบบ 3 White Soldiers และ CCI<-50
   if(CheckCandlestickPattern(CANDLE_PATTERN_THREE_WHITE_SOLDIERS) && (CCI(1)<-50))
     result=80;
//--- ตรวจสอบเงื่อนไขในการปิดตำแหน่งสั้น
//--- สัญญาณการข้ามเส้นของระดับ overbought/oversold (ลง -80, ลง -80)
   if(((CCI(1)>-80) && (CCI(2)<-80)) || ((CCI(1)<80) && (CCI(2)>80)))
     result=40;
//--- ส่งคืนผลลัพธ์
   return(result);
  }

2.2. เปิดตำแหน่งสั้น/ปิดตำแหน่งยาว

  1. การสร้างรูปแบบ "3 White Soldiers" จะต้องได้รับการยืนยันโดย CCI indicator: CCI(1)>50 (ค่าของ CCI indicator ของแท่งที่เสร็จสิ้นล่าสุดต้องมากกว่า 50).

  2. ตำแหน่งยาวจะต้องถูกปิดหาก CCI indicator ข้ามลงระดับ -80 หรือ 80.

//+------------------------------------------------------------------+
//| ตรวจสอบเงื่อนไขในการเข้าและออกจากตลาด               |
//| 1) การเข้าไปในตลาด (เปิดตำแหน่งสั้น, ผลลัพธ์=80) |
//| 2) การออกจากตลาด (ปิดตำแหน่งยาว, ผลลัพธ์=40) |
//+------------------------------------------------------------------+
int CBC_WS_CCI::ShortCondition()
  {
   int result=0;
//--- idx สามารถใช้เพื่อกำหนดโหมดการทำงานของ Expert Advisor
//--- idx=0 - ในกรณีนี้ EA ตรวจสอบเงื่อนไขการเทรดที่ทุกๆ tick
//--- idx=1 - ในกรณีนี้ EA ตรวจสอบเฉพาะที่แท่งข่าวเท่านั้น
   int idx   =StartIndex();
//--- ตรวจสอบเงื่อนไขในการเปิดตำแหน่งสั้น
//--- การสร้างรูปแบบ 3 Black Crows และ CCI>50
   if(CheckCandlestickPattern(CANDLE_PATTERN_THREE_BLACK_CROWS) && (CCI(1)>50))
     result=80;
//--- ตรวจสอบเงื่อนไขในการปิดตำแหน่งยาว
//--- สัญญาณการข้ามเส้นของระดับ overbought/oversold (ลง -80, ขึ้น 80)
   if(((CCI(1)<80) && (CCI(2)>80)) || ((CCI(1)<-80) && (CCI(2)>-80)))
     result=40;
//--- ส่งคืนผลลัพธ์
   return(result);
  }


2.3. การสร้าง Expert Advisor โดยใช้ MQL5 Wizard

คลาส CBC_WS_CCI ไม่ได้รวมอยู่ในคลาส Standard Library เพื่อใช้งาน ต้องดาวน์โหลดไฟล์ acbc_ws_cci.mqh (ดูแนบ) และบันทึกไปที่ client_terminal_data\folder\MQL5\Include\Expert\Signal\MySignals. และทำแบบเดียวกันกับไฟล์ candlepatterns.mqh. คุณสามารถใช้งานได้ใน MQL5 Wizard หลังจากรีสตาร์ท MetaEditor.

เพื่อสร้าง Expert Advisor ให้เปิด MQL5 Wizard:

Fig. 4. การสร้าง Expert Advisor โดยใช้ MQL5 Wizard

Fig. 4. การสร้าง Expert Advisor โดยใช้ MQL5 Wizard

ระบุชื่อของ Expert Advisor:

Fig. 5. คุณสมบัติทั่วไปของ Expert Advisor

Fig. 5. คุณสมบัติทั่วไปของ Expert Advisor

จากนั้นเลือกโมดูลของสัญญาณการเทรดที่ใช้.

Fig. 6. คุณสมบัติของสัญญาณ Expert Advisor

Fig. 6. คุณสมบัติของสัญญาณ Expert Advisor

ในกรณีของเราใช้โมดูลสัญญาณการเทรดเพียงหนึ่งโมดูล.

เพิ่มโมดูล "สัญญาณที่อิงจาก 3 Black Crows/3 White Soldiers ที่ได้รับการยืนยันโดย CCI":

Fig. 7. คุณสมบัติของสัญญาณ Expert Advisor

Fig. 7. คุณสมบัติของสัญญาณ Expert Advisor

โมดูลสัญญาณการเทรดถูกเพิ่มแล้ว:

Fig. 8. คุณสมบัติของสัญญาณ Expert Advisor

Fig. 8. คุณสมบัติของสัญญาณ Expert Advisor

คุณสามารถเลือกคุณสมบัติการ trailing ได้ แต่เราจะใช้ "Trailing Stop ไม่ได้ใช้":

Fig. 9. คุณสมบัติการ trailing ของ Expert Advisor

Fig. 9. คุณสมบัติการ trailing ของ Expert Advisor

ในส่วนของคุณสมบัติการจัดการเงิน เราจะใช้ "การเทรดด้วยปริมาณการเทรดที่คงที่":

Fig. 10. คุณสมบัติการจัดการเงินของ Expert Advisor

Fig. 10. คุณสมบัติการจัดการเงินของ Expert Advisor

เมื่อกดปุ่ม "เสร็จสิ้น" เราจะได้รับรหัสของ Expert Advisor ที่สร้างขึ้น ซึ่งอยู่ใน Expert_ABC_WS_CCI.mq5 จะถูกบันทึกใน terminal_data_folder\MQL5\Experts\.

พารามิเตอร์การป้อนข้อมูลเริ่มต้นของ Expert Advisor ที่สร้างขึ้น:

//--- inputs for main signal
input int            Signal_ThresholdOpen   =10;     // ค่าธรณีสัญญาณเพื่อเปิด [0...100]
input int            Signal_ThresholdClose  =10;     // ค่าธรณีสัญญาณเพื่อปิด [0...100]
input double         Signal_PriceLevel      =0.0;    // ระดับราคาในการดำเนินการดีล
input double         Signal_StopLevel       =50.0   // ระดับ Stop Loss (เป็นจุด)
input double         Signal_TakeLevel       =50.0   // ระดับ Take Profit (เป็นจุด)

ต้องถูกแทนที่ด้วย:

//--- inputs for main signal
input int            Signal_ThresholdOpen   =40;     // ค่าธรณีสัญญาณเพื่อเปิด [0...100]
input int            Signal_ThresholdClose  =20;     // ค่าธรณีสัญญาณเพื่อปิด [0...100]
input double         Signal_PriceLevel      =0.0    // ระดับราคาในการดำเนินการดีล
input double         Signal_StopLevel       =0.0    // ระดับ Stop Loss (เป็นจุด)
input double         Signal_TakeLevel       =0.0    // ระดับ Take Profit (เป็นจุด)

พารามิเตอร์การป้อนข้อมูล Signal_ThresholdOpen/Signal_ThresholdClose ช่วยให้ระบุระดับธรณีสำหรับการเปิดและปิดตำแหน่ง.

ในโค้ดของเมธอด LongCondition() และ ShortCondition() ของคลาสสัญญาณการเทรด เราได้ระบุค่าคงที่ของธรณี:

  • เปิดตำแหน่ง: 80;
  • ปิดตำแหน่ง: 40.

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

ผลลัพธ์ของคะแนนเสียงของโมดูลหลักก็จะถูกใช้ในการเฉลี่ยคะแนนเสียง ในกรณีของเรามี: โมดูลหลัก + 1 โมดูลของสัญญาณการเทรด ดังนั้นเราจึงต้องพิจารณาเรื่องนี้เมื่อกำหนดค่าธรณี เนื่องจากเหตุผลนี้ ค่า ThresholdOpen และ ThresholdClose ต้องตั้งค่าเป็น 40=(0+80)/2 และ 20=(0+40)/2.

ค่าของ Signal_StopLevel และ Signal_TakeLevel ถูกตั้งค่าเป็น 0 ซึ่งหมายความว่าการปิดตำแหน่งจะถูกดำเนินการเมื่อเงื่อนไขในการปิดจริง.


2.4. ผลการทดสอบย้อนหลัง

มาพิจารณาผลการทดสอบย้อนหลังของ Expert Advisor บนข้อมูลประวัติศาสตร์ (EURUSD H1, ช่วงการทดสอบ: 2010.01.01-2011.03.16, PeriodCCI=37, MA_period=13).

ในการสร้าง Expert Advisor เราใช้ปริมาณคงที่ (การเทรดด้วยปริมาณคงที่, 0.1), ไม่มีการใช้ Trailing Stop (ไม่มีการใช้ Trailing).

Fig. 11. ผลการทดสอบของ Expert Advisor ที่อิงจาก 3 Black Crows/3 White Soldiers + CCI

Fig. 11. ผลการทดสอบของ Expert Advisor ที่อิงจาก 3 Black Crows/3 White Soldiers + CCI


สามารถค้นหาชุดพารามิเตอร์การป้อนข้อมูลที่ดีที่สุดได้โดยใช้ Strategy Tester ของโปรแกรม MetaTrader 5.

โค้ดของ Expert Advisor ที่สร้างโดย MQL5 Wizard ถูกแนบใน expert_abc_ws_cci.mq5.


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

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