Eigenschaften der Benutzeranzeiger

Zahl der Indikatorpuffer, die im Benutzerindikator verwendet werden können ist unbegrenzt. Aber es ist notwendig, für jedes Feld, das als Indikatorpuffer durch die Funktion SetIndexBuffer() zugeordnet wird, muss der Datentyp angegeben werden, den es aufbewahren wird. Das kann einer der Werte der Enumeration ENUM_INDEXBUFFER_TYPE sein.

ENUM_INDEXBUFFER_TYPE

Identifikator

Beschreibung

INDICATOR_DATA

Angaben für Zeichnen

INDICATOR_COLOR_INDEX

Farbe

INDICATOR_CALCULATIONS

Hilfspuffer für Zwischenberechnungen

Benutzerindikator hat viele Einstellungen für Darstellung und Erfassen. Diese Einstellungen werden durch Festlegung der entsprechenden Funktionen des Indikators durch die Funktionen IndicatorSetDouble(), IndicatorSetInteger() und IndicatorSetString() durchgeführt. Identifikatoren der Indikatoreigenschaften gibt es in Enumerationen  ENUM_CUSTOMIND_PROPERTY.

ENUM_CUSTOMIND_PROPERTY_INTEGER

Identifikator

Beschreibung

Typ der Eigenschaft

INDICATOR_DIGITS

Genauigkeit der Darstellung von Indikatorwerten

int

INDICATOR_HEIGHT

Feste Höhe von Indikators eigenen Fenster (Befehl von Preprozessor #property indicator_height)

int

INDICATOR_LEVELS

Anzahl der Levels im Indikatorfenster

int

INDICATOR_LEVELCOLOR

Farbe der Levellinie  

color                      Modifikator=Levelnummer

INDICATOR_LEVELSTYLE

Stil der Levellinie

ENUM_LINE_STYLE  Modifiaktor=Levelnummer

INDICATOR_LEVELWIDTH

Breite der Levellinie

int                         Modifikator=Levelnummer

INDICATOR_FIXED_MINIMUM

Festes Minimum für das Indikatorfenster. Die Eigenschaft kann nur von der Funktion IndicatorSetInteger() festgelegt werden.

bool

INDICATOR_FIXED_MAXIMUM

Festgelegter Höchstwert für das Indikatorfenster. Die Eigenschaft kann nur von der Funktion IndicatorSetInteger() festgelegt werden.

bool

ENUM_CUSTOMIND_PROPERTY_DOUBLE

Identifikator

Beschreibung

Typ der Eigenschaft

INDICATOR_MINIMUM

Minimum des Indikatorfensters

double

INDICATOR_MAXIMUM

Maximum des Indikatorfensters

double

INDICATOR_LEVELVALUE

Levelwert

double                    Modifikator=Levelnummer

ENUM_CUSTOMIND_PROPERTY_STRING

Identifikator

Beschreibung

Typ der Eigenschaft

INDICATOR_SHORTNAME

Kurzer Indikatorname

string

INDICATOR_LEVELTEXT

Levelbeschreibung

string                      Modifikator=Levelnummer

Beispiele:

//--- indicator settings
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_plots   2
#property indicator_type1   DRAW_LINE
#property indicator_type2   DRAW_LINE
#property indicator_color1  clrLightSeaGreen
#property indicator_color2  clrRed
//--- input parameters
extern int KPeriod=5;
extern int DPeriod=3;
extern int Slowing=3;
//--- indicator buffers
double MainBuffer[];
double SignalBuffer[];
double HighesBuffer[];
double LowesBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,MainBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,SignalBuffer,INDICATOR_DATA);
   SetIndexBuffer(2,HighesBuffer,INDICATOR_CALCULATIONS);
   SetIndexBuffer(3,LowesBuffer,INDICATOR_CALCULATIONS);
//--- set accuracy
   IndicatorSetInteger(INDICATOR_DIGITS,2);
//--- set levels
   IndicatorSetInteger(INDICATOR_LEVELS,2);
   IndicatorSetDouble(INDICATOR_LEVELVALUE,0,20);
   IndicatorSetDouble(INDICATOR_LEVELVALUE,1,80);
//--- set maximum and minimum for subwindow 
   IndicatorSetDouble(INDICATOR_MINIMUM,0);
   IndicatorSetDouble(INDICATOR_MAXIMUM,100);
//--- sets first bar from what index will be drawn
   PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,KPeriod+Slowing-2);
   PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,KPeriod+Slowing+DPeriod);
//--- set style STYLE_DOT for second line
   PlotIndexSetInteger(1,PLOT_LINE_STYLE,STYLE_DOT);
//--- name for DataWindow and indicator subwindow label
   IndicatorSetString(INDICATOR_SHORTNAME,"Stoch("+KPeriod+","+DPeriod+","+Slowing+")");
   PlotIndexSetString(0,PLOT_LABEL,"Main");
   PlotIndexSetString(1,PLOT_LABEL,"Signal");
//--- sets drawing line to empty value
   PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0);
   PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0.0);
//--- initialization done
  }