ArraySetAsSeries

Belirtilen dinamik dizi nesnesi için AS_SERIES bayrağını ayarlar. Bu şekilde dizi elemanları zaman serisi şeklinde indislenir.

bool  ArraySetAsSeries(
   const void&  array[],    // referans dizi
   bool         flag        // 'true' değeri indisleme sırasının tersine çevrildiğini ifade eder
   );

Parametreler

array[]

[in][out]  Ayarlanacak sayısal dizi.

flag

[in]  Dizi indisleme yönü.

Dönüş değeri

Başarılı sonuç için 'true' değerine, aksi durumda 'false' değerine dönüş yapar.

Not

AS_SERIES bayrağı çok boyutlu diziler ve statik diziler (köşeli parantez içindeki büyükleri derleme aşamasında zaten ayarlanmış olan diziler) için ayarlanamaz. Zaman serilerindeki indisleme yönü sıradan dizilerden farklıdır. Sondan başa doğru (en yeni veriden en eski veriye doğru) indisleme yapılır.

Örnek: Çubuk numarasını gösteren gösterge

Çubuk numarasını göstermek için oluşturulan gösterge

 

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1
//---- Çizimlerin numaralandırılması
#property indicator_label1  "Numeration"
#property indicator_type1   DRAW_LINE
#property indicator_color1  CLR_NONE
//--- gösterge tamponları
double         NumerationBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- gösterge tamponlarının eşlenmesi
   SetIndexBuffer(0,NumerationBuffer,INDICATOR_DATA);
//--- tamponların indis yönünü zaman serilerindeki gibi ayarla
   ArraySetAsSeries(NumerationBuffer,true);
//--- veri Penceresi içindeki gösterimin doğruluğunu ayarlayın
   IndicatorSetInteger(INDICATOR_DIGITS,0);
//--- gösterge dizisinin ismi, Veri Penceresi içinde nasıl gözükecek
   PlotIndexSetString(0,PLOT_LABEL,"Bar #"); 
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//--- mevcut sıfır çubuğunun açılış zamanını kaydet
   static datetime currentBarTimeOpen=0;
//--- time[] dizisinin erişim yönünü ters çevir - zaman serilerindeki gibi indisle
   ArraySetAsSeries(time,true);
//--- sıfır çubuğunun açılış zamanı kaydedilen zamandan farklıysa
   if(currentBarTimeOpen!=time[0])
     {
     //--- şimdikinden başlayarak çizelge derinliğine kadar tüm çubukları say
      for(int i=rates_total-1;i>=0;i--) NumerationBuffer[i]=i;
      currentBarTimeOpen=time[0];
     }
//--- bir sonraki çağrı için prev_calculated değerine dönüş yap
   return(rates_total);
  }

Ayrıca Bakınız

Zaman serilerine erişim, ArrayGetAsSeries