MetaTrader4
Template Indikator Divergensi untuk MetaTrader 4
Bagaimana Template Ini Berfungsi? Template ini adalah indikator yang membantu anda memplot divergensi berdasarkan osilator pilihan anda. Bergantung pada osilator yang anda pilih (sama ada CCI, RSI, atau indikator khusus anda sendiri), anda boleh mengubah bahagian kod ini: /////////////////////////////////////////////
//Muat data indikator ke dalam buffer indikator
//Anda boleh menggantikan RSI dengan indikator lain yang anda suka
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);
}
//Tamat bahagian muat indikator
/////////////////////////////////////////////
Buffer Isyarat Indikator ini mempunyai empat buffer berbeza untuk menjejak isyarat yang dihasilkan. Terdapat isyarat setiap kali buffer yang berkenaan mempunyai nilai yang tidak kosong. SetIndexBuffer(3,bull_reg_divBuffer);
SetIndexBuffer(4,bear_reg_divBuffer);
SetIndexBuffer(5,bull_hid_divBuffer);
SetIndexBuffer(6,bear_hid_divBuffer); Bahagian Input input int pivots_period=5; //tempoh untuk mencari puncak indikator
input int alert_confirm_candles=1; //#lilin untuk pengesahan (0=matikan amaran)
Mencari puncak tinggi dan puncak rendah dalam indicatorBuffer bergantung kepada input pivots_period. Semakin besar nilai yang anda pilih, ia akan mencari ayunan yang lebih besar untuk kemungkinan divergensi. Input lain adalah alert_confirm_candles yang menentukan berapa banyak bar yang perlu ditunggu untuk mengesahkan isyarat. Indikator divergensi biasanya mempunyai kelewatan dan mengeluarkan banyak isyarat palsu. Semakin besar nilai yang anda pilih, ia akan menunggu lebih lama dan mengurangkan jumlah isyarat palsu. Ini adalah kompromi sama ada anda mahu isyarat tepat pada masanya atau yang telah disahkan. Secara umumnya, anda tidak dibenarkan untuk menetapkan pivots_period kepada nilai yang < 2. Isu Repaint Indikator yang bergantung kepada pengiraan puncak perlu menunggu selama pivots_period untuk mendapatkan pengesahan puncak/rendah terkini. Oleh itu, indikator ini perlu mengubah semula isyarat sejauh pivots_period ke belakang dalam masa. 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