CopyTicks

MqlTick yapısından matrise veya vektöre tikler alır. Elemanlar geçmişten şimdiki zamana doğru sayılır, yani indeksi 0 olan tik en eski tiktir. Tik analizi için, tikte tam olarak nelerin değiştiğini ifade eden flags alanını kontrol edin.

bool  matrix::CopyTicks(
   string           symbol,                // sembol adı
   ulong            flags,                 // alınacak tiklerin türünü belirten bayrak
   ulong            from_msc,              // talep edilecek tiklerin başlangıç zamanı
   ulong            count                  // alınacak tik sayısı
   );

Vektör metodu

bool  vector::CopyTicks(
   string           symbol,                // sembol adı
   ulong            flags,                 // alınacak tiklerin türünü belirten bayrak
   ulong            from_msc,              // talep edilecek tiklerin başlangıç zamanı
   ulong            count                  // alınacak tik sayısı
   );

Parametreler

symbol

[in]  Sembol.

flags

[in] ENUM_COPY_TICKS numaralandırmasından, istenen tiklerin türünü belirten bayrak kombinasyonu. Verileri vektöre kopyalarken, ENUM_COPY_TICKS numaralandırmasından yalnızca bir değer belirtilebilir, aksi takdirde hata meydana gelecektir.

from_msc

[in]  Talep edilecek tiklerin başlangıç tarihi. Zaman, 01/01/1970 tarihinden itibaren olacak şekilde milisaniye cinsinden belirtilir. Eğer from=0 ise, count sayısı kadar son tikler geri döndürülür.

count

[in]  Talep edilen tik sayısı. from_msc ve count parametreleri belirtilmezse, 2000'den fazla olmamak kaydıyla son tikler yazılacaktır.

 

Geri dönüş değeri

Başarılı olursa true, hata olması durumunda false geri döndürür.

Not

CopyTicks()'in ilk çağrısı, ilgili sembolün sabit diskte depolanan tik veri tabanının senkronizasyonunu başlatır. Yerel veri tabanı talep edilen tüm tikleri sağlayamıyorsa, eksik tikler otomatik olarak işlem sunucusundan indirilecektir. Bu durumda, CopyTicks()'te belirtilen from_msc zamanından mevcut zamana kadar olan tikler senkronize edilecektir. Bu sembol için sonrasında gelecek tüm tikler, tik veri tabanına eklenerek senkronize durumda tutulacaktır.

from_msc ve count parametreleri belirtilmezse, 2000'den fazla olmamak kaydıyla son tikler matrise/vektöre yazılacaktır.

Göstergelerde, CopyTicks() metodu sonucu hemen geri döndürür: bir göstergeden çağrıldığında, CopyTick() sembolün tüm kullanılabilir tiklerini hemen geri döndürür ve mevcut veri yeterli değilse tik veri tabanının senkronizasyonunu başlatır. Aynı sembol üzerindeki tüm göstergeler tek bir ortak iş parçacığında çalışır, bu nedenle gösterge senkronizasyonun tamamlanmasını bekleyemez. Senkronizasyon tamamlandıktan sonra, CopyTicks() bir sonraki çağrı sırasında talep edilen tüm tikleri geri döndürecektir. Göstergelerde, OnCalculate() fonksiyonu her tikin gelmesinden sonra çağrılır.

Uzman Danışmanlarda ve komut dosyalarında, CopyTicks() sonucu 45 saniye bekleyebilir: göstergelerden farklı olarak, her Uzman Danışman veya komut dosyası ayrı bir iş parçacığında çalışır ve bu nedenle senkronizasyonun tamamlanması için 45 saniyeye kadar bekleyebilir. Bu süre içerisinde gerekli sayıda tik sekronize edilemezse, CopyTicks() zaman aşımıyla kullanılabilir tikleri geri döndürecek ve senkronizasyona devam edecektir. Uzman Danışmanlarda OnTick(), her tikin işleyicisi değildir, sadece Uzman Danışmanı piyasadaki değişiklikler hakkında bilgilendirir. Bu, bir değişiklik grubu olabilir: terminal aynı anda birden fazla tiki alabilirken, OnTick() yalnızca bir kez çağrılarak Uzman Danışmanı en son piyasa durumu hakkında bilgilendirir.

Veri geri dönüş hızı: terminal, hızlı erişim önbelleğinde her enstrüman için 4096 son tiki depolar (Piyasa Derinliği çalışırken 65536 tik). Bu verilere ilişkin talepler en hızlı şekilde yürütülür. Geçerli işlem seansı için talep edilen tikler önbelleğin dışındaysa, CopyTicks() terminal belleğinde depolanan tikleri çağırır. Bu taleplerin tamamlanması daha fazla zaman gerektirir. En yavaş olan talepler diğer günlerdeki tiklerin talepleridir, çünkü bu durumda veriler diskten okunacaktır.

ENUM_COPY_TICKS

ENUM_COPY_TICKS numaralandırması, matrise veya diziye aktarılacak verilerin türünü belirtmek için bayraklar içerir. Bayrak kombinasyonu, geçmişten birkaç serinin tek bir talepte alınmasına olanak tanır. Matristeki satırların sırası, ENUM_COPY_TICKS numaralandırmasındaki değerlerin sırasına karşılık gelecektir. Diğer bir deyişle, Yüksek verileri içeren satır matriste her zaman Düşük verileri içeren satırdan daha yukarıda olacaktır.

Kimlik

Değer

Açıklama

COPY_TICKS_INFO

1

Alış ve/veya Satış fiyatı değişimleri sonucu oluşan tikler

COPY_TICKS_TRADE

2

Son ve/veya Hacim değişimleri sonucu oluşan tikler

COPY_TICKS_ALL

3

Tüm tikler

COPY_TICKS_TIME_MS

1<<8

Milisaniye cinsinden tik zamanı

COPY_TICKS_BID

1<<9

Satış fiyatı

COPY_TICKS_ASK

1<<10

Alış fiyatı

COPY_TICKS_LAST

1<<11

Son fiyatı (son işlem fiyatı)

COPY_TICKS_VOLUME

1<<12

Hacim

COPY_TICKS_FLAGS

1<<13

Tik bayrakları

Veri düzenlemesi

 

 

COPY_TICKS_VERTICAL

32768

Tikler dikey eksen boyunca matrise kopyalanır. Alınan tikler matriste dikey olarak düzenlenecektir, yani en eski tikler ilk satırda, en yeni tikler ise son matris satırında olacaktır.

 

Varsayılan kopyalama ile tikler yatay eksen boyunca matrise eklenir.

 

Bayrak yalnızca bir matrise kopyalama yapılırken geçerlidir.

Tik analizi için, tikte tam olarak nelerin değiştiğini ifade eden bayrakları kullanın:

  • TICK_FLAG_BID - tik, Satış fiyatı değişimi sonucu oluştu
  • TICK_FLAG_ASK - tik, Alış fiyatı değişimi sonucu oluştu
  • TICK_FLAG_LAST - tik, Son işlem fiyatı değişimi sonucu oluştu
  • TICK_FLAG_VOLUME - tik, hacim değişimi sonucu oluştu
  • TICK_FLAG_BUY - tik, alış işlemi sonucu oluştu
  • TICK_FLAG_SELL - tik, satış işlemi sonucu oluştu

 

Ayrıca bakınız

Zaman Serilerine ve Göstergelere Erişim, CopyTicks