Таймсерии
Для работы с историческими барами в языке 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--; } }