MetaTrader4
เทมเพลต Divergences Indicator สำหรับ MetaTrader 4: สัญญาณที่คุณไม่ควรพลาด
เทมเพลตนี้ทำงานอย่างไร? Indicator ตัวนี้จะช่วยให้คุณสร้างเทมเพลตสำหรับการวิเคราะห์ Divergence โดยอิงจาก oscillator ที่คุณเลือกใช้งาน ไม่ว่าจะเป็น CCI, RSI หรือ Indicator ที่คุณสร้างเอง คุณสามารถปรับเปลี่ยนโค้ดในส่วนนี้ได้: /////////////////////////////////////////////
//โหลดข้อมูล indicator ลงใน buffer
//คุณสามารถเปลี่ยน RSI เป็น indicator ตัวอื่นที่คุณต้องการได้
int BARS=MathMax(rates_total-IndicatorCounted()-pivots_period,1);
for(int i=BARS;i>=0;i--)
{
indicatorBuffer[i]=iRSI(_Symbol, PERIOD_CURRENT, 14, PRICE_CLOSE, i);
}
//จบการโหลดข้อมูล indicator
/////////////////////////////////////////////
สัญญาณที่สร้างขึ้น Indicator นี้มี buffer ที่ใช้ในการติดตามสัญญาณสี่ตัวดังต่อไปนี้ โดยจะมีสัญญาณเกิดขึ้นเมื่อ buffer ที่เกี่ยวข้องมีค่าที่ไม่ว่างเปล่า SetIndexBuffer(3,bull_reg_divBuffer);
SetIndexBuffer(4,bear_reg_divBuffer);
SetIndexBuffer(5,bull_hid_divBuffer);
SetIndexBuffer(6,bear_hid_divBuffer); ส่วนการตั้งค่า input int pivots_period=5; //ระยะเวลาที่ใช้ในการหาจุด pivot
input int alert_confirm_candles=1; //#แท่งเทียนสำหรับการยืนยัน (0=ปิดการแจ้งเตือน)
การหาจุด pivot highs และ pivot lows ใน indicatorBuffer ขึ้นอยู่กับการตั้งค่า pivots_period ที่คุณเลือก ถ้าคุณเลือกค่าที่ใหญ่ขึ้น มันจะค้นหาสวิงที่ใหญ่ขึ้นสำหรับ Divergence ที่เป็นไปได้ อีกหนึ่งค่าคือ alert_confirm_candles ที่กำหนดจำนวนแท่งเทียนที่ต้องรอเพื่อยืนยันสัญญาณ โดยทั่วไปแล้ว Indicator Divergence มักจะมีความล่าช้าและอาจสร้างสัญญาณเท็จมากมาย การเลือกค่าที่ใหญ่ขึ้นจะทำให้คุณรอนานขึ้นและลดจำนวนสัญญาณเท็จ แต่ก็เป็นการแลกเปลี่ยนระหว่างการได้รับสัญญาณทันทีหรือการได้รับสัญญาณที่ยืนยันแล้ว โดยทั่วไปแล้วคุณจะไม่สามารถใช้ pivots_period ที่น้อยกว่า 2 ได้ ปัญหา Repaint Indicators ที่อิงจากการคำนวณ pivot จะต้องรอจนกว่า pivots_period จะได้การยืนยันจาก high/low ล่าสุด ดังนั้น Indicator นี้จึงต้องมีการรีเพนต์สัญญาณย้อนหลังตาม pivots_period BARS=MathMax(rates_total-IndicatorCounted()-pivots_period,pivots_period);
for(int i=BARS;i>=0;i--)
{
PHBuffer[i]=pivothigh(indicatorBuffer, pivots_period, pivots_period, i);
PLBuffer[i]=pivotlow(indicatorBuffer, pivots_period, pivots_period, i);
bull_reg_divBuffer[i]=BullRegDiv(i);
bear_reg_divBuffer[i]=BearRegDiv(i);
bull_hid_divBuffer[i]=BullHidDiv(i);
bear_hid_divBuffer[i]=BearHidDiv(i);
}
2024.03.10