Mevcut fiyatları almak için bir yapı (MqlTick)

Bu yapı, ilgili sembolün son fiyatlarını içerir. Mevcut fiyatlar hakkındaki en çok istenen bilgilerin hızlı şekilde elde edilmesi için tasarlanmıştır.

struct MqlTick
  {
   datetime     time;          // Son fiyat güncellemesinin zamanı
   double       bid;           // Mevcut Satış fiyatı
   double       ask;           // Mevcut Alış fıyatı
   double       last;          // Son işlem fiyatı (Last)
   ulong        volume;        // Son fiyat için hacim
   long         time_msc;      // Son fiyatın milisaniye cinsinden güncellenme zamanı
   uint         flags;         // Tik bayrakları
   double       volume_real;   // Mevcut Son fiyat için daha yüksek doğruluklu hacim
  };

MqlTick tipi değişken SymbolInfoTick() fonksiyonunun bir çağrısı ile, Alış, Satış, Son fiyat ve Hacim değerlerinin alınmasını sağlar.

Her bir tik parametresi, önceki tike göre değişim olup olmadığına bakılmaksızın doldurulur. Böylece tik geçmişindeki daha önceki verilere bakmaksızın geçmişteki belli bir ana dair doğru fiyat verilerine ulaşmak mümkündür. Örneğin, yeni tik üzerinde sadece Satış verisi değişmiş olsa da, Alış, Hacim, vb. diğer veriler de yapı içerisinde yer alacaktır.

Hangi verinin değiştiğini görmek için tik bayraklarını kullanabilirsiniz:

  • TICK_FLAG_BID –  Satış fiyatı verisi değişti
  • TICK_FLAG_ASK  – Alış fiyatı verisi değişti
  • TICK_FLAG_LAST – son fiyat verisi değişti
  • TICK_FLAG_VOLUME – hacim değişti
  • TICK_FLAG_BUY – alış işlemi sonucunda oluşan tik verisi
  • TICK_FLAG_SELL – satış işlemi sonucunda oluşan tik verisi

Örnek:

void OnTick()
  {
   MqlTick last_tick;
//---
   if(SymbolInfoTick(Symbol(),last_tick))
     {
      Print(last_tick.time,": Satış = ",last_tick.bid,
            " Alış = ",last_tick.ask,"  Hacim = ",last_tick.volume);
     }
   else Print("SymbolInfoTick() başarısız oldu, hata = ",GetLastError());
//---
  }

Ayrıca Bakınız

Yapılar ve Sınıflar, CopyTicks(), SymbolInfoTick()