IndicatorSetDouble

Gibt den Wert der entsprechenden Indikatoreigenschaft. Indikatoreigenschaft muss des Typs double sein. Es gibt 2 Varianten der Funktion.

Aufruf mit dem Identifikator der Eigenschaft

bool  IndicatorSetDouble(
   int     prop_id,           // Identifikator
   double  prop_value         // der eingestellte Wert 
   );

Aufruf mit dem Identifikator und Modifikator der Eigenschaft

bool  IndicatorSetDouble(
   int     prop_id,           // Identifikator
   int     prop_modifier,     // Modifikator 
   double  prop_value         // der eingestellte Wert 
   )

Parameter

prop_id

[in] Identifikator der Indikatoreigenschaft. Wert kann einer der Enumerationswerte ENUM_CUSTOMIND_PROPERTY_DOUBLE sein.

prop_modifier

[in]  Modifikator der angegebenen Eigenschaft. Nur Leveleigenschaften fordern Modifikator an. Nummerierung der Stände beginnt bei 0, d.h. um eine Eigenschaft dem zweiten Stand anzugeben, setzen sie 1 (1 weniger als bei der Verwendung von Compiler-Direktiven).  

prop_value

[in]  Wert der Eigenschaft.

Rückgabewert

Bei der erfolgreichen Durchführung gibt true zurück, anderenfalls false.

Hinweis

Nummerierung der Eigenschaften (Modifikatoren) durch Direktive #property beginnt bei 1 (eins), während die Funktionen verwenden Nummerierung bei 0 (Null). Bei die falsche Eingabe einer Nummer des Stands, kann Anzeige des Indikators verschieden sein.

Können Sie beispielsweise den Wert des ersten Stands für den Indikator in einem separaten Fenster auf zwei Methoden angeben:

  • property indicator_level1  50 - 1 wird für Angabe des Stands verwendet,
  • IndicatorSetDouble(INDICATOR_LEVELVALUE, 0, 50) - 0 wird für Angabe des Stands verwendet.

Beispiel: umwendender Indikator, der den maximalen und minimalen Wert des Indikatorfensters und die Werte der Stände, an denen die horizontalen Linien liegen, ändert.

Beispiel mit der Funktion IndicatorSetDouble()

//--- die maximalen und minimalen Werte für den Indikatorfenster setzen
#property indicator_minimum  0
#property indicator_maximum  100
//--- Anzeige der drei horizontalen Stände in einem separaten Indikatorfenster angeben
#property indicator_level1 25
#property indicator_level2 50
#property indicator_level3 75
//--- Breite der Stände angeben
#property indicator_levelwidth 1
//--- Stil der horizontalen Stände angeben
#property indicator_levelstyle STYLE_DOT
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- Beschreibung der horizontalen Stände angeben
   IndicatorSetString(INDICATOR_LEVELTEXT,0,"First Level (index 0)");
   IndicatorSetString(INDICATOR_LEVELTEXT,1,"Second Level (index 1)");
   IndicatorSetString(INDICATOR_LEVELTEXT,2,"Third Level (index 2)");
//--- Kurzname des Indikators angeben
   IndicatorSetString(INDICATOR_SHORTNAME,"IndicatorSetDouble() Demo");
//--- Individuelle Farbe für die St'nde angeben
   IndicatorSetInteger(INDICATOR_LEVELCOLOR,0,clrBlue);
   IndicatorSetInteger(INDICATOR_LEVELCOLOR,1,clrGreen);
   IndicatorSetInteger(INDICATOR_LEVELCOLOR,2,clrRed);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| 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[])
  {
   static int tick_counter=0;
   static double level1=25,level2=50,level3=75;
   static double max=100,min=0, shift=100;
//--- Ticks berechnen
   tick_counter++;
//--- Umwälzen auf jedem zehnten Tick
   if(tick_counter%10==0)
     {
      //--- umwenden Zeichen für Standwerte
      level1=-level1;
      level2=-level2;
      level3=-level3;
      //--- umwenden Zeichen für maximale und minimale Werte
      max-=shift;
      min-=shift;
      //--- umwenden Wert von Verschiebung
      shift=-shift;
      //--- neue Werte der Stände angeben
      IndicatorSetDouble(INDICATOR_LEVELVALUE,0,level1);
      IndicatorSetDouble(INDICATOR_LEVELVALUE,1,level2);
      IndicatorSetDouble(INDICATOR_LEVELVALUE,2,level3);
      //--- Neue maximale und minimale Werte für Indikatorfenster angeben
      Print("Set up max = ",max,",   min = ",min);
      IndicatorSetDouble(INDICATOR_MAXIMUM,max);
      IndicatorSetDouble(INDICATOR_MINIMUM,min);
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }

Sehen Sie auch

Stile der Indikator in den Beispielen, Zusammenhang zwischen Eigenschaften des Indikators und entsprechenden Funktionen, Zeichnungsstile