ПОМАГИТЕ УСТРАНИТЬ ГЛЮК ИНДИКАТАРА!

 
Индикатор ведёт себя на реал рынке так: изчезают гистограмма, а после переустановки появляется снова, при хорошем тренде на текущем баре текущая гистограмм улетает выше всех, а остальной график прижымается к нулю. И на модели №3 должен работать так: относительно центра прошлого бара к центру текущего и не учитывать тени, а мерить лишь между открытием и закрытием! Помогите плиз исправить этот индикатор, я сам не програмист, а только учусь, а этот индикатор очень мне нужен проверить одну стратегию!/*[[
Name := INDICATOR DELTAFORCE FOR MT 3.10
Author := ASHARIPOV AINUR
Link := ainurhal@mail.ru
Notes := DELTA FORCE TREND
Separate Window := yes
First Color := Lime
First Draw Type := histogram
First Symbol := 217
Use Second Data := Yes
Second Color := red
Second Draw Type := histogram
Second Symbol := 218
]]*/

Inputs: Mode(0);

Variable : cb(0),valueh1(0),valuel(0),valueh(0),value(0),price(0),hi(1),lo(1);
Variable : resh(0),resl(0),deltah(0),deltal(0);
Variables: ValA(0), ValB(0);

SetLoopCount(0);
For CB = 0 To bars - 1
{
SetIndexValue(CB,0);
SetIndexValue2(CB,0);
};

For CB = bars - 2 Downto 0
{
switch Mode
{
case 0:
ValA = close[CB];
ValB = close[CB + 1];
case 1:
ValA = (Low[CB] + High[CB])/2;
ValB = close[CB + 1];
case 2:
ValA = (Low[CB] + High[CB])/2;
ValB = (Low[CB + 1] + High[CB + 1])/2;
case 3:
ValA = (Low[CB] - High[CB])/2;
ValB = (Low[CB + 1] - High[CB - 1])/2;
default:
ValA = close[CB];
ValB = close[CB + 1];
};

If ValA > ValB then
{
resl = 0;
if resh = 0 then
{
deltah = 0;
};
deltah += ValA - ValB;
resh = 1;
};

if resh = 0 then
{
deltah = 0;
};

If ValA < ValB then
{
resh = 0;
if resl = 0 then
{
deltal = 0;
};
deltal += ValB - ValA;
resl = 1;
};

if resl = 0 then
{
deltal = 0;
};

SetIndexValue(CB,deltah);
SetIndexValue2(CB,deltal);

};
Причина обращения: