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

สร้าง Expert Advisor ด้วย MQL5 Wizard: สัญญาณซื้อขายจาก Morning/Evening Stars + MFI

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

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

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

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

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

ในการนี้เราจะพิจารณาสัญญาณที่อิงจากรูปแบบแท่งเทียน "Morning Star/Evening Star" (Morning Doji Star/Evening Doji Star) ที่ได้รับการยืนยันโดย MFI. โมดูลของสัญญาณการซื้อขายนั้นอิงจาก CCandlePattern ซึ่งเป็นตัวอย่างง่ายๆ ของการใช้งานเพื่อสร้างสัญญาณการซื้อขายด้วยรูปแบบแท่งเทียน.

1. รูปแบบแท่งเทียน "Morning Star" และ "Evening Star"

1.1. Morning Star

รูปแบบนี้บ่งบอกถึงการกลับตัวของแนวโน้มขาลง ประกอบด้วยแท่งเทียนสามแท่ง (ดูรูปที่ 1). หลังจากแท่งเทียนสีดำยาวจะมีแท่งเทียน (สีไม่สำคัญ) ที่มีลำตัวเล็กๆ ซึ่งอยู่ภายนอกลำตัวของแท่งเทียนสีดำ แท่งเทียนที่มีลำตัวเล็กหมายถึงพลังของกระทิงและหมีมีความเท่าเทียมกัน และตลาดพร้อมที่จะเปลี่ยนแนวโน้ม.

แท่งเทียนที่สามของรูปแบบนี้เป็นแท่งเทียนที่กระตุ้น (bullish) โดยลำตัวของมันไม่ทับซ้อนกับลำตัวของแท่งเทียนที่สอง และราคาปิดอยู่ภายในลำตัวของแท่งเทียนแรก (bearish) รูปแบบของแท่งเทียนที่เกิดขึ้นสามารถดูได้ในรูปที่ 1.

กรณีที่แท่งเทียนที่สองเป็นแท่งเทียนแบบ doji จะเรียกรูปแบบนี้ว่า "Morning Doji Star".

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

Fig. 1. รูปแบบแท่งเทียน "Morning Star" และ "Morning Doji Star"

การตรวจสอบรูปแบบ "Morning Star" นั้นดำเนินการในเมธอด CheckPatternMorningStar() และ CheckPatternMorningDoji() ของคลาส CCandlePattern:

//+------------------------------------------------------------------+
//| ตรวจสอบการ形成ของรูปแบบ "Morning Star"                    |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternMorningStar()
  {
//--- Morning Star
   if((Open(3)-Close(3)>AvgBody(1))             && // แท่งเทียนสีดำ, ลำตัวของมันมากกว่าลำตัวเฉลี่ย
      (MathAbs(Close(2)-Open(2)<AvgBody(1)*0.5) && // แท่งเทียนที่สองมีลำตัวเล็ก (น้อยกว่าครึ่งหนึ่งของลำตัวเฉลี่ย)
      (Close(2)<Close(3))                       && // ราคาปิดของแท่งเทียนที่สองต่ำกว่าราคาปิดของแท่งเทียนแรก
      (Open(2)<Open(3))                         && // ราคาที่เปิดของแท่งเทียนที่สองต่ำกว่าราคาที่เปิดของแท่งเทียนแรก
      (Close(1)>MidOpenClose(3)))                  // ราคาปิดของแท่งเทียนสุดท้ายที่เสร็จสิ้นสูงกว่ากลางของแท่งเทียนแรก
      return(true);
//---
   return(false);
  }
//+------------------------------------------------------------------+
//| ตรวจสอบการ形成ของรูปแบบ "Morning Doji Star"               |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternMorningDoji()
  {
//--- Morning Doji Star
   if((Open(3)-Close(3)>AvgBody(1)) && // แท่งเทียนสีดำที่มีลำตัวมากกว่าลำตัวเฉลี่ย 
      (AvgBody(2)<AvgBody(1)*0.1)   && // แท่งเทียนที่สองมีลำตัวเล็กมาก (doji) 
      (Close(2)<Close(3))           && // ราคาปิดของแท่งเทียนที่สองต่ำกว่าราคาปิดของแท่งเทียนแรก
      (Open(2)<Open(3))             && // ราคาที่เปิดของแท่งเทียนที่สองต่ำกว่าราคาที่เปิดของแท่งเทียนแรก
      (Open(1)>Close(2))             && // ช่องว่างขาขึ้นที่แท่งเทียนสุดท้ายที่เสร็จสิ้น
      (Close(1)>Close(2)))             // ราคาปิดของแท่งเทียนสุดท้ายสูงกว่าราคาปิดของแท่งเทียนที่สอง
      return(true);
//---
   return(false);
  }

เมธอด CheckCandlestickPattern(CANDLE_PATTERN_MORNING_STAR) และ CheckCandlestickPattern(CANDLE_PATTERN_MORNING_DOJI) ของคลาส CCandlePattern ใช้สำหรับตรวจสอบการ形成ของรูปแบบ "Morning Star" และ "Morning Doji Star".


1.2. Evening Star

รูปแบบนี้บ่งบอกถึงการกลับตัวของแนวโน้มขาขึ้น ประกอบด้วยแท่งเทียนสามแท่ง (ดูรูปที่ 2). หลังจากแท่งเทียนสีขาวยาวจะมีแท่งเทียน (สีไม่สำคัญ) ที่มีลำตัวเล็กๆ ซึ่งอยู่ภายนอกลำตัวของแท่งเทียนสีขาว แท่งเทียนที่มีลำตัวเล็กหมายถึงพลังของกระทิงและหมีมีความเท่าเทียมกัน และตลาดพร้อมที่จะเปลี่ยนแนวโน้ม.

แท่งเทียนที่สามของรูปแบบนี้เป็นแท่งเทียนที่เป็นสีดำ (bearish) โดยลำตัวของมันไม่ทับซ้อนกับลำตัวของแท่งเทียนที่สอง และราคาปิดอยู่ภายในลำตัวของแท่งเทียนแรก (bullish) รูปแบบของแท่งเทียนที่เกิดขึ้นสามารถดูได้ในรูปที่ 2.

กรณีที่แท่งเทียนที่สองเป็นแท่งเทียนแบบ doji จะเรียกรูปแบบนี้ว่า "Evening Doji Star".

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

Fig. 2. รูปแบบแท่งเทียน "Evening Star" และ "Evening Doji Star"

นี่คือวิธีการในการระบุรูปแบบ "Evening Star" และ "Evening Doji Star":

//+------------------------------------------------------------------+
//| ตรวจสอบการ形成ของรูปแบบ "Evening Star"                    |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternEveningStar()
  {
//--- Evening Star
   if((Close(3)-Open(3)>AvgBody(1))             && // แท่งเทียนกระตุ้น (bullish) ที่มีลำตัวสูงกว่าลำตัวเฉลี่ย 
      (MathAbs(Close(2)-Open(2)<AvgBody(1)*0.5) && // แท่งเทียนที่สองมีลำตัวเล็ก (น้อยกว่าครึ่งหนึ่งของลำตัวเฉลี่ย)
      (Close(2)>Close(3))                       && // ราคาปิดของแท่งเทียนที่สองสูงกว่าราคาปิดของแท่งเทียนแรก
      (Open(2)>Open(3))                         && // ราคาที่เปิดของแท่งเทียนที่สองสูงกว่าราคาที่เปิดของแท่งเทียนแรก
      (Close(1)<MidOpenClose(3)))                  // ราคาปิดของแท่งเทียนสุดท้ายต่ำกว่ากลางของแท่งเทียนแรก
      return(true);
//---
   return(false);
  }
//+------------------------------------------------------------------+
//| ตรวจสอบการ形成ของรูปแบบ "Evening Doji Star"               |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternEveningDoji()
  {
//--- Evening Doji Star
   if((Close(3)-Open(3)>AvgBody(1)) && // แท่งเทียนกระตุ้น (bullish) ที่มีลำตัวสูงกว่าลำตัวเฉลี่ย 
      (AvgBody(2)<AvgBody(1)*0.1)   && // แท่งเทียนที่สองมีลำตัวเล็กมาก (doji) 
      (Close(2)>Close(3))           && // ราคาปิดของแท่งเทียนที่สองสูงกว่าราคาปิดของแท่งเทียนแรก
      (Open(2)>Open(3))             && // ราคาที่เปิดของแท่งเทียนที่สองสูงกว่าราคาที่เปิดของแท่งเทียนแรก
      (Open(1)<Close(2))             && // ช่องว่างขาลงที่แท่งเทียนสุดท้ายที่เสร็จสิ้น
      (Close(1)<Close(2)))             // ราคาปิดของแท่งเทียนสุดท้ายต่ำกว่าราคาปิดของแท่งเทียนที่สอง
      return(true);
//---
   return(false);
  }

เมธอด CheckCandlestickPattern(CANDLE_PATTERN_EVENING_STAR) และ CheckCandlestickPattern(CANDLE_PATTERN_EVENING_DOJI) ของคลาส CCandlePattern ใช้สำหรับตรวจสอบการ形成ของรูปแบบ "Evening Star" และ "Evening Doji Star".


2. สัญญาณการซื้อขายที่ได้รับการยืนยันโดยออสซิลเลเตอร์ MFI

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

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

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

Figure 3. รูปแบบ

Figure 3. รูปแบบ "Morning Star" ที่ได้รับการยืนยันโดย MFI


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

2.1. เปิดตำแหน่งซื้อ/ปิดตำแหน่งขาย

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

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

//+------------------------------------------------------------------+
//| ตรวจสอบเงื่อนไขสำหรับการเข้าและออกจากตลาด                 |
//| 1) การเข้าไปในตลาด (เปิดตำแหน่งซื้อ, ผลลัพธ์=80)                  |
//| 2) การออกจากตลาด (ปิดตำแหน่งขาย, ผลลัพธ์=40)                 |
//+------------------------------------------------------------------+
int CMS_ES_MFI::LongCondition()
  {
   int result=0;
//--- idx สามารถใช้เพื่อกำหนดโหมดการทำงานของ Expert Advisor
//--- idx=0 - ในกรณีนี้ EA ตรวจสอบเงื่อนไขการซื้อขายที่แต่ละแท่งเทียน
//--- idx=1 - ในกรณีนี้ EA ตรวจสอบเงื่อนไขการซื้อขายที่แท่งเทียนข่าวเท่านั้น
  int idx   =StartIndex();
//--- ตรวจสอบเงื่อนไขเพื่อเปิดตำแหน่งซื้อ
//--- การ形成ของรูปแบบ Morning Star และ MFI<40
  if(CheckCandlestickPattern(CANDLE_PATTERN_MORNING_STAR) && (MFI(1)<40))
     result=80;
//--- ตรวจสอบเงื่อนไขเพื่อปิดตำแหน่งขาย
//--- สัญญาณการข้ามระดับที่ซื้อมากเกินไป/ซื้อน้อยเกินไป (ขึ้น 30, ขึ้น 70)
  if(((MFI(1)>30) && (MFI(2)<30)) || ((MFI(1)>70) && (MFI(2)<70)))
     result=40;
//--- ส่งคืนผลลัพธ์
   return(result);
  }


2.2. เปิดตำแหน่งขาย/ปิดตำแหน่งซื้อ

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

  2. ตำแหน่งซื้อจะต้องถูกปิดถ้า MFI ข้ามระดับวิกฤตขึ้นไป (70 หรือ 30).

//+------------------------------------------------------------------+
//| ตรวจสอบเงื่อนไขสำหรับการเข้าและออกจากตลาด                 |
//| 1) การเข้าไปในตลาด (เปิดตำแหน่งขาย, ผลลัพธ์=80)                 |
//| 2) การออกจากตลาด (ปิดตำแหน่งซื้อ, ผลลัพธ์=40)                  |
//+------------------------------------------------------------------+
int CMS_ES_MFI::ShortCondition()
  {
   int result=0;
//--- idx สามารถใช้เพื่อกำหนดโหมดการทำงานของ Expert Advisor
//--- idx=0 - ในกรณีนี้ EA ตรวจสอบเงื่อนไขการซื้อขายที่แต่ละแท่งเทียน
//--- idx=1 - ในกรณีนี้ EA ตรวจสอบเงื่อนไขการซื้อขายที่แท่งเทียนข่าวเท่านั้น
  int idx   =StartIndex();
//--- ตรวจสอบเงื่อนไขเพื่อเปิดตำแหน่งขาย
//--- การ形成ของรูปแบบ Evening Star และ MFI>60
  if(CheckCandlestickPattern(CANDLE_PATTERN_EVENING_STAR) && (MFI(1)>60))
     result=80;
//--- ตรวจสอบเงื่อนไขเพื่อปิดตำแหน่งซื้อ
//--- สัญญาณการข้ามระดับที่ซื้อมากเกินไป/ซื้อน้อยเกินไป (ขึ้น 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

คลาส CMS_ES_MFI ไม่ได้รวมอยู่ในคลาสมาตรฐาน ดังนั้นจึงจำเป็นต้องดาวน์โหลดไฟล์ ams_es_mfi.mqh (ดูในแนบ) และบันทึกลงใน client_terminal_data_folder\MQL5\Include\Expert\Signal\MySignals. ควรทำเหมือนกันกับไฟล์ acandlepatterns.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

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

เพิ่มโมดูล "สัญญาณที่อิงจาก Morning Star/Evening Star ยืนยันโดย MFI" ของสัญญาณการซื้อขาย:

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

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

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

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

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

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

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

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

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

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

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

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

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

//--- อินพุตสำหรับสัญญาณหลัก
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 (ในจุด)

ต้องถูกเปลี่ยนเป็น:

//--- อินพุตสำหรับสัญญาณหลัก
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, PeriodMFI=49, MA_period=3).

ในการสร้าง Expert Advisor เราใช้ปริมาณคงที่ (การซื้อขายด้วย Fixed Lot, 0.1) ไม่ได้ใช้กลยุทธ์ Trailing Stop (Trailing ไม่ใช้).

Fig. 11. ผลการทดสอบของ Expert Advisor ที่อิงจาก Morning/Evening Stars + MFI

Fig. 11. ผลการทดสอบของ Expert Advisor ที่อิงจาก Morning/Evening Stars + MFI


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

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


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

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