//Делитель <- Значение сколько будет объединяться ячеек вместе
int iCurrentDiv = (int)tickSRow;
//Значение нижнего уровня бара в целых единицах
int iFullValue = (int)Math.Round(barLowPrice/TickSize,0);
//Значение от которого будет отсчитываться начало свечи со смещением
int iCorrectLowValue = iFullValue - iFullValue % iCurrentDiv;
//Количество элементов в массиве свечи
int iArrayValue = (int)Math.Round((barHighPrice/TickSize-iCorrectLowValue) / iCurrentDiv, 0) + 1;
//Определение размера массива объёмов свечи и обнуление
Array.Resize(ref tmpValArray,iArrayValue);
Array.Clear(tmpValArray,0,tmpValArray.Length);
//Запись массива значениями
if (chartBarIndex == ChartBars.Count - 1)
foreach (KeyValuePair<double, BidAskVolume> kvp in bidAskVolume)
tmpValArray[(int)(Math.Round((((kvp.Key/TickSize))-iCorrectLowValue)/iCurrentDiv,0))]+=(kvp.Value.askVolume + kvp.Value.bidVolume);
else
foreach (ABV t in currentBAVList)
tmpValArray[(int)(Math.Round((((t.Price/TickSize))-iCorrectLowValue)/iCurrentDiv,0))]+=(t.askVolume + t.bidVolume);