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(
|
Vektör metodu
bool vector::CopyTicks(
|
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 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 |
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