MetaTrader4
Divergenzen Template Indikator für MetaTrader 4: Eine Einführung
Wie funktioniert das Template? Dieser Indikator bietet ein Template, das verwendet werden kann, um Divergenzen basierend auf deinem gewünschten Oszillator zu plotten. Je nachdem, welchen Oszillator du wählst (ob CCI, RSI oder sogar deinen eigenen benutzerdefinierten Indikator), kannst du diesen Teil des Codes anpassen: /////////////////////////////////////////////
//Daten des Indikators in den Indikator-Puffer laden
//Du kannst RSI leicht durch jeden gewünschten Indikator ersetzen
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);
}
//Ende des Ladeteils
/////////////////////////////////////////////
Signal-Puffer Dieser Indikator hat vier verschiedene Puffer, um die generierten Signale im Auge zu behalten. Es gibt ein Signal, wann immer der entsprechende Puffer einen nicht leeren Wert hat. SetIndexBuffer(3,bull_reg_divBuffer);
SetIndexBuffer(4,bear_reg_divBuffer);
SetIndexBuffer(5,bull_hid_divBuffer);
SetIndexBuffer(6,bear_hid_divBuffer);
Parameter-Bereich input int pivots_period=5; //Periode zur Bestimmung der Indikator-Pivots
input int alert_confirm_candles=1; //#Kerzen zur Bestätigung (0=Benachrichtigung deaktivieren)
Das Finden von Pivot-Hochs und Pivot-Lows im indicatorBuffer hängt von der Eingabe pivots_period ab. Je größer du diesen Wert wählst, desto größere Schwankungen werden auf mögliche Divergenzen untersucht. Ein weiterer Parameter ist alert_confirm_candles, der definiert, wie viele Kerzen gewartet werden sollen, um ein Signal zu bestätigen. Divergenz-Indikatoren sind meist verzögert und erzeugen viele falsche Signale. Je höher du diesen Wert wählst, desto länger wird gewartet, und die Anzahl der falschen Signale wird reduziert. Es ist ein Kompromiss, ob du zeitnahe Signale oder bestätigte Signale möchtest. Normalerweise darfst du pivots_period nicht kleiner als 2 einstellen. Repaint-Problem Indikatoren, die auf Pivot-Berechnungen beruhen, müssen so lange warten wie pivots_period, um eine Bestätigung des aktuellen Hochs/Tiefs zu erhalten. Daher muss dieser Indikator Signale bis zu pivots_period zurück in der Zeit repainten. 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