CopyRates
Belirtilen sembol, zaman dilimi ve veri miktarı için MqlRates yapısından matrise veya vektöre geçmiş seriler alır. Elemanlar şimdiki zamandan geçmişe doğru sayılır, yani 0'a eşit başlangıç konumu mevcut çubuk anlamına gelir.
Veriler, en eski eleman matrisin/vektörün başına gelecek şekilde kopyalanır. Fonksiyonun üç seçeneği vardır.
Başlangıç konumuna ve gerekli eleman sayısına göre erişim
bool matrix::CopyRates(
|
Başlangıç tarihine ve gerekli eleman sayısına göre erişim
bool matrix::CopyRates(
|
Gerekli tarih aralığının başlangıç ve bitiş tarihlerine göre erişim
bool matrix::CopyRates(
|
Vektör Yöntemleri
Başlangıç konumuna ve gerekli eleman sayısına göre erişim
bool vector::CopyRates(
|
Başlangıç tarihine ve gerekli eleman sayısına göre erişim
bool vector::CopyRates(
|
Gerekli tarih aralığının başlangıç ve bitiş tarihlerine göre erişim
bool vector::CopyRates(
|
Parametreler
symbol
[in] Sembol.
period
[in] Zaman dilimi.
rates_mask
[in] ENUM_COPY_RATES numaralandırmasından, istenen serilerin türünü belirten bayrak kombinasyonu. Verileri vektöre kopyalarken, ENUM_COPY_RATES numaralandırmasından yalnızca bir değer belirtilebilir, aksi takdirde hata meydana gelecektir.
start
[in] Kopyalanacak ilk elemanın indeksi.
count
[in] Kopyalanacak eleman sayısı.
from
[in] İlk elemana karşılık gelen çubuk zamanı.
to
[in] Son elemana karşılık gelen çubuk zamanı.
Geri dönüş değeri
Başarılı olursa true, hata olması durumunda false geri döndürür.
Not
Talep edilen veri aralığı sunucuda bulunan verileri aşıyorsa, fonksiyon false geri döndürür. Talep edilen veri aralığı TERMINAL_MAXBARS'ı (grafikteki maksimum çubuk sayısı) aşıyorsa, fonksiyon yine false geri döndürür.
Uzman Danışmandan veya komut dosyasından veri talep edilirken, terminalde yerel olarak ilgili veriler yoksa, sunucudan indirme işlemi başlatılır ve bu süreçte yerel geçmişten oluşturulabiliyorsa gerekli seriler oluşturulur. Fonksiyon, zaman aşımı süresi dolduğunda hazır olan veri miktarını geri döndürür, ancak geçmişin indirilme işlemi halen devam eder, böylece bir sonraki benzer talepte daha fazla veri geri döndürülür.
Başlangıç tarihine ve gerekli eleman sayısına göre veri talep edilirken, yalnızca belirtilen tarihe eşit veya bu tarihten önceki veriler geri döndürülür. Veri aralığı saniye hassasiyetiyle ayarlanır. Başka bir deyişle, değerin (hacim, makas, Açılış, Yüksek, Düşük, Kapanış veya Zaman) geri döndürüldüğü herhangi bir çubuğun açılış tarihi her zaman belirtilen tarihe eşit veya bu tarihten öncedir.
Belirli tarih aralığındaki veriler talep edilirken, yalnızca istenen aralıktaki veriler geri döndürülür. Veri aralığı saniye hassasiyetiyle ayarlanır. Başka bir deyişle, değerin (hacim, makas, Açılış, Yüksek, Düşük, Kapanış veya Zaman) geri döndürüldüğü herhangi bir çubuğun açılış tarihi her zaman istenen aralıkta bulunur.
Örneğin, haftanın mevcut günü Cumartesi ise, start_time=last_tuesday ve stop_time=last_friday ayarıyla haftalık zaman diliminde veri kopyalamaya çalışırken fonksiyon 0 geri döndürecektir, çünkü haftalık zaman diliminin açılış zamanı her zaman pazar gününe denk gelir ve dolayısıyla istenen aralığa hiçbir haftalık çubuk girmemektedir.
Mevcut tamamlanmamış çubuktan bir değer almanız gerekiyorsa, start_pos=0 ve count=1 ile ilk çağrı formunu kullanabilirsiniz.
ENUM_COPY_RATES 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_RATES 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_RATES_OPEN |
1 |
Açılış fiyatı serisi |
COPY_RATES_HIGH |
2 |
Yüksek fiyatı serisi |
COPY_RATES_LOW |
4 |
Düşük fiyatı serisi |
COPY_RATES_CLOSE |
8 |
Kapanış fiyatı serisi |
COPY_RATES_TIME |
16 |
Zaman serisi (çubuk açılış zamanı)
Zaman serisinin float türündeki vektörlere ve matrislere (vectorf ve matrixf) alınması, float türünün hassasiyeti ciddi bir şekilde sınırlı olduğundan ve 1<<24'ten büyük int türü değerler float türünde doğru bir şekilde temsil edilemediğinden ~100 saniyelik kayıplara neden olur. |
COPY_RATES_VOLUME_TICK |
32 |
Tik hacim serisi |
COPY_RATES_VOLUME_REAL |
64 |
Gerçek hacim serisi |
COPY_RATES_SPREAD |
128 |
Makas serisi |
Kombinasyon |
|
|
COPY_RATES_OHLC |
15 |
Açılış, Yüksek, Düşük ve Kapanış serileri |
COPY_RATES_OHLCT |
31 |
Açılış, Yüksek, Düşük, Kapanış ve Zaman serileri |
Veri düzenlemesi |
|
|
COPY_RATES_VERTICAL |
32768 |
Seriler dikey eksen boyunca matrise kopyalanır. Alınan seri değerleri matriste dikey olarak düzenlenecektir, yani en eski veriler ilk satırda yer alırken, en yeni veriler son matris satırında yer alacaktır.
Varsayılan kopyalama ile seriler yatay eksen boyunca matrise eklenir.
Bayrak yalnızca bir matrise kopyalama yapılırken geçerlidir. |
Örnek:
//+------------------------------------------------------------------+
|
Ayrıca bakınız