SymbolInfoInteger

Gibt die entsprechende Eigenschaft des angegebenen Symbols zurück. Es gibt 2 Varianten der Funktion.

1. Gibt den Eigenschaftswert sofort zurück.

long  SymbolInfoInteger(
   string                    name,     // Symbol
   ENUM_SYMBOL_INFO_INTEGER  prop_id   // Identifikator der Eigenschaft 
   );

2. Gibt true oder false zurück abhängig von der erfolgreichen Durchführung der Funktion. Im Erfolgsfall wird der Eigenschaftswert in die Empfangsvariable gestellt, die durch Referenz vom letzten Parameter übertragen wird.

bool  SymbolInfoInteger(
   string                    name,     // Symbol
   ENUM_SYMBOL_INFO_INTEGER  prop_id,  // Eigenschaften des Identifikatoren
   long&                     long_var  // hier wird der Eigenschaftswert angenommen 
   );

Parameter

name

[in]  Symbolname.

prop_id

[in]  Identifikator der Symboleigenschaft. Wert kann einer der Enumerationswerte ENUM_SYMBOL_INFO_INTEGER sein.

long_var

[out]  Variable des Typs long, die den Wert der angeforderten Eigenschaft annimmt.

Rückgabewert

Wert des Typs long. Im Falle der Nichtausführung können Sie Fehlerinformation durch die Funktion GetLastError() erhalten:

  • 5040 – ungültiger string-Parameter für die Angabe des Symbolnamens,
  • 4301 - unbekanntes Symbol (Finanzinstrument)
  • 4302 - das Symbol nicht in der "Market Watch" ausgewählt (ist in der Liste nicht verfügbar),
  • 4303 - ungültiger Identifikator der Symboleigenschaft.

Hinweis

Wenn die Funktion wird verwendet, um Informationen über den letzten Tick zu bekommen, ist es besser SymbolInfoTick() zu verwenden. Es ist möglich, dass seit Verbinden des Terminals an das Handelskonto keine Preise des Symbols empfangen worden. In einem solchen Fall wird der Wert nicht bestimmt.

In den meisten Fällen reicht es aus, SymbolInfoTick() zu verwenden. Mit dieser Funktion können Sie durch einen einzelnen Anruf Werte von Ask, Bid, Last, Volume und Zeit der des letzten Ticks zu bekommen.

Beispiel:

void OnTick()
  {
//--- erhalten wir Spread aus Symboleigenschaften
   bool spreadfloat=SymbolInfoInteger(Symbol(),SYMBOL_SPREAD_FLOAT);
   string comm=StringFormat("Spread %s = %I64d Punkte\r\n",
                            spreadfloat?"fliessend":"fixiert",
                            SymbolInfoInteger(Symbol(),SYMBOL_SPREAD));
//--- berechnen wir Spread selbststaendig 
   double ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);
   double bid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
   double spread=ask-bid;
   int spread_points=(int)MathRound(spread/SymbolInfoDouble(Symbol(),SYMBOL_POINT));
   comm=comm+"Berechneter Spread = "+(string)spread_points+" Punkte";
   Comment(comm);
  }