- Dizilerde, Tamponlarda ve Zaman Serilerinde İndisleme Yönü
- Veri Erişiminin Düzenlenmesi
- SeriesInfoInteger
- Bars
- BarsCalculated
- IndicatorCreate
- IndicatorParameters
- IndicatorRelease
- CopyBuffer
- CopyRates
- CopySeries
- CopyTime
- CopyOpen
- CopyHigh
- CopyLow
- CopyClose
- CopyTickVolume
- CopyRealVolume
- CopySpread
- CopyTicks
- CopyTicksRange
- iBars
- iBarShift
- iClose
- iHigh
- iHighest
- iLow
- iLowest
- iOpen
- iTime
- iTickVolume
- iRealVolume
- iVolume
- iSpread
CopyTicks
MqlTick biçimindeki tik verilerini ticks_array dizisine aktarır. Tik verileri geçmişten şimdiye doğru indislenir, yani 0 indisi dizideki en eski tik verisini gösterir. Tik analizi için, tik üzerinde tam olarak neyin değiştiğini gösteren flags alanını kullanın.
int CopyTicks(
|
Parametreler
symbol_name
[in] Sembol.
ticks_array
[out] Tik verilerinin alınması için MqlTick tipinde bir dizi.
bayraklar
[in] İstenen tik verilerinin tipini tanımlayacak bayrak. COPY_TICKS_INFO – Satış ve/veya Alış değişimlerini içeren tik verileri, COPY_TICKS_TRADE – Son fiyat ve hacim değişimlerini içeren tik verileri, COPY_TICKS_ALL – tüm tikler. Tüm istek tiplerinde, önceki tik değerleri MqlTick yapısının kalan alanlarına eklenir.
from
[in] İstenen tik verilerinin başlangıç tarihi. 1970.01.01 tarihinden itibaren milisaniye cinsinden. from=0 ise, count ile belirtilen miktar kadar tik verisi alınır.
count
[in] İstenen verilerin sayısı. 'from' ve 'count' parametreleri belirtilmemişse, tüm mevcut tik verileri (2000 'den fazla olmamak kaydıyla) ticks_array[] dizisine yazılır.
Dönüş değeri
Kopyalanan tiklerin sayısı veya hata durumunda –1.
Notlar
CopyTicks() fonksiyonu tik verilerinin alınmasını ve analiz edilmesini sağlar. CopyTicks() fonksiyonunun ilk çağrısı ile sembolün sabit disk üzerindeki tik veri-tabanının eşitlenme işlemi başlatılır. İstenen verilerin bir kısmı yerel veri-tabanında mevcut değilse, eksik veriler otomatik olarak alım-satım sunucusundan indirilir. CopyTicks() içerisinde from ile belirtilem tarihten şu ana kadar olan tüm tikler eşitlenir. Daha sonra gelen tik verilerinin hepsi otomatik olarak veri-tabanına eklenir. Bu sayede veriler güncel tutulur.
from ve count parametreleri belirtilmemişse, tüm mevcut tik verileri (2000 'den fazla olmamak kaydıyla) ticks_array[] dizisine yazılır. flags parametresi istenen tik verilerinin tipinin belirtilmesini sağlar.
COPY_TICKS_INFO – Satış ve/veya Alış değişimlerini içeren tik verilerine dönüş yapar. Ayrıca diğer alanlardaki veriler de eklenir. Örneğin, sadece Satış fiyatı değişmiş olsa bile Alış ve hacim alanları da bilinen en son değerler ile doldurulur. Hangi verinin değiştiğini öğrenmek için flags alanını kontrol edin (bu alanda TICK_FLAG_BID ve/veya TICK_FLAG_ASK değerleri yer alır). Tik verisi içinde Alış ve Satış fiyatları aynı anda sıfır değeri almışsa ve flags alanı verinin değiştiğini gösteriyorsa (flags=TICK_FLAG_BID|TICK_FLAG_ASK), bu durum Piyasa Derinliğinin boş olduğunu ifade eder. Diğer bir deyişle herhangi bir alış veya satış emri yoktur.
COPY_TICKS_TRADE – Son fiyat ve hacim değişimlerini içeren tik verilerine dönüş yapar. Ayrıca diğer alanlardaki veriler de eklenir. Alış ve Şatış alanları da bilinen en son değerler ile doldurulur. Hangi verinin değiştiğini öğrenmek için flags alanını kontrol edin (bu alanda TICK_FLAG_LAST ve TICK_FLAG_VOLUME değerleri yer alır).
COPY_TICKS_ALL – herhangi bir değişim durumunda tüm tik verilerine dönüş yapılır. Değişmeyen alanlar bilinen en son değerler ile doldurulur
COPY_TICKS_ALL bayrağı ile yapılan CopyTicks() çağrısı istenen aralıktaki tüm tik verilerine hemen dönüş yaparken, diğer tipteki isteklerin işlenmesi daha fazla zaman alır. Bu yüzden diğer istek tiplerinde hız avantajı sağlanamaz.
COPY_TICKS_INFO veya COPY_TICKS_TRADE ile istenen tik verileri, değişim anındaki tüm fiyat bilgilerini içerirler (satış, alış, son fiyatları ve hacim). Bu özellik veri değişim anındaki işlem durumunu kolayca incelemek için tasarlanmıştır. Bu sayede tik geçmişi üzerindeki diğer alanları derinlemesine incelemeye gerek operati olmaz.
CopyTicks() fonksiyonu gösterge içinde çağrıldığında sonuca dönüş yapar: sembolün var olan tüm tik verilerine dönüş yapılır ve yeterli tik verisi yoksa tik veri-tabanının eşitleme işlemini başlatır. Belli bir sembol ile açılan tüm göstergeler aynı iş parçacığı üzerinde çalışır. Bu sayede eşitleme işleminin bitmesi beklenmez. Eşitlemenin ardından CopyTicks() fonksiyonu bir sonraki çağrıda tüm tik verilerine dönüş yapar. Göstergelerde OnCalculate() fonksiyonu yeni tik verisi alındıktan sonra çağrılır.
CopyTicks() fonksiyonu Uzmanlarda ve betiklerde 45 saniye süreyle sonuç bekleyebilir: Uzman Danışmanlar ve betikler –göstergelerden farklı olarak– ayrı iş parçacıkları üzerinde çalışırlar bu nedenle eşitleme işlemi için 45 saniye kadar bekleyebilirler. Bu süre içinde istenen veri miktarı eşitlenemezse, CopyTicks() sürenin sonunda elde edilen verilere dönüş yapar ve eşitleme işlemine devam eder. Uzman Danışmanlarda OnTick() fonksiyonu bir tik işleyici değildir, sadece Uzman Danışmanı piyasadaki değişimler hakkında bilgilendirir. Bu tek bir değişim olmayabilir: terminal aynı anda birkaç tik verisi oluşturabilir ama OnTick() fonksiyonu piyasa durumu hakkında Uzmanı bilgilendirmek için sadece bir kez çağrılır.
Veri dönüş oranı: terminal her bir enstrümanın son 4096 tik verisini hızlı erişim deposunda tutar (Piyasa Derinliğine sahip olan semboller için 65536 tik). Mevcut işlem seansı için istenen tiklerin sayısı depoda bulunandan fazlaysa, CopyTicks() fonksiyonu terminal belleğinde depolanan tik verilerini de alır. Bu isteklerin uygulanması daha fazla zaman alır. En yavaş işlenenler istekler başka günlerin tik verilerinin istenmesi ile ortaya çıkar.
Örnek:
#property copyright "Copyright 2000-2024, MetaQuotes Ltd."
|
Ayrıca bakınız