การใช้ 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

HFM Market 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 จะช่วยให้นักเทรดสามารถตัดสินใจได้อย่างมีประสิทธิภาพมากขึ้นในระยะยาว

FOREXDUCK Logo

FOREXDUCK (นามปากกา) นักเขียนของเรามีประสบการณ์การเงินการลงทุนกว่า 10 ปี มีความเชี่ยวชาญในการวิเคราะห์ตลาด Forex และคริปโต โดยเฉพาะการวิเคราะห์ทางเทคนิค รวมถึงเทคนิคต่าง

HFM Promotion