Funktionen für die Arbeit mit technischen Indikatoren

Alle Funktionen wie iMA, iAC, iMACD, iIchimoku usw. erzeugen im globalen cache des Kundenterminlas eine Kopie des entsprechenden Kundenindikators. Wenn eine Kopie des Indikators mit solchen Parametern schon existiert, wird eine neue Kopie nicht erzeugt, sondern Counter der Verweise an die vorgegebene Kopie steigt.

Diese Funktionen geben handle der entsprechenden Kopie des Indikators zurück. Im weiteren können Sie durch Verwendung dieses Handles Daten bekommen, die vom entsprechenden Indikator berechnet werden. Daten des entsprechenden Puffers (technische Anzeiger haben berechnete Daten in ihren Innenpuffern, deren Anzahl abhängig vom Anzeiger von 1 bis 5 sein kann) können in mql5-Programm durch die Funktion CopyBuffer() kopiert werden.

Man kann nicht Daten des Indikators sofort nah seiner Erzeugung verwenden, denn man braucht einige Zeit für Berechnung der Indikatorwerte, darum ist es am besten Handles der Indikatoren in OnInit() zu erzeugen. Funktion iCustom() erzeugt entsprechenden Benutzerindikator und bei der erfolgreichen Erzeugung gibt sein handle zurück.  Benutzerindikatoren können bis 512 Indikatorbuffer haben, den Inhalt durch die Funktion CopyBuffer() erhalten werden kann mit der Verwendung von handle.

Es gibt eine universelle Methode, durch die Funktion durch die Funktion IndicatorCreate() jeden technischen Indikator zu erzeugen. Als Eingabeparameter bekommt diese Funktion:

  • Symbolname;
  • Timeframe;
  • Typ des erzeugten Indikators;
  • Anzahl der Eingabeparameter des Indikators;
  • Feld des Typs MqlParam, mit allen erforderlichen Eingabeparametern.

für die Befreiung des Speichers des Computers wird die Funktion IndicatorRelease() verwendet, der handle dieses Indikators übertragen wird.

Bemerkung. Wiederholter Aufruf der Funktion des Indikators mit denselben Parametern führt nicht zu vielfachen Steigerung des Counters der Verweise, Counter wird nur einmal um 1 vergroessert. Es ist aber empfehlenswert, handles der Indikatoren in der Funktion OnInit() oder im Konstruktor der Klasse zu bekommen, und dann diese handles in anderen Funktionen zu verwenden.

Alle Indikatoren haben mindestens 2 Parameter - Symbol und Periode. Wert des Symbols NULL bedeutet das laufende Instrument, Wert der Periode 0 bedeutet das laufende Timeframe.

Funktion

Gibt handle des Indikators zurück:

iAC

Accelerator Oscillator

iAD

Accumulation/Distribution

iADX

Average Directional Index

iADXWilder

Average Directional Index by Welles Wilder

iAlligator

Alligator

iAMA

Adaptive Moving Average

iAO

Awesome Oscillator

iATR

Average True Range

iBearsPower

Bears Power

iBands

Bollinger Bands®

iBullsPower

Bulls Power

iCCI

Commodity Channel Index

iChaikin

Chaikin Oscillator

iCustom

Benutzerindikator  

iDEMA

Double Exponential Moving Average

iDeMarker

DeMarker

iEnvelopes

Envelopes

iForce

Force Index

iFractals

Fractals

iFrAMA

Fractal Adaptive Moving Average

iGator

Gator Oscillator

iIchimoku

Ichimoku Kinko Hyo

iBWMFI

Market Facilitation Index by Bill Williams

iMomentum

Momentum

iMFI

Money Flow Index

iMA

Moving Average

iOsMA

Moving Average of Oscillator (MACD histogram)

iMACD

Moving Averages Convergence-Divergence

iOBV

On Balance Volume

iSAR

Parabolic Stop And Reverse System

iRSI

Relative Strength Index

iRVI

Relative Vigor Index

iStdDev

Standard Deviation

iStochastic

Stochastic Oscillator

iTEMA

Triple Exponential Moving Average

iTriX

Triple Exponential Moving Averages Oscillator

iWPR

Williams' Percent Range

iVIDyA

Variable Index Dynamic Average

iVolumes

Volumes