ชุดคำสั่งสำหรับสร้างสัญญาณจาก Indicator Crossovers

IUX Markets Bonus

การสร้างสัญญาณจาก Indicator Crossovers

Indicator Crossovers เป็นวิธีที่นิยมใช้ในการสร้างสัญญาณเทรด โดยอาศัยการตัดกันของเส้น Indicator หรือการตัดผ่านค่าที่กำหนด ต่อไปนี้เป็นตัวอย่างชุดคำสั่งสำหรับสร้างสัญญาณจาก Indicator Crossovers ที่ใช้บ่อย:

indicator Cross Over
indicator Cross Over

1. Moving Average Crossover

การตัดกันของ Moving Average สองเส้นที่มีช่วงเวลาต่างกัน เป็นวิธีที่นิยมใช้ในการระบุแนวโน้มและสร้างสัญญาณเทรด

 



int MAcrossover(int fastPeriod, int slowPeriod)
{
    double fastMA = iMA(NULL, 0, fastPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);
    double slowMA = iMA(NULL, 0, slowPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);
    double prevFastMA = iMA(NULL, 0, fastPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);
    double prevSlowMA = iMA(NULL, 0, slowPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);
    
    if (prevFastMA <= prevSlowMA && fastMA > slowMA)
        return 1;  // สัญญาณซื้อ
    else if (prevFastMA >= prevSlowMA && fastMA < slowMA)
        return -1; // สัญญาณขาย
    
    return 0;  // ไม่มีสัญญาณ
}

วิธีใช้งาน:


int signal = MAcrossover(10, 30);
if (signal == 1)
    Print("สัญญาณซื้อจาก MA Crossover");
else if (signal == -1)
    Print("สัญญาณขายจาก MA Crossover");


 

2. MACD Crossover

MACD (Moving Average Convergence Divergence) เป็น Indicator ยอดนิยมที่ใช้การตัดกันของเส้น MACD และ Signal Line เพื่อสร้างสัญญาณเทรด

HFM Market Promotion

 


int MACDcrossover(int fastEMA, int slowEMA, int signalPeriod)
{
    double macd = iMACD(NULL, 0, fastEMA, slowEMA, signalPeriod, PRICE_CLOSE, MODE_MAIN, 0);
    double signal = iMACD(NULL, 0, fastEMA, slowEMA, signalPeriod, PRICE_CLOSE, MODE_SIGNAL, 0);
    double prevMACD = iMACD(NULL, 0, fastEMA, slowEMA, signalPeriod, PRICE_CLOSE, MODE_MAIN, 1);
    double prevSignal = iMACD(NULL, 0, fastEMA, slowEMA, signalPeriod, PRICE_CLOSE, MODE_SIGNAL, 1);
    
    if (prevMACD <= prevSignal && macd > signal)
        return 1;  // สัญญาณซื้อ
    else if (prevMACD >= prevSignal && macd < signal)
        return -1; // สัญญาณขาย
    
    return 0;  // ไม่มีสัญญาณ
}


วิธีใช้งาน:



int signal = MACDcrossover(12, 26, 9);
if (signal == 1)
    Print("สัญญาณซื้อจาก MACD Crossover");
else if (signal == -1)
    Print("สัญญาณขายจาก MACD Crossover");

 

3. Stochastic Crossover

Stochastic Oscillator ใช้การตัดกันของเส้น %K และ %D เพื่อสร้างสัญญาณเทรด โดยมักจะใช้ร่วมกับการพิจารณาสภาวะ Overbought และ Oversold

 


int StochasticCrossover(int kPeriod, int dPeriod, int slowing)
{
    double k = iStochastic(NULL, 0, kPeriod, dPeriod, slowing, MODE_SMA, 0, MODE_MAIN, 0);
    double d = iStochastic(NULL, 0, kPeriod, dPeriod, slowing, MODE_SMA, 0, MODE_SIGNAL, 0);
    double prevK = iStochastic(NULL, 0, kPeriod, dPeriod, slowing, MODE_SMA, 0, MODE_MAIN, 1);
    double prevD = iStochastic(NULL, 0, kPeriod, dPeriod, slowing, MODE_SMA, 0, MODE_SIGNAL, 1);
    
    if (prevK <= prevD && k > d && k < 20) return 1; // สัญญาณซื้อ (และอยู่ในสภาวะ Oversold) else if (prevK >= prevD && k < d && k > 80)
        return -1; // สัญญาณขาย (และอยู่ในสภาวะ Overbought)
    
    return 0;  // ไม่มีสัญญาณ
}


วิธีใช้งาน:



int signal = StochasticCrossover(5, 3, 3);
if (signal == 1)
    Print("สัญญาณซื้อจาก Stochastic Crossover");
else if (signal == -1)
    Print("สัญญาณขายจาก Stochastic Crossover");

 

4. การรวมสัญญาณจากหลาย Indicator

ในการสร้างระบบเทรดที่มีประสิทธิภาพ เราอาจใช้การรวมสัญญาณจากหลาย Indicator เพื่อยืนยันสัญญาณและลดความเสี่ยงของสัญญาณหลอก

 



int CombinedSignals()
{
    int maSignal = MAcrossover(10, 30);
    int macdSignal = MACDcrossover(12, 26, 9);
    int stochSignal = StochasticCrossover(5, 3, 3);
    
    // ต้องมีสัญญาณตรงกันอย่างน้อย 2 ใน 3
    if ((maSignal == 1 && macdSignal == 1) || (maSignal == 1 && stochSignal == 1) || (macdSignal == 1 && stochSignal == 1))
        return 1;  // สัญญาณซื้อ
    else if ((maSignal == -1 && macdSignal == -1) || (maSignal == -1 && stochSignal == -1) || (macdSignal == -1 && stochSignal == -1))
        return -1; // สัญญาณขาย
    
    return 0;  // ไม่มีสัญญาณหรือสัญญาณไม่ชัดเจน
}

 

วิธีใช้งาน:



int signal = CombinedSignals();
if (signal == 1)
    Print("สัญญาณซื้อที่ยืนยันจากหลาย Indicator");
else if (signal == -1)
    Print("สัญญาณขายที่ยืนยันจากหลาย Indicator");

 

การใช้ Indicator Crossovers เป็นวิธีที่นิยมในการสร้างสัญญาณเทรด อย่างไรก็ตาม ควรระมัดระวังในการใช้งาน เนื่องจาก:

  1. สัญญาณอาจเกิดขึ้นล่าช้ากว่าการเคลื่อนไหวของราคาจริง
  2. อาจเกิดสัญญาณหลอกในตลาดที่เคลื่อนไหวในกรอบแคบ
  3. ควรใช้ร่วมกับการวิเคราะห์ปัจจัยอื่นๆ เช่น แนวโน้มตลาด, วอลุ่มการซื้อขาย, และการวิเคราะห์ปัจจัยพื้นฐาน

การทดสอบย้อนหลังและการปรับแต่งพารามิเตอร์ให้เหมาะสมกับคู่สกุลเงินและTimeframeที่ต้องการเทรดเป็นสิ่งสำคัญในการพัฒนาระบบเทรดที่มีประสิทธิภาพ

FOREXDUCK Logo

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

HFM Promotion