img

Таймсерии

Для работы с историческими барами в языке NetTradeX используются специальные массивы-таймсерии. Особенность этих массивов - обратная индексация: последний элемент имеет индекс 0, предпоследний - 1 и т.д. Названия у массивов предопределенные и программисту не нужно их объявлять.

Существуют следующие массивы-таймсерии:

  • Open - цена открытия бара
  • High - максимальная цена бара
  • Low - минимальная цена бара
  • Close - цена закрытия бара
  • Time - время открытия бара
  • Volume - тиковый объем бара

Пример. Найдем максимальное и минимальное значение среди всех баров за последний час и выведем соответствующие линии на графике:

 int ExtCountedBars = 0; double ExtMapBuffer1[]; double ExtMapBuffer2[]; int Initialize() { Indicator.SetIndexCount(2); Indicator.SetIndexBuffer(0,ExtMapBuffer1); Indicator.SetIndexStyle(0,0,0,2,0xFF0000); Indicator.SetIndexBuffer(1,ExtMapBuffer2); Indicator.SetIndexStyle(1,0,0,2,0x0000FF); return(0); } int Run() { ExtCountedBars=Indicator.Calculated; if (ExtCountedBars<0) { System.Print("Error"); return(-1); } if (ExtCountedBars>0) ExtCountedBars--; draw(); return(0); } int DeInitialize() { return(0); } void draw() { double high = High[0]; double low = Low[0]; datetime currentTime = System.Time; for(int i=0; i<Chart.Bars && ((Time[i]+3600)>currentTime); i++) { if(High[i]>high) { high = High[i]; } if(Low[i]<low) { low = Low[i]; } } int pos=Chart.Bars-1; while(pos>=0) { ExtMapBuffer1[pos]=high; ExtMapBuffer2[pos]=low; pos--; } }