Суббота, 13 Декабрь 2008 08:05

Как создать пятиминутки на основании одноминуток с помощью массивов?

Автор 
Оцените материал
(0 голосов)
Я читал про создание данных следующего уровня (например 5, 10-минуток, часа) при помощи arrays на основе 1-минуток. Здесь могут быть варианты, а как ВЫ это делаете?


    Vars:CB5(1){CurrentBar для 5 мин},H5(H){High для 5 мин},L5(L){Low для 5 мин};
    Arrays: MyArray[10](0){одномерный массив 0-10 заполненный 0 -пример},
    MyMultiArray[10,10,5](Close){трехмерный массив 0-10,0-10,0-5 заполненый Close-пример},
    OHLC5min[10,3](Open){массив для OHLC 5 мин на 11 пятиминуток};
 
    {присвоение Open и начальных H5,L5 на 6,11,16 и т.д. баре}
    If CurrentBar=CB5*5+1 Then Begin
    OHLC5min[0,0]=Open;
    H5=H;
    L5=L;
    End;
    {Up H5, Down L5}   
    If H > H5 Then H5=H; 
    If L < L5 Then L5=L;
    {закрытие 5 мин}
    If CurrentBar=CB5*5 Then Begin
    {сдвиг массива}
    For Value1=10 downto 1 Begin
    OHLC5min[Value1,0]=OHLC5min[Value1-1,1];
    OHLC5min[Value1,1]=OHLC5min[Value1-1,1];
    OHLC5min[Value1,2]=OHLC5min[Value1-1,1];
    OHLC5min[Value1,3]=OHLC5min[Value1-1,1];
    End;
    {присвоение новых}
    OHLC5min[0,1]=H5;
    OHLC5min[0,2]=L5;
    OHLC5min[0,3]=Close;
    CB5=CB5+1;
    End;

Использование готовых данных как Data2 и т.д. намного эффективнее в плане скорости и экономии ресурсов.

 

Прочитано 3473 раз Последнее изменение Среда, 04 Май 2011 14:15
Gelium

Автор сайта.


Pavel Gelium 2000-2017 © All rights reserved.