MyBanner

โฆษณา

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

indicators ที่ใช้ใน My MA100 BB10 Fractals PSAR MACD RSI Thai EA



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


               สำหรับ My MA100 BB10 Fractals PSAR MACD RSI Thai EA เป็น EA ที่มีการใช้อินดิเคเตอร์จำนวน 6  อย่าง  ประกอบด้วย  Moving Average (MA)Bollinger Band (BB), Fractals, Parabolic SAR (PSAR), MACD, RSI ดังที่ปรากฏในชื่อของ EA นอกจากนี้ยังมีการพิจารณาแท่งราคาประกอบด้วย

Moving Average (MA100)


อินดีเคเตอร์ตัวแรกที่จะต้องใช้ใน EA ชุดนี้คือ เส้น Moving Average หรือที่เรียกสั้นๆ ว้าเส้น MA โดยค่าที่ใช้ใน EA ชุดนี้ คือ เส้น MA 100 ค่า MA method เป็นแบบ Simple และ Apply to Close โดยเวลาเขียนคำสั่งภาษา MQL4 ของ Mata Trader 4อ่านค่ามาใช้ใน EA ขะใช้จะใช้คำสั่ง iMA() ซึ่งมีรูปcบบคำสั่งดังนี้

double  iMA(
        string       symbol                 // symbol
        int            timeframe,              // timeframe
        int            ma_period            // MA averaging period
        int            ma_shift,                // MA shift
        int            ma_method,           // averaging method
        int            applied_price,        // applied price
        int            shift                       //  shift
   );

โดยที่
symbol หมายถึง
ชื่อคู่เงินหรือสินทรัพย์ (String) ที่จะมาคำนวณหาค่า Moving Average ถ้าต้องการใช้คู่เงินหรือสินทรัพย์ที่ปรากฏอยู่บนหน้าจอกราฟของ MT4 ในขณะนั้น จะใส่ค่าเป็น NULL
timeframe หมายถึง กรอบเวลาที่ต้องการวัดค่า MA
ma_period หมายถึง คาบเวลาที่ต้องการหาค่า MA
ma_shift หมายถึง ค่าเยื้องคาบเวลาโดยปรกติจะใส่ค่าเป็น 0
ma_method หมายถึง
วิธีการคำนวนหาค่า MA มี 4 แบบ คือ Simple (SMA), Exponential (EMA), Smoothed (SMMA) และ Linear Weighted(LWMA)
applied_price หมายถึง
กำหนดให้ใช้ค่าใดจากแท่งราคามาในการนวนค่า MA มี 9 ค่า เช่น High, Open, Close, Low, ฯลฯ
shift หมายถึง
แท่งราคาเริ่มต้นที่จะคำนวณค่า MA ปรกติจะใส่ค่าเป็น 0 ซึ่งหมายถึงเริ่มที่แท่งราคาปัจจุบัน


สำหรับค่า MA ที่เราจะอ่านขึ้นมาเพื่อใช้ใน EA ชุดนี้ ชุดคำสั่งที่เราจะใช้ สามารถเขียนได้ดังนี้

MA100 = iMA(NULL, PERIOD_CURRENT, 100, 0, MODE_SMA, PRICE_CLOSE, 0);

หมายเหตุ
ชุดคำสั่งข้างต้น จะทำหน้าที่คำคำนวณค่าอินดิเคเตอร์ตามที่กำหนด มาเก็บไว้ในตัวแปรเพื่อไว้ใช้ในการดำเนินงานของ EA ชุดคำสั่งดังกล่าวจะไม่ได้วาดรูปร่างชองของอินดิเคเตอร์บนหน้าจอกราฟของ MT4


Bollinger Band (BB10)



Bollinger Band เป็นอินดิเคเตอร์อีกตัวหนึ่งที่ถูกนำมาใช้ใน EA ชุดนี้ โโยอาสัยคุณสมบัติของ Bollinger Band ที่เส้นกลางคือเส้น Moveing Average และมีเส้นกรอบแสดงขอบเขตการเคลื่อนของราคา และความหนาแน่นของการซื้อ/ขาย ใน EA ชุดนี้ จะกำหนดค่า Period เท่ากับ 10 และ ค่า Deviations เท่ากับ 2 ใน EA ชุดนี้ จะใช้เส้นกลางของ Bollinger Band ร่วมกับ MA100 ในการบอกทิศทาง (Trend) ของราคา ใช้เปรียบเทียบเส้นกลางที่แท่งราคาปัจจุบันกับที่แท่งราคาย้อนหลัง 5 แท่งเพื่อบอกทิศทางของราคาว่าขึ้นหรือลง และใช้เส้นขอบของ Bollinger Band สังเกตุการกลับตัว สำหรับชุดคำสั่ง MQL4 สำหรับอ่านค่าต่างๆ ของ Bollinger Band ได้แก้คำสั่ง iBands() ซึ่งมีรูปบบคำสั่งดังนี้

double  iBands(
          string          symbol              // symbol
          int               timeframe         // timeframe
          int               period,                // averaging period
          double        deviation           // standard deviations
          int               bands_shift,        // bands shift
          int               applied_price,    // applied price
          int               mode                // line index
          int               shift                   // shift
     );

โดยที่

deviation หมายถึง ค่า deviation ของ Bollinger Band ปรกติจะมีค่าเป็น 2
bands_shift หมายถึง
ค่าเยื้องหรือแท่งราคาที่จะให้เริ่มสร้างเส้นขอบของ Bollinger Band ปรกติจะมีค่าเป็น 0 คือเริ่มจากแท่งราคาปัจจุบัน
mode
หมายถึง
ค่าที่ต้องการจากคำสั่ง iBands() ซึ่งมีอยู่ด้วยกัน 3 ค่า คือ 0 – MODE_MAIN หมายถึง เส้นกลาง , 1 – MODE_UPPER หมายถึง เส้นขอบบน, และ 2 – MODE_LOWER หมายถึง เส้นขอบล่าง

สำหรับคำสั่งที่ใช้ใน EA ชุดนี้ คือการอ่านค่า เส้นกลางของ Bollinger Band ที่แท่งราคาย้อนหลังไป 5 แท่งนับจากแท่งราคาปัจจุบัน ชุดคำสั่งที่ใช้คือ

เส้นกลางBBก่อนหน้า5แท่ง = iBands(NULL, PERIOD_CURRENT, 12, 2, 0, PRICE_CLOSE,MODE_MAIN, 4);

ส่วนการอ่านค่าต่างๆ ของ Bollinger Bands ที่ต้องใช้ทั้งค่า เส้นกลาง, เส้นขอบบน และเส้นขอบล่างจะใช้ชุดคำสั่ง ดังนี้

      ขอบบนBB=iBands(NULL, PERIOD_CURRENT, 10, 2, 0, PRICE_CLOSE, MODE_UPPER, 0);
      เส้นกลางBB=iBands(NULL, PERIOD_CURRENT, 10, 2, 0, PRICE_CLOSE, MODE_MAIN,0);
      ขอบล่างBB=iBands(NULL, PERIOD_CURRENT, 10, 2, 0, PRICE_CLOSE, MODE_LOWER, 0);

Fractals


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

ใน EA ชุดนี้จะทำการตรวจสอบหา Fractal ที่อยู่ใกล้ราคาปัจจุบันมากที่สุด วิธีการก็คือ เราจะกำหนดตัวแปรขึ้นมา 2 ชุด สำหรับเก็บค่า Fractal ที่แท่งราคามีหัวลูกศรของ Fractal ชี้ขึ้น และอีกตัวหนึ่งเก็บค่า Fractal ของแท่งราคาที่มีหัวลูกศรของ Fractal ชี้ลง โดยกำหนดค่าเริ่มต้นเป็น 0 แล้วใช้คำสั่ง  iFractals() ของ MQL4 ทำการตรวจสอบแท่งราคาจากปัจจุบันและไล่ย้อนหลังจนกว่าจะเจอแท่งที่เกิด Fractal คำสั่งดังกล่าจะนำค่าซึ่งก็คือ ราคาสูงสุดหรือราคาต่ำสุดของแท่งที่เจอ Fractal เวลานำไปใช้เราจะตรวจสอบค่าตัวแปรตัวใดไม่เท่ากับ 0 ซึ่งตัว EA จะไม่เปิดคำสั่งซื้อขายในทิศทางของลูกศร Fractal และจะไม่เปิดคำสั่งซื้อ/ขายหากตัวแปรเก็บค่า Fractal ทั้งสองไม่เท่ากับ 0 เหมือนกัน ซึ่งแสดงว่าตลาดยังไม่เลือกทางว่าจะขึ้นหรือจะลง สำหรับรูปของชุดคำสั่ง iFractals มีดังนี้

double  iFractals(
               string       symbol,              // symbol
                 int          timeframe,         // timeframe
                 int          mode                // line index
                 int          shift                    // shift
        );

โดยที่

mode หมายถึง สัญลักษณ์กำกับว่า จะให้คำสั่ง iFractals() แสดงค่าใดออกมาซึ่งมี 2 แบบ คือ 1=MODE_UPPER และ 2= MODE_LOWER


สำหรับชุดคำสั่งในการหาและอ่่านค่า Fractals ใน EA ชุดนี้มีดังนี้

      //หา Fractal ล่าสุด
      ตำแหน่งแท่งเทียนที่เจอFractalUP = 0;
      FractalUP = 0;
      while (FractalUP == 0)
      {
         FractalUP = iFractals(NULL, PERIOD_CURRENT, MODE_UPPER, ตำแหน่งแท่งเทียนที่เจอFractalUP);
         ตำแหน่งแท่งเทียนที่เจอFractalUP++;
      }
      
      ตำแหน่งแท่งเทียนที่เจอFractalDOWN = 0;
      FractalDOWN = 0;
      while (FractalDOWN == 0)
      {
         FractalDOWN = iFractals(NULL, PERIOD_CURRENT, MODE_LOWER, ตำแหน่งแท่งเทียนที่เจอFractalDOWN);
         ตำแหน่งแท่งเทียนที่เจอFractalDOWN++;
      }

Parabolic SAR



Parabolic SAR เป็นอินดิเคเตอร์ใช้บอกทิศทางการซื้อ/ขายหรือเทรนของตลาด โดย Parabolic SAR จะแสดงสัญลักษณ์จุดสีใต้แท่งราคา หากราคากำลังอยู่ในฝั่งขาขึ้น และแสดงจุดสีเหนือแท่งราคา หาราคากำลังอยู่ในฝั่งขาลง สำหรับใน EA ชุดนี้จะใช้ Parabolic SAR ในการยืนยันเทรนหรือทิศทางของราคา โดยใช้ค่าปริยาย ซึ่งเราสามารถอ่านค่า Parabolic SAR ด้วยคำสั่ง iSAR() ของ MQL4 โดยมีรูปแบบชุดคำสั่งดังนี้

double  iSAR(
          string       symbol,              // symbol
            int          timeframe,         // timeframe
        double       step,                   // price increment step - acceleration factor
        double       maximum,         /maximum value of step
           int          shift                    // shift
     );

โดยที่

step หมายถึง จำนวนราคาที่ขยับในการคำนวณแต่ละครั้ง ปรกติจะใส่ค่าเป็น 0.02
maximum หมายถึง จำนวนราคาที่ขยับได้สูงสุดต่อการคำนวณแต่ละครั้งปรกติจะใส่ค่าเป็น 0.2


สำหรับชุดคำสั่งในการอ่านค่า Parabolic SAR ใน EA ชุดนี้มีดังนี้

PSAR = iSAR(NULL, PERIOD_CURRENT, 0.02, 0.2, 0);

MACD



MACD เป็นอินดิเคเตอร์ที่มีคนนิยมใช้ในการทำนายทิศทางของราคา สำหรับใน EA ชุดนี้จะใช้ MACD ใน ลักษณะ คือ ใช้การยืนยันเทรน และยืนยันทิศทางการเคลื่อนของราคาว่าชี้ขึ้นหรือชี้ลง โดยใช้ค่าปริยาย คือ 12, 26 และ 9
โดยในกรณีแรก จะใช้หลักการตัดกันของเส้นสัญญาณกับแท่งฮิสโตแกรมของ MACD ในกรณีที่ ฮิสโตแกรมอยู่เหนือเส้นสัญญาณ จะถือว่าเป็นเทรนขาขึ้น แต่ถ้าฮิสโตรแกรมต่ำกว่าเส้นสัญญาณจะถือว่าเป็นเทรนขาลง 
ส่วนในกรณีที่สอง จะใช้การเปรียบเทียบฮิสโตแกรมแท่งปัจจุบันกับแท่งก่อนหน้า 
ดังนั้นค่าที่จะต้องอ่านออกมาจะมี 3 ค่า โดยในภาษา MQL4 จะใช้คำสั่ง iMACD() ซึ่งมีรูปแบบชุดคำสั่งดังนี้

double  iMACD(
             string       symbol                      // symbol
               int          timeframe,                  // timeframe
               int          fast_ema_period      // Fast EMA period
               int          slow_ema_period     // Slow EMA period
               int          signal_period,             // Signal line period
               int          applied_price           // applied price
               int          mode                        // line index
               int          shift                            // shift
   );

โดยที่

fast_ema_period หมายถึง ค่าเส้น EMA วิ่งเร็ว
slow_ema_period หมายถึง ค่าเส้น EMA วิ่งช้า
mode หมายถึง ค่าที่ต้องการหาจากคำสั่ง iMACD() มี 2 ค่า (0-MODE_MAIN, 1-MODE_SIGNAL)

ชุดคำสั่งที่ใช้ใน EA ชุดนี้มีดังนี้

      //อ่านค่า MACD
      MACD = iMACD(NULL, PERIOD_CURRENT, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 0);
      MACD_แท่งก่อนหน้า = iMACD(NULL, PERIOD_CURRENT, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1);
      MACD_Signal = iMACD(NULL, PERIOD_CURRENT, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, 0);

RSI


RSI เป็นอินดิเคเตอร์ที่ใช้บอกปริมาณการซื้อขาย โดยใน EA ชุดนี้ จะใช้ค่าปริยายคือ 14 โดยจะใน 2 ลักษณะ คือใช้ดูเขตซื้อมากเกินไป (> 83) หรือโซนขายมากเกิน (<27) และใช้ดูทิศทางการซื้อ/ขาย (เทียบแท่งราคาแท่งก่อนกับแท่งปัจจุบัน) โดยชุดคำสั่งที่ใช้อ่านค่า RSI คือ คำสั่ง iRSI() โดยมีรูปแบบชุดคำสั่งดังนี้

double  iRSI(
       string       symbol           // symbol
        int          timeframe        // timeframe
        int          period               // period
        int          applied_price,    // applied price
        int          shift                    // shift
      );

สำหรับชุดคำสั่งที่ใช้ใน EA ชุดนี้ มีดังนี้

RSI = iRSI(NULL, PERIOD_CURRENT, 14,PRICE_CLOSE,0);

หมายเหตุ
จะสังเกตุเห็นว่า การใส่ค่าพารามิเตอร์ต่างๆ ในชุดคำสั่งที่ต้องการอ่านค่าจากอินดิเคเตอร์ต่างๆ ของภาษา MQL4 จะเป็นค่าเดียวกับการกำหนดค่าใน Properties ของ อินดิเคเตอร์บนหน้าจอกราฟของ MT4

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

เขียน 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

Adz2you.