Startseite Technischer Indikator Beitrag

Stochastik mit Rauschunterdrückung – Indikator für MetaTrader 4

Anhang
9279.zip (2.09 KB, Herunterladen 0 mal)

Beschreibung:

Standard Stochastischer Oszillator mit Sensitivitätsfunktion.

Dieser Indikator hat die gleichen Parameter wie der Standard-Stochastik, jedoch gibt es einen zusätzlichen Parameter für die Sensitivität (Sens im Parameterfenster).

Dank dieses Parameters berücksichtigen wir nur Schwankungen, die unter einem festgelegten Schwellenwert liegen, der in Punkten angegeben wird. So können wir viele falsche Signale reduzieren.

Der klassische Lane-Stochastik ordnet den aktuellen Preis zwischen einem maximalen und einem minimalen Preis für eine bestimmte Anzahl von Kerzen zu, definiert durch den %K (Kperiod) Wert, und unterscheidet dabei nicht zwischen Extrempunkten – ob 1 Punkt oder 100 Punkte. In beiden Fällen erhält man die gleichen Ergebnisse und somit die Signale für Überkauft/Überverkauft.

Durch die Verwendung eines Schwellenwerts können wir jedoch nur signifikante Schwankungen berücksichtigen.

In Abbildung 1 (EURUSD, 1M) sind das Preischart, der Standard-Stochastik und der vorgeschlagene Indikator dargestellt.

Bild:

Abb. 1.

Das Indikatorfeld ist identisch mit dem von iStochastic, der Unterschied besteht darin, dass es einen zusätzlichen Parameter Sens – Sensitivität – gibt.

Die Ausgabepuffer sind die gleichen: 0 – der Stochastikwert selbst, 1 – die Signallinie.

double iCustom(string symbol, int timeframe, "_StochNR", int %Kperiod, int %Dperiod, 
int slowing, int method, int price_field, int mode, int shift); // StochNR fügt das neue SensFeld hinzu

double iStochastic(string symbol, int timeframe, int %Kperiod, int %Dperiod, 
int slowing, int method, int price_field, int mode, int shift) // standard stochastisch 

Für die praktische Anwendung kann dieser Indikator wie oben angegeben aufgerufen werden, aber es ist besser, es anders zu machen. Fügen Sie einfach etwas Code zu Ihrer Stoch-Funktion hinzu:

double Stoch(int Kperiod, int Slowing, int PriceFild, double sens, int i) {  
   // maximale und minimale Preise
   double max,min,c;
   for(int j=i; j<i+Slowing; j++) {
      if(PriceFild==1) { // nach Close
         max+=Close[ArrayMaximum(Close,Kperiod,j)];
         min+=Close[ArrayMinimum(Close,Kperiod,j)];
        }
      else { // nach High/Low
         max+=High[ArrayMaximum(High,Kperiod,j)];
         min+=Low[ArrayMinimum(Low,Kperiod,j)];
        }
      c+=Close[j];
     }
   
   double delta=max-min;
   if(delta<sens) {
      sens/=2;
      max+=sens; min-=sens;
     }
   delta=max-min;
   if(delta==0) double s0=1;
   else s0=(c-min)/delta;

   return(100*s0);
  }

Es ist klar, dass Sie, wenn Sie eine Signallinie benötigen, einen zusätzlichen gleitenden Durchschnitt des Wertes benötigen. Eine andere Möglichkeit ist, ihn aus dem 1. Buffer von iCustom zu holen, aber das wird langsam sein.

Wie Sie sehen, ist der Name jetzt informativer, da der Preisberechnungstyp angegeben ist. Wenn die Sensitivität größer als 0 definiert ist, wird ihr Wert zum Namen des Oszillators hinzugefügt.


Redaktioneller Hinweis:

Bitte beachten Sie, dass dies eine spiegelbildliche Übersetzung der originalen russischen Version ist.

Wenn Sie Fragen an den Autor haben, Vorschläge oder Kommentare, ist es besser, sie dort zu posten.

Wenn Sie diesen Code für den Handel oder zu Bildungszwecken nützlich fanden, vergessen Sie nicht, dem Autor zu danken.

Verwandte Beiträge

Kommentar (0)