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

การใช้งาน MQL5 Wizard สร้างกลยุทธ์การเทรดโดยใช้สัญญาณ 3 Black Crows/3 White Soldiers + MFI

ไฟล์แนบ
287.zip (6.5 KB, ดาวน์โหลด 2 ครั้ง)

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

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

ในหนังสือ "กลยุทธ์ของนักเทรดที่ดีที่สุด" จะมีการพูดถึงกลยุทธ์การเทรดมากมาย เราจะมุ่งเน้นไปที่รูปแบบแท่งเทียนย้อนกลับที่ได้รับการยืนยันโดย Stochastic, CCI, MFI และ RSI.

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

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

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

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

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

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

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

//+------------------------------------------------------------------+
//| ตรวจสอบการสร้างรูปแบบแท่งเทียน 3 Black Crows   |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternThreeBlackCrows()
  {
//--- 3 Black Crows 
   if((Open(3)-Close(3)>AvgBody(1)) && //(long black)
      (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 แท่งที่ปิดที่ระดับสูงกว่าวันก่อนหน้า โดยที่การเปิดของแต่ละเซสชั่นเกิดขึ้นภายในตัวแท่งเทียนของวันก่อนหน้า.

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

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

รูปแบบแท่งเทียน 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. สัญญาณการเทรดที่ได้รับการยืนยันโดยออสซิลเลเตอร์ MFI

สัญญาณการเทรดเพื่อเปิดสถานะ Long หรือ Short ต้องได้รับการยืนยันโดยออสซิลเลเตอร์ MFI โดยค่าของ MFI ต้องต่ำกว่า 40 (สำหรับสถานะ Long) หรือมากกว่า 60 (สำหรับสถานะ Short).

การปิดสถานะขึ้นอยู่กับค่าของออสซิลเลเตอร์ MFI ซึ่งสามารถทำได้ใน 2 กรณี:

  1. เมื่อ MFI ถึงระดับวิกฤตตรงข้าม (70 สำหรับสถานะ Long และ 30 สำหรับสถานะ Short)
  2. หากไม่มีสัญญาณย้อนกลับยืนยัน (เมื่อออสซิลเลเตอร์ MFI ถึงระดับต่อไปนี้: 30 สำหรับสถานะ Long และ 70 สำหรับสถานะ Short)

รูปแบบ 3 Black Crows ยืนยันโดยออสซิลเลเตอร์ MFI

รูปแบบ 3 Black Crows ยืนยันโดยออสซิลเลเตอร์ MFI



2.1. เปิดสถานะ Long/ปิดสถานะ Short

  1. การสร้างรูปแบบ "3 White Soldiers" ต้องได้รับการยืนยันโดยออสซิลเลเตอร์ MFI: MFi(1)<40 (ค่าของออสซิลเลเตอร์ MFI ของแท่งเทียนที่ปิดล่าสุดต้องน้อยกว่า 40).

  2. สถานะ Short ต้องถูกปิดเมื่อออสซิลเลเตอร์ MFI ข้ามขึ้นไปยังระดับวิกฤต (70 หรือ 30).

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


2.2. เปิดสถานะ Short/ปิดสถานะ Long

  1. การสร้างรูปแบบ "3 Black Crows" ต้องได้รับการยืนยันโดยออสซิลเลเตอร์ MFI: MFI(1)>60 (ค่าของออสซิลเลเตอร์ MFI ของแท่งเทียนที่ปิดล่าสุดต้องมากกว่า 60).

  2. สถานะ Long ต้องถูกปิดเมื่อออสซิลเลเตอร์ MFI ข้ามขึ้นไปยังระดับวิกฤต (70 หรือ 30).

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


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

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

ในการสร้าง Expert Advisor ให้เปิด MQL5 Wizard:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

คุณสมบัติ Trailing ของ Expert Advisor

คุณสมบัติ Trailing ของ Expert Advisor

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

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

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

โดยการกดปุ่ม "เสร็จสิ้น" เราจะได้รับโค้ดของ Expert Advisor ที่สร้างขึ้น ซึ่งจะถูกบันทึกใน Expert_ABC_WS_MFI.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() ของคลาสสัญญาณการเทรด เราได้ระบุค่าคงที่ของธรณี:

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, PeriodMFI=37, MA_period=13).

ในการสร้าง Expert Advisor เราใช้ปริมาณคงที่ (Trading Fixed Lot, 0.1) และไม่ใช้ Trailing Stop (Trailing not used).

ผลการทดสอบของ Expert Advisor ที่ใช้ 3 Black Crows/3 White Soldiers + MFI

ผลการทดสอบของ Expert Advisor ที่ใช้ 3 Black Crows/3 White Soldiers + MFI


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

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


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

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