Struktur für Erfassung der laufenden Preise (MqlTick)

Das ist die Struktur für Speicherung der letzten Preise des Symbols. Bestimmt für schnelles Erhalten der gefragten Information über laufende Preise.

struct MqlTick
  {
   datetime     time;          // Zeit des letzten Preisaktualisierung
   double       bid;           // aktueller Bid-Preis (Geldkurs)
   double       ask;           // aktueller Ask-Preis (Briefkurs)
   double       last;          // Preis des letzten Geschäfts (Last)
   ulong        volume;        // Volumen des aktuellen Last-Preises
   long         time_msc;      // Zeitpunkt des letzten Last-Preises in Millisekunden
   uint         flags;         // Tick-Flags
   double       volume_real;   // Volumen des aktuellen Last-Preises mit größerer Genauigkeit
  };

Variable des Typs MqlTick ermöglicht mit einem Anruf der Funktion SymbolInfoTick() Werte von Ask, Bid, Last und Volumen zu bekommen.

Alle Parameter sind immer für jeden Tick gefüllt, unabhängig davon, ob die Daten im Vergleich zum vorherigen Tick verändert haben. So können Sie immer einen aktuellen Preisstand haben, ohne auf die vorherigen Werte in der Tick-Historie zu suchen. Beispielsweise kann nur der Bid-Preis mit dem Tick ändern, aber die andere Parameter werden auch in der Preisstruktur angegeben: der vorherige Bid-Preis, Volumen usw.

Um herauszufinden, welche Daten im aktuellen Tick geändert sind, analysieren Sie seine Flags:

  • TICK_FLAG_BID – der Tick hat den Bid-Preis geändert
  • TICK_FLAG_ASK  – der Tick hat den Ask-Preis geändert
  • TICK_FLAG_LAST –  der Tick hat den Last-Preis geändert
  • TICK_FLAG_VOLUME –  der Tick hat das Volumen geändert
  • TICK_FLAG_BUY – der Tick hat als Ergebnis eines Kauf-Deals erschienen
  • TICK_FLAG_SELL – der Tick hat als Ergebnis eines Verkauf-Deals erschienen

Beispiel:

void OnTick()
  {
   MqlTick last_tick;
//---
   if(SymbolInfoTick(Symbol(),last_tick))
     {
      Print(last_tick.time,": Bid = ",last_tick.bid,
            " Ask = ",last_tick.ask,"  Volume = ",last_tick.volume);
     }
   else Print("SymbolInfoTick() failed, error = ",GetLastError());
//---
  }

Sehen Sie auch

Strukturen und Klassen, CopyTicks(), SymbolInfoTick()