MyBanner

โฆษณา

วันจันทร์ที่ 26 พฤศจิกายน พ.ศ. 2561

เงื่อนไขการเปิดคำสั่งซื้อ/ขายของ My MA100 BB10 Fractals PSAR MACD RSI Thai EA



Unstable
Platform
MT 4
ปรับปรุงครั้งสุดท้ายเมื่อ : ๒๖ มกราคม พ.ศ.๒๕๖๒
ไม่รับประกันความเสียหาอันเนื่องมาจากการทำงานของ EA ชุดนี้


               My MA100 BB10 Fractals PSAR MACD RSI Thai EA เป็น EA  ที่พัฒนาต่อยอดมาจาก My Fast Slow Moving Average Thai EA ที่ผู้เขียนได้เคยนำเสนอไว้ในบล็อกไซต์แห่งนี้ กล่าวคือ EA ทั้งสองชุดนี้จะใช้เส้น Moving Average หรือเส้น MA เคลื่อนที่เร็วกับเส้น MA เคลื่อนที่ช้าตัดกัน เพียงแต่ใน EA ชุดนี้ เส้น MA เคลื่อนเร็วจะใช้เส้นกลางของ ฺBollinger Bands : BB แทน และใช้ขอบของ BB แสดงขอบเขตของการเคลื่อนที่ของราคา นอกจากนี้ยังใช้อินดิเคเตอร์อื่นๆ ประกอบดังที่ผู้เขียนได้แสดงรายละเอียดไว้ในบทความเรื่อง "indicators ที่ใช้ใน My MA100 BB10 Fractals PSAR MACD RSI Thai EA

สำหรับเรื่องราวที่จะคุยกันในครั้งนี้ จะเป็นเรื่องของเงื่อนไขในการเปิดคำสั่งซื้อ/ขายของ EA ชุดนี้ ซึ่งแบ่งเป็น 4 กรณี คือ การเปิดคำสั่งซื้อ และขายตามปรกติ และการเปิดคำสั่งซื้อและขายในกรณีักลับทาง ซึ่งกลไกหรือกลุ่มชุดคำสั่งในการดำเนินการดังกล่าว จะรวมอยู่ในฟังก์ชัน OnTick() ซึ่งเป็นฟังก์ชันที่จะทำงานเมื่อค่าเงินมีการเปลี่ยนแปลงเท่ากับ Tick Value ของคู่เงินนั้นๆ โดยมีหลักการทำงานคล่าวๆ คือ
๑. อ่านค่าอินดิเคเตอร์ต่างๆ
๒. แสดงค่าและเงื่อนไขต่างๆ บนจอภาพ
๓. ตรวจสอบและตัดสินใจเปิดคำสั่งซื้อ/ขาย
๔. กรณีที่เปิดคำสั่งซื้อ/ขายไม่ได้ จะทำการเปลี่นคู่เงินหรือสินทรัพย์

เงื่อนไขการเปิดคำสั่งซื้อ (BUY)


ในการเปิดคำสั่งซื้อ (BUY) ของ My MA100 BB10 Fractals PSAR MACD RSI Thai EA ประกอบด้วยเงื่อนไขดังนี้

  1.  Parabolic SAR โน้มขึ้น
  2. Close[0] > Open[0]
  3. ทิศทางการซื้อขายตาม MACD เป็นขาขึ้น (Histogram > Signal)
  4. RSI < 75 หรือ RSI > 83
  5. เนื้อเทียนแท่งปัจจุบันมากกว่าใส้เทียนฝั่งบน
  6. เนื้อเทียนแท่งก่อนหน้าต้องมากกว่าใส้เทียนฝั่งบน
  7. ไม่มี pin bar ทะลุขอบบน Bollinger Band ในแท่งราคา 5 แท่งย้อนหลัง
  8. ตำแหน่งตรงเส้นกลาง BB ต้องมากกว่าตำแหน่งเส้นกลาง BB 5 แท่งที่ผ่านมาก
  9. RSI ปัจจุบัน > RSI แท่งที่ผ่านมาก
  10. เส้น MA100 < เส้นกลาง BB (MA10)
  11. ตำแหน่งที่เจอ Fractal Up > ตำแหน่งที่เจอ Fractal Down
  12. Fractal ล่าสุด ต้องเป็น Fractal Down


เงื่อนไขการเปิดคำสั่งขาย (SELL)



สำหรับการเปิดคำสั่งขาย (SELL) ของ My MA100 BB10 Fractals PSAR MACD RSI Thai EA ประกอบด้วยเงื่อนไขดังนี้




  1.  Parabolic SAR โน้มลง
  2. Close[0] < Open[0]
  3. ทิศทางการซื้อขายตาม MACD เป็นขาขึ้น (Histogram < Signal)
  4. RSI > 25 หรือ RSI < 17
  5. เนื้อเทียนแท่งปัจจุบันมากกว่าใส้เทียนฝั่งล่าง
  6. เนื้อเทียนแท่งก่อนหน้าต้องมากกว่าใส้เทียนฝั่งล่าง
  7. ไม่มี pin bar ทะลุขอบล่าง Bollinger Band ในแท่งราคา 5 แท่งย้อนหลัง
  8. ตำแหน่งตรงเส้นกลาง BB ต้องน้อยกว่าตำแหน่งเส้นกลาง BB 5 แท่งที่ผ่านมาก
  9. RSI ปัจจุบัน < RSI แท่งที่ผ่านมาก
  10. เส้น MA100 > เส้นกลาง BB (MA10)
  11. ตำแหน่งที่เจอ Fractal Up < ตำแหน่งที่เจอ Fractal Down
  12. Fractal ล่าสุด ต้องเป็น Fractal UP

การเปิดคำสั่งซื้อ/ขายสวนเทรน (trend reversal)


ในการเปิดคำสั่งซื้อ/ขายของ  My MA100 BB10 Fractals PSAR MACD RSI Thai EA สามารถทำการเปิดคำสั่งซื้อขายสวนเทรนได้ ด้วยการกำหนดเงื่อนไขหรือคุณสมบัติในหัวข้อ UseTrendReversals เป็น True โดยมีเงื่อนไขการเปิดคำสั่งซื้อ/ขาย ดังนี้

กรณี ซื้อ (BUY) สวนเทรน



ในการเปิดคำสั่งซื้อ (BUY) สวนเทรน จะต่างจากการเปิดคำสั่งซื้อ (BUY) ปรกติ ตรงที่ เส้น MA เคลื่อนที่เร็ว (MA10) อยู่ต่ำกว่าเส้น MA เคลื่อนที่ช้า หรืออยู่ในเทรนขาลง แต่เงื่อนไขอื่นๆ อยู่ในฝั่งขาขึ้นทั้งหมด ซึ่งเงื่อนไขที่ใช้เปิดคำสั่งซื้อ (BUY) ในกรณีสวนเทรนมีดังนี้
  1.  Parabolic SAR โน้มขึ้น
  2. Close[0] > Open[0]
  3. ทิศทางการซื้อขายตาม MACD เป็นขาขึ้น (Histogram > Signal)
  4. RSI < 75 หรือ RSI > 83
  5. เนื้อเทียนแท่งปัจจุบันมากกว่าใส้เทียนฝั่งบน
  6. เนื้อเทียนแท่งก่อนหน้าต้องมากกว่าใส้เทียนฝั่งบน
  7. ไม่มี pin bar ทะลุขอบบน Bollinger Band ในแท่งราคา 5 แท่งย้อนหลัง
  8. ตำแหน่งตรงเส้นกลาง BB ต้องมากกว่าตำแหน่งเส้นกลาง BB 5 แท่งที่ผ่านมาก
  9. RSI ปัจจุบัน > RSI แท่งที่ผ่านมาก
  10. เส้น MA100 > เส้นกลาง BB (MA10) ซึ่งบ่งบอกว่าอยู่ในเทรนขาลง
  11. ตำแหน่งที่เจอ Fractal Up > ตำแหน่งที่เจอ Fractal Down
  12. Fractal ล่าสุด ต้องเป็น Fractal Down

กรณี ขาย (SELL) สวนเทรน


สำหรับการเปิดคำสั่งขาย (SELL) สวนเทรน จะต่างจากการเปิดคำสั่งขาย (SELL) ปรกติ ตรงที่ เส้น MA เคลื่อนที่เร็ว (MA10) อยู่เหนือเส้น MA เคลื่อนที่ช้า หรืออยู่ในเทรนขาขึ้น แต่เงื่อนไขอื่นๆ อยู่ในฝั่งขาลงทั้งหมด ซึ่งเงื่อนไขที่ใช้เปิดคำสั่งขาย (SELL) ในกรณีสวนเทรนมีดังนี้
  1.  Parabolic SAR โน้มลง
  2. Close[0] < Open[0]
  3. ทิศทางการซื้อขายตาม MACD เป็นขาขึ้น (Histogram < Signal)
  4. RSI > 25 หรือ RSI < 17
  5. เนื้อเทียนแท่งปัจจุบันมากกว่าใส้เทียนฝั่งล่าง
  6. เนื้อเทียนแท่งก่อนหน้าต้องมากกว่าใส้เทียนฝั่งล่าง
  7. ไม่มี pin bar ทะลุขอบล่าง Bollinger Band ในแท่งราคา 5 แท่งย้อนหลัง
  8. ตำแหน่งตรงเส้นกลาง BB ต้องน้อยกว่าตำแหน่งเส้นกลาง BB 5 แท่งที่ผ่านมาก
  9. RSI ปัจจุบัน < RSI แท่งที่ผ่านมาก
  10. เส้น MA100 < เส้นกลาง BB (MA10)
  11. ตำแหน่งที่เจอ Fractal Up < ตำแหน่งที่เจอ Fractal Down
  12. Fractal ล่าสุด ต้องเป็น Fractal UP

สำหรับชุดคำสั่งเกี่ยวกับเงื่อนไขการเปิดคำสั่งซื้อ/ขาย ของ  My MA100 BB10 Fractals PSAR MACD RSI Thai EA ที่กล่าวมาในข้างต้น ผู้เขียนจะขอยกมาแสดงเพียงบางส่วนดังนี้

      //ตรวจสอบว่าคู่เงินอนุญาตให้เทรดเต็มรูปแบบหรือไม่
      //ตรวจสอบว่าจะซื้อ (BUY) หรือ ขาย (SELL)
      if ((((((((((ลักษณะPSAR == "โน้มขึ้น (BUY)") && 
         (Close[0] > Open[0]) &&
         (ทิศทางการซื้อขายตาม_MACD == "ขาขึ้น (BUY)")) &&
         (เงื่อนไขRSI_BUY_Ok)) &&
         (ดูพินแท่งเทียน(0)) && ดูพินแท่งเทียน(1)) &&
         (StringLen(ข้อความพินBB) == 0)) && //ไม่มี พิน ที่ขอบของ Bollinger Band
         (เส้นกลางBB > เส้นกลางBBก่อนหน้า5แท่ง)) &&
         (RSI > iRSI(NULL, PERIOD_CURRENT, 14,PRICE_CLOSE,1))) &&
         (MA100 < เส้นกลางBB)) &&
         (ตำแหน่งแท่งเทียนที่เจอFractalUP > ตำแหน่งแท่งเทียนที่เจอFractalDOWN)) &&
         (StringFind(ตำแหน่งFractal, "BUY", 0) != -1))
      {
         รูปแบบการซื้อขาย = OP_BUY;
         
      } else {
         if (((((((((((ลักษณะPSAR == "โน้มลง (SELL)") && 
            (Close[0] < Open[0])) &&
            (ทิศทางการซื้อขายตาม_MACD == "ขาลง (SELL)")) &&
            (เงื่อนไขRSI_SELL_Ok)) &&
            (ดูพินแท่งเทียน(0)) && ดูพินแท่งเทียน(1)) &&
            (StringLen(ข้อความพินBB) == 0)) && //ไม่มี พิน ที่ขอบของ Bollinger Band
            (เส้นกลางBB < เส้นกลางBBก่อนหน้า5แท่ง)) &&
            (RSI < iRSI(NULL, PERIOD_CURRENT, 14,PRICE_CLOSE,1))) &&
            (MA100 > เส้นกลางBB)) &&
            (ตำแหน่งแท่งเทียนที่เจอFractalUP < ตำแหน่งแท่งเทียนที่เจอFractalDOWN)) &&
            (StringFind(ตำแหน่งFractal, "SELL", 0) != -1))
         {
            รูปแบบการซื้อขาย = OP_SELL;  
         } else {
            รูปแบบการซื้อขาย = 99;
         }
      }
      
      if ((รูปแบบการซื้อขาย == 99) && UseTrendReversals) 
      {         
         if (MA100 < เส้นกลางBB) //เทรนตาม Moving Average อยู๋ในเทรน BUY
         {                    //แต่งองค์ประกอบอื่นๆ อยู่ฝั่ง SELL
            if (((((((((เงื่อนไขRSI_SELL_Ok) &&
               (ลักษณะPSAR == "โน้มลง (SELL)")) &&
               (ทิศทางการซื้อขายตาม_MACD == "ขาลง (SELL)")) &&
               (เส้นกลางBB < เส้นกลางBBก่อนหน้า5แท่ง)) &&
               (RSI < iRSI(NULL, PERIOD_CURRENT, 14,PRICE_CLOSE,1))) &&
               (Close[1] < Open[1])) &&
               (Close[0] < Open[0])) &&
               (ตำแหน่งแท่งเทียนที่เจอFractalUP < ตำแหน่งแท่งเทียนที่เจอFractalDOWN)) &&
               (StringFind(ตำแหน่งFractal, "SELL", 0) != -1))
            {
               if (StringFind(ข้อความพินBB, "SELL", 0) == -1)
               {
                  รูปแบบการซื้อขาย = OP_SELL;
                  
                  if (OrdersTotal() > 0)
                  {
                     if (OrderType() == OP_BUY) //รายการสุดท้ายเป็น BUY
                     {
                        รหัสกรณีเปลี่ยนคู่เงินไม่ได้ = 0;
                        สถานะอนุญาตให้เปิดคำสั่ง = True;
                        if (((จำนวนคำสั่งซื้อขายทั้งหมด > 0) &&
                           (OrderSymbol() == Symbol())) &&
                           (NoRepleatAsset))
                        {
                           สถานะอนุญาตให้เปิดคำสั่ง = False;
                        }
                     }
                  }
               }
            }
         }
         
         if (MA100 > เส้นกลางBB) //เทรนตาม Moving Average อยู๋ในเทรน SELL
         {                    //แต่งองค์ประกอบอื่นๆ อยู่ฝั่ง BUY
            if (((((((((เงื่อนไขRSI_BUY_Ok) &&
               (ลักษณะPSAR == "โน้มขึ้น (BUY)")) &&
               (ทิศทางการซื้อขายตาม_MACD == "ขาขึ้น (BUY)")) &&
               (เส้นกลางBB > iBands(NULL, PERIOD_CURRENT, 10, 2, 0, PRICE_CLOSE, MODE_MAIN, 4))) &&
               (RSI > iRSI(NULL, PERIOD_CURRENT, 14,PRICE_CLOSE,1))) &&
               (Close[1] > Open[1])) &&
               (Close[0] > Open[0])) &&
               (ตำแหน่งแท่งเทียนที่เจอFractalUP > ตำแหน่งแท่งเทียนที่เจอFractalDOWN)) &&
               (StringFind(ตำแหน่งFractal, "BUY", 0) != -1))
            {
               if (StringFind(ข้อความพินBB, "BUY", 0) == -1)
               {
                  รูปแบบการซื้อขาย = OP_BUY;
                  
                  if (OrdersTotal() > 0)
                  {
                     if (OrderType() == OP_SELL) //รายการสุดท้ายเป็น BUY
                     {
                        รหัสกรณีเปลี่ยนคู่เงินไม่ได้ = 0;
                        สถานะอนุญาตให้เปิดคำสั่ง = True;
                        if (((จำนวนคำสั่งซื้อขายทั้งหมด > 0) && 
                           (OrderSymbol() == Symbol())) &&
                           (NoRepleatAsset))
                        {
                           สถานะอนุญาตให้เปิดคำสั่ง = False;
                        }
                     }
                  }
               }
            }
         }
      }

บทความที่เกี่ยวข้อง

เขียน EA สำหรับ FOREX ใช้เองจะดีไหม ตอน My MA100 BB10 Fractals PSAR MACD RSI Thai EA
การกำหนดค่าต่างๆ ของ My MA100 BB10 Fractals PSAR MACD RSI Thai EA
indicators ที่ใช้ใน My MA100 BB10 Fractals PSAR MACD RSI Thai EA
เงื่อนไขการเปิดคำสั่งซื้อ/ขายของ My MA100 BB10 Fractals PSAR MACD RSI Thai EA
การคำนวณหาขนาด lot, Stop Loss (SL) และ Take Profit (TP) ของ My MA100 BB10 Fractals PSAR MACD RSI Thai EA

Adz2you.