[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 389

 

Добрый день, пробую так посчитать объем бычьих и медвежих минутных свечей в часе:

if (iTime(NULL,60,1)!=TS)
{
int TotalBars = 59; // Общее количество свечей по которым нужно осуществлять перебор
int Vupbars;
int Vdnbars;
int V=iVolume(NULL,IndPeriod,1);
for(int p=0; p<TotalBars; p++)
{
if(Close[1]>Open[1]) Vupbars=Vupbars+iVolume(NULL,0,1); else
if(Close[1]<Open[1]) Vdnbars=Vdnbars+iVolume(NULL,0,1);
}
}
TS=iTime(NULL,60,1);

что не так, почему не работает ?

 
Stells:

Добрый день, пробую так посчитать объем бычьих и медвежих минутных свечей в часе:

if (iTime(NULL,60,1)!=TS)
{
int TotalBars = 59; // Общее количество свечей по которым нужно осуществлять перебор
int Vupbars;
int Vdnbars;
int V=iVolume(NULL,IndPeriod,1);
for(int p=0; p<TotalBars; p++)
{
if(Close[1]>Open[1]) Vupbars=Vupbars+iVolume(NULL,0,1); else
if(Close[1]<Open[1]) Vdnbars=Vdnbars+iVolume(NULL,0,1);
}
}
TS=iTime(NULL,60,1);

что не так, почему не работает ?

все время первую свечку исследуете
 

if (iTime(NULL,60,1)!=TS)
{
int TotalBars = 59; // Общее количество свечей по которым нужно осуществлять перебор
int Vupbars;
int Vdnbars;
int V=iVolume(NULL,60,1);
for(int p=0; p<TotalBars; p++)
{
if(Close[p]>Open[p]) Vupbars=Vupbars+iVolume(NULL,0,p); else
if(Close[p]<Open[p]) Vdnbars=Vdnbars+iVolume(NULL,0,p);
}
}
TS=iTime(NULL,60,1);

так работает, но значения Vupbars и Vdnbars моргнут и обнуляются -- этот вопрос я снял, второй нет ещё ?

и ещё их сумма не равна V почему ?

 
Stells:

и ещё их сумма не равна V почему ?

потому что вы сравниваете объем 59 последних минутных свечей (включая ту, которая только что началась) последней закрытой часовой

 

не, там на порядок цифры не совпадают

к примеру на часовках объем 40

сумма минуток равна 320

 
dkfl.zrjdktdbx:

Ну как-то примерно так, по моему разумению


Неа, так не получается, они никогда не равны. И вообще, у меня почему-то на графике визуально сигнальная явно ниже главной, например, а значения говорят об обратном. Ничего не понимаю, в чем прикол?
 
Stells:

не, нам на порядок цифры не совпадают

к примеру на часовках объем 40

сумма минуток равна 320

кидаете на M1 индикатор?

приведите полный код и воспользуйтесь при вставке кнопкой SRC

 
ilunga:

кидаете на M1 индикатор?

приведите полный код и воспользуйтесь при вставке кнопкой SRC


это советник

на м1

 
Stells:


это советник

на м1

в любом случае приведите немного больше кода - например где используются Vupbars и Vdnbars что вы выясняете что они обнуляются

а также желательно их обнулить перед циклом:

int Vupbars = 0;
int Vdnbars = 0;

 

так сделал:

int Vupbars; - это вынес в голабльные переменные
int Vdnbars; - это вынес в голабльные переменные

int V=iVolume(NULL,60,1);

if (iTime(NULL,60,1)!=TS)
{
int TotalBars = 61; // Общее количество свечей по которым нужно осуществлять перебор
Vupbars=0;
Vdnbars=0;

for(int p=1; p<TotalBars; p++)
{
if(Close[p]>Open[p]) Vupbars=Vupbars+iVolume(NULL,0,p); else
if(Close[p]<Open[p]) Vdnbars=Vdnbars+iVolume(NULL,0,p);
}
}
TS=iTime(NULL,60,1);

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