การใช้ Candlestick pattern

IUX Markets Bonus

ตัวอย่างการใช้ Candlestick pattern ในการตัดสินใจ

Candlestick pattern เป็นเครื่องมือที่มีประสิทธิภาพในการวิเคราะห์ตลาดและสร้างสัญญาณเทรด โดยอาศัยการวิเคราะห์รูปแบบของแท่งเทียนที่เกิดขึ้น ซึ่งสามารถบ่งบอกถึงการเปลี่ยนแปลงของแรงซื้อขายและแนวโน้มของตลาดได้

การใช้ candlestick ตัดสินใจ
การใช้ candlestick ตัดสินใจ

1. พื้นฐานของ Candlestick

ก่อนที่จะเริ่มวิเคราะห์ pattern ต่างๆ เราต้องเข้าใจองค์ประกอบพื้นฐานของแท่งเทียนก่อน:

 


struct CandleComponents {
    double body;
    double upperWick;
    double lowerWick;
    bool isBullish;
};

CandleComponents GetCandleComponents(int shift = 0)
{
    CandleComponents candle;
    
    candle.body = MathAbs(Close[shift] - Open[shift]);
    candle.upperWick = High[shift] - MathMax(Close[shift], Open[shift]);
    candle.lowerWick = MathMin(Close[shift], Open[shift]) - Low[shift];
    candle.isBullish = Close[shift] > Open[shift];
    
    return candle;
}


 

2. รูปแบบ Candlestick ที่นิยมใช้

2.1 Doji

Doji เป็นแท่งเทียนที่มี body เล็กมาก แสดงถึงความไม่แน่นอนในตลาด

 



bool IsDoji(int shift = 0, double threshold = 0.05)
{
    CandleComponents candle = GetCandleComponents(shift);
    double totalSize = candle.body + candle.upperWick + candle.lowerWick;
    
    return (candle.body / totalSize) < threshold;
}

2.2 Hammer และ Hanging Man

 YWO Promotion

Hammer และ Hanging Man เป็น pattern ที่มี lower wick ยาว และ body เล็ก อยู่ด้านบนของแท่ง

 


bool IsHammerOrHangingMan(int shift = 0)
{
    CandleComponents candle = GetCandleComponents(shift);
    double totalSize = candle.body + candle.upperWick + candle.lowerWick;
    
    return (candle.lowerWick / totalSize > 0.6) && (candle.body / totalSize < 0.3) && (candle.upperWick / totalSize < 0.1);
}


2.3 Engulfing Pattern

Engulfing Pattern เกิดจากแท่งเทียนที่ “กลืน” แท่งก่อนหน้าทั้งหมด

 



int IsEngulfing(int shift = 1)
{
    if (Close[shift] > Open[shift] && Open[shift-1] > Close[shift-1] &&
        Open[shift] < Close[shift-1] && Close[shift] > Open[shift-1])
        return 1;  // Bullish Engulfing
    
    if (Open[shift] > Close[shift] && Close[shift-1] > Open[shift-1] &&
        Close[shift] < Open[shift-1] && Open[shift] > Close[shift-1])
        return -1;  // Bearish Engulfing
    
    return 0;  // Not Engulfing
}

2.4 Morning Star และ Evening Star

Morning Star และ Evening Star เป็น pattern ที่ประกอบด้วย 3 แท่งเทียน แสดงถึงการเปลี่ยนแปลงแนวโน้ม

 


int IsMorningOrEveningStar(int shift = 2)
{
    CandleComponents candle1 = GetCandleComponents(shift);
    CandleComponents candle2 = GetCandleComponents(shift-1);
    CandleComponents candle3 = GetCandleComponents(shift-2);
    
    bool isMorningStar = !candle1.isBullish && candle3.isBullish &&
                         candle2.body < candle1.body && candle2.body < candle3.body && Close[shift-2] > Open[shift];
    
    bool isEveningStar = candle1.isBullish && !candle3.isBullish &&
                         candle2.body < candle1.body && candle2.body < candle3.body &&
                         Close[shift-2] < Open[shift];
    
    if (isMorningStar) return 1;
    if (isEveningStar) return -1;
    return 0;
}


3. การใช้ Candlestick Pattern ในการตัดสินใจเทรด

การใช้ Candlestick Pattern ในการตัดสินใจเทรดควรพิจารณาร่วมกับปัจจัยอื่นๆ เช่น แนวโน้มของตลาด, แนวรับแนวต้าน, และ volume ต่อไปนี้เป็นตัวอย่างการใช้ Candlestick Pattern ร่วมกับการวิเคราะห์แนวโน้ม:

 



int CandlestickTradingDecision()
{
    int trend = IdentifyTrend();  // ฟังก์ชันที่ใช้ระบุแนวโน้มของตลาด (ต้องเขียนแยก)
    
    if (trend == 1)  // แนวโน้มขาขึ้น
    {
        if (IsHammerOrHangingMan(1) || IsEngulfing(1) == 1 || IsMorningOrEveningStar(2) == 1)
            return 1;  // สัญญาณซื้อ
    }
    else if (trend == -1)  // แนวโน้มขาลง
    {
        if (IsHammerOrHangingMan(1) || IsEngulfing(1) == -1 || IsMorningOrEveningStar(2) == -1)
            return -1;  // สัญญาณขาย
    }
    
    if (IsDoji(1))
        return 0;  // สัญญาณไม่แน่นอน, อาจรอดูสถานการณ์ต่อ
    
    return 0;  // ไม่มีสัญญาณชัดเจน
}

4. การใช้งานในระบบเทรดอัตโนมัติ

ในการใช้ Candlestick Pattern ในระบบเทรดอัตโนมัติ เราสามารถนำฟังก์ชัน CandlestickTradingDecision() มาใช้ใน OnTick() ของ EA ได้ดังนี้:

 



void OnTick()
{
    if (Volume[0] > 1) return;  // ป้องกันการทำงานซ้ำในแท่งเดียวกัน
    
    int signal = CandlestickTradingDecision();
    
    if (signal == 1 && OrdersTotal() == 0)
    {
        // เปิดออเดอร์ Buy
        double stopLoss = Low[1];  // ใช้ Low ของแท่งก่อนหน้าเป็น Stop Loss
        double takeProfit = Ask + (Ask - stopLoss) * 2;  // Risk:Reward = 1:2
        OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, stopLoss, takeProfit, "Candlestick EA", 0, 0, clrGreen);
    }
    else if (signal == -1 && OrdersTotal() == 0)
    {
        // เปิดออเดอร์ Sell
        double stopLoss = High[1];  // ใช้ High ของแท่งก่อนหน้าเป็น Stop Loss
        double takeProfit = Bid - (stopLoss - Bid) * 2;  // Risk:Reward = 1:2
        OrderSend(Symbol(), OP_SELL, 0.1, Bid, 3, stopLoss, takeProfit, "Candlestick EA", 0, 0, clrRed);
    }
}

5. ข้อควรระวังในการใช้ Candlestick Pattern

  1. False Signals: Candlestick Pattern อาจให้สัญญาณหลอกได้ โดยเฉพาะในตลาดที่มีความผันผวนสูง
  2. Context Matters: ควรพิจารณา Pattern ร่วมกับบริบทของตลาด เช่น แนวโน้ม, แนวรับแนวต้าน, และ volume
  3. Timeframe Sensitivity: Pattern อาจให้ผลลัพธ์ที่แตกต่างกันในTimeframeต่างๆ
  4. Confirmation: ควรรอการยืนยันจากแท่งเทียนถัดไปก่อนตัดสินใจเทรด
  5. Combination: การใช้ Candlestick Pattern ร่วมกับเครื่องมือวิเคราะห์ทางเทคนิคอื่นๆ จะช่วยเพิ่มความแม่นยำในการตัดสินใจ

สรุป

การใช้ Candlestick Pattern ในการตัดสินใจเทรดเป็นวิธีที่มีประสิทธิภาพในการวิเคราะห์ตลาดและสร้างสัญญาณเทรด อย่างไรก็ตาม ควรใช้ร่วมกับการวิเคราะห์ปัจจัยอื่นๆ และทำการทดสอบย้อนหลังอย่างละเอียดก่อนนำไปใช้จริง การพัฒนาทักษะในการอ่านและตีความ Candlestick Pattern จะช่วยให้นักเทรดสามารถตัดสินใจได้อย่างมีประสิทธิภาพมากขึ้นในระยะยาว

 Exness Promotion
PNFPB Install PWA using share icon

For IOS and IPAD browsers, Install PWA using add to home screen in ios safari browser or add to dock option in macos safari browser