CustomTicksAdd

Kullanıcı-tanımlı bir sembol için MqlTick tipli bir diziden veri ekler. Kullanıcı-tanımlı sembol Piyasa Gözlemi penceresinde seçilmiş olmalıdır.

int  CustomTicksAdd(
   const string     symbol,             // Sembol ismi
   const MqlTick&   ticks[],            // Kullanıcı-tanımlı sembole yüklenebilecek tik verilerini içeren dizi
   uint             count=WHOLE_ARRAY   // kullanılacak ticks[] dizisi elemanlarının sayısı
   );

Parametreler

symbol

[in]  Kullanıcı-tanımlı sembolün ismi.

ticks[]

[in]   Geçmişten şimdiye doğru düzenlenmiş (k<n ise ticks[k].time_msc <= ticks[n].time_msc) verileri içeren MqlTick tipli dizi.

count=WHOLE_ARRAY

[in]  Ekleme için kullanılacak ticks[] dizisi elemanlarının sayısı. WHOLE_ARRAY, tüm ticks[] dizisi elemanlarının kullanılması gerektiği anlamına gelir.

Geri Dönüş Değeri

Eklenen tik verilerinin sayısı veya hata durumunda '-1'.

Notlar

CustomTicksAdd fonksiyonu sadece Piyasa Gözlemi penceresinde seçili olan kullanıcı-tanımlı sembol için çalışır. Sembol Piyasa Gözleminde seçili değilse, veri eklemek için CustomTicksReplace fonksiyonunu kullanmalısınız.

CustomTicksAdd fonksiyonu, tikleri broker'ın serverından iletmeye izin verir. Veriler doğrudan tik veritabanına yazılmak yerine Market İzleme penceresine gönderilir. Terminal daha sonra Market İzlemeden tikleri bir veritabanına kaydeder. Bir fonksiyon çağrısı sırasında iletilen veri miktarı büyükse, fonksiyonun davranışı, kaynak kullanımını azaltmak için değişir. Eğer 256'dan fazla tik oluşmuşssa, data 2 parçaya bölünür. İlki, örneğin büyük parça direkt olarak tik veritabanına yazdırılır (CustomTicksReplace'de olduğu gibi). 128 tiki içeren ikinci parça, terminalin verileri bir veritabanına kaydettiği yerden Market İzleme penceresine geçirilir.

MqlTick yapısının zaman değerli iki alanı vardır: time (saniye cinsinden tik zamanı) ve  time_msc (milisaniye cinsinden tik zamanı). Bunlar, 1 Ocak 1970'den itibaren sıralanmıştır. Eklenen tikler için bu alanlar şu sırayla işlenir:

  1. ticks[k].time_msc!=0 ise, veri ticks[k].time alanını doldurmak için kullanılır, yani ticks[k].time=ticks[k].time_msc/1000 (tamsayı bölümü) tik verisine uygulanır
  2. ticks[k].time_msc==0 ve ticks[k].time!=0 ise, milisaniye cinsi zaman değeri 1000 ile çarpılarak elde edilir (ticks[k].time_msc=ticks[k].time*1000)
  3. ticks[k].time_msc==0 ve ticks[k].time==0 ise, milisaniye cinsinden alım-satım sunucusunun zamanı CustomTicksAdd çağrısı yapıldığı an bu alanlara yazılır.

ticks[k].bid, ticks[k].ask, ticks[k].last veya ticks[k].volume sıfırdan büyükse, ticks[k].flags alanına ilgili bayrakların uygun bir kombinasyonu yazılır

  • TICK_FLAG_BID – tik verisi satış fiyatını değiştirdi
  • TICK_FLAG_ASK  – tik verisi alış fiyatını değiştirdi
  • TICK_FLAG_LAST – tik verisi son işlem fiyatını değiştirdi
  • TICK_FLAG_VOLUME – tik verisi hacmi değiştirdi

Alanlardan birinin değeri sıfır veya daha küçükse, karşılık gelen bayraklar ticks[k].flags alanına yazılmaz.

 

TICK_FLAG_BUY ve TICK_FLAG_SELL bayrakları kullanıcı-tanımlı sembol geçmişine eklenmez.

 

Ayrıca bakınız

CustomRatesDelete, CustomRatesUpdate, CustomTicksReplace, CopyTicks, CopyTicksRange