Divergenzen Template Indikator für MetaTrader 4: Eine Einführung

Mike 2024.03.10 23:41 16 0 0
Anhang

DivEurusd

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);
   }
    Liste
    Kommentar 0