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