Zeichnungsstile

Bei Erzeugung der Benutzerindikatoren kann einer der 18 Typen der graphischen Konstruktion (Darstellungsart im Hauptfenster des Charts oder im Subfenster des Charts)angegeben werden, dessen Werte in der Enumeration ENUM_DRAW_TYPE spezifiziert werden.

Es ist zulaessig, in einem Benutzerindikator beliebige Arten der Konstruktion/Zeichnung der Indikatoren zu verwenden. Für jeden Konstruktionstyp muss von 1 bis 5 globale Felder für Datenspeicherung angegeben werden, die für die Zeichnung erforderlich sind. Diese Datenfelder muessen mit Indikatorpuffern durch die Funktion SetIndexBuffer() verbunden werden, und für jeden Puffer muss der Datentyp von der Enumeration ENUM_INDEXBUFFER_TYPE angegeben werden.

Abhängig vom Zeichnungsstil können Sie von 1 bis 4 Wertpuffer brauchen (vermerkt als INDICATOR_DATA), wenn der dynamische Farbenwechsel vom Stil zugelaeest wird (aale Stile mit dem Wort COLOR im Namen), braucht man auch einen Farbenpuffer (angegeben Typ INDICATOR_COLOR_INDEX). Farbenpuffer wird immer gebunden nach den dem Stil entsprechenden  Wertpuffern.

ENUM_DRAW_TYPE

Identifikator

Beschreibung

Werte der Puffer

Farbe der Puffer

DRAW_NONE

Nicht gezeichnet

1

0

DRAW_LINE

Linie

1

0

DRAW_SECTION

Abschnitte

1

0

DRAW_HISTOGRAM

Histogramm von der Nulllinie

1

0

DRAW_HISTOGRAM2

Histogramm der 2 Indikatorpuffer

2

0

DRAW_ARROW

Weichenaufzeichnung

1

0

DRAW_ZIGZAG

Stil Zigzag laesst vertikale Abschnitte zu

2

0

DRAW_FILLING

Farbenfuellung zwischen zwei Levels

2

0

DRAW_BARS

Darstellung als Folge von Bars

4

0

DRAW_CANDLES

Darstellung als Folge von Kerzen

4

0

DRAW_COLOR_LINE

Mehrfarbige Linie

1

1

DRAW_COLOR_SECTION

Mehrfarbige Abschnitte

1

1

DRAW_COLOR_HISTOGRAM

Mehrfarbiges Histogramm von der Nulllinie  

1

1

DRAW_COLOR_HISTOGRAM2

Mehrfarbiges Histogramm der zwei Indikatorpuffer

2

1

DRAW_COLOR_ARROW

Zeichnung mit mehrfarbigen Weichen

1

1

DRAW_COLOR_ZIGZAG

Mehrfarbiger ZigZag

2

1

DRAW_COLOR_BARS

Mehrfarbige Bars

4

1

DRAW_COLOR_CANDLES

Mehrfarbige Kerzen

4

1

 

für Praezisierung der Darstellung der gewaehlten Zeichnungsart werden Identifikatoren verwendet, die in Enumerationen ENUM_PLOT_PROPERTY aufgezählt werden.

für Funktionen PlotIndexSetInteger() und PlotIndexGetInteger()

ENUM_PLOT_PROPERTY_INTEGER

Identifikator

Beschreibung

Typ der Eigenschaft

PLOT_ARROW

Weichenkode für Stil  DRAW_ARROW

uchar

PLOT_ARROW_SHIFT

Vertikale Verschiebung der Weichen für Stil DRAW_ARROW

int

PLOT_DRAW_BEGIN

Zahl der Anfangsbars ohne Zeichnung und Werte in DataWindow

int

PLOT_DRAW_TYPE

Typ der graphischen Konstruktion

ENUM_DRAW_TYPE

PLOT_SHOW_DATA

Merkmal der Darstellung von Konstruktionswerte im Fenster DataWindow

bool

PLOT_SHIFT

Verschiebung der graphischen Konstruktion des Indikators Zeit-Achse in Bars

int

PLOT_LINE_STYLE

Stil der zeichnerischen Linie

ENUM_LINE_STYLE

PLOT_LINE_WIDTH

Breite der zeichnerischen Linie

int

PLOT_COLOR_INDEXES

Anzahl der Farben

int

PLOT_LINE_COLOR

Pufferindex mit zeichnerischer Farbe

color     Modifikator=Nummer der Indexfarbe

für die Funktion PlotIndexSetDouble()

ENUM_PLOT_PROPERTY_DOUBLE

Identifikator

Beschreibung

Typ der Eigenschaft

PLOT_EMPTY_VALUE

Leerwert für Konstruktion, für die es keine Zeichnung gibt

double

für die Funktion PlotIndexSetString()

ENUM_PLOT_PROPERTY_STRING

Identikator

Beschreibung

Typ der Eigenschaft

PLOT_LABEL

Name der graphischen Indikatorserie für Darstellung im Fenster DataWindow. Für komplexe grafische Stile, die mehrere Indikatorpuffer für Anzeige brauchen, können die Namen von jedem Puffer mit Trennzeichen ";" angegeben werden. Beispiel-Code wird in DRAW_CANDLES gezeigt

string

Es gibt 5 Stile mit denen die Linie im Benutzerindikator gezeichnet werden kann. Sie sind nur bei der Liniebreite 0 oder 1 anwendbar.

ENUM_LINE_STYLE

Identifikator

Beschreibung

STYLE_SOLID

Ausgezogene Linie

STYLE_DASH

diskontinierliche Linie

STYLE_DOT

Punktierte Linie

STYLE_DASHDOT

Strichpunktlinie

STYLE_DASHDOTDOT

Strich-zwei Punkte

 

für Einstellung des Stils der Liniezeichnung und Zeichnungsart wird die Funktion PlotIndexSetInteger() verwendet. Für Fibonacci-Erweiterungen können die Breite und Stil der Zeichnung durch die Funktion ObjectSetInteger() angegeben werden.

Beispiel:

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1
//--- indicator buffers
double         MABuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- Bindung des Feldes zum Indikatorpuffer mit Index 0 
   SetIndexBuffer(0,MABuffer,INDICATOR_DATA);
//--- Einstellung der Liniezeichnung 
   PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);
//--- Einstellung des Stils für Liniezeichnung 
   PlotIndexSetInteger(0,PLOT_LINE_STYLE,STYLE_DOT);
//--- Einstellung der Linienfarbe 
   PlotIndexSetInteger(0,PLOT_LINE_COLOR,clrRed);
//--- Einstellung der Linienbreite 
   PlotIndexSetInteger(0,PLOT_LINE_WIDTH,1);
//--- Einstellung der Marke für die Linie 
   PlotIndexSetString(0,PLOT_LABEL,"Moving Average");
//---
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
//--- 
   for(int i=prev_calculated;i<rates_total;i++)
     {
      MABuffer[i]=close[i];
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }