Ошибка функции Bars - страница 2

 

Есть ограничение на количество вопросов без нормального выкладывания кода...

Как объявлен массив?

Что за N? это типа глобальная переменная? При N=1 как нужно отрабатывать? (я думаю цикл должен пробежаться)

Двухмерные массивы могут несколько подтормаживать.

 
splxgf:

Есть ограничение на количество вопросов без нормального выкладывания кода...

Как объявлен массив?

Что за N? это типа глобальная переменная? При N=1 как нужно отрабатывать? (я думаю цикл должен пробежаться)

Двухмерные массивы могут несколько подтормаживать.



Весь код я ни за что не выложу, т.к. это чисто моя интеллектуальная собственность... Однако, если есть неравнодушные люди, то как раз у них и прошу помощи. Для бОльшего понимая выложу кусок кода, относящегося к данной функции. По поводу "тормозов" вопроса и не было! Был вопрос, что в какой то момент функция Bars перестает инкрементироваться.

// глобальные переменные

#define N 1200
#define iSar 11

int SAR[iSar][N];

//есть функция void GetFirstData(), в которой получает начальные данные - как видно из кода их получается 1200*11=13200 значения. Так вот для того, чтобы на каджом новом баре не пересчитывать историю, я на новом баре сдвигаю мой массив по типу забываем о последнем баре, и берем только 11 значений 0 бара. - void GetNewBar().

void GetNewBar()
{
for(int i=N-1;i>0;i--)
for(int j=0;j<iSar;j++)
SAR[j][i]=SAR[j][i-1];
}

Может я что то неправильно объясняю???

 
luckysaratov:


Может я что то неправильно объясняю???

Тема называется ошибка в Bars, покажите хоть один полный пример с демонстрацией ошибки и использования этой функции. GetNewBar отношения к делу не имеет.

А не так: тут есть функция старт, в ней все Bars равны что и ежу понятно, а тут у нас коммент за пределами всего.

 

К примеру

int counted_Bars=0;

int start(){
   if (counted_Bars!=Bars){
      Comment(Bars,"|",counted_Bars);
      counted_Bars=Bars;
   }
   return(0);
  }

в этом коде ошибка возникает?

 
luckysaratov:


Весь код я ни за что не выложу, т.к. это чисто моя интеллектуальная собственность...

Жжете, автор. Не можете разобраться с базой языка и при этом утверждаете, что ваш код представляет интеллектуальную ценность.
 
Да любой код представляет интеллектуальную ценность для автора этого кода, но иногда он другим даром не нужен...
 
alsu:
Жжете, автор. Не можете разобраться с базой языка и при этом утверждаете, что ваш код представляет интеллектуальную ценность.


Наверно я зря 5 лет на инженера-программиста учился судя по Вашему мнению! На mql4 пишу с момента его выхода в свет...
 

Ошибка была в следующей структуре:

if ((otstupDN==1) && (sushaUP>sushaDN) && (sushaDN>NBarsPmin) && (sushaDN<NBarsPmax) && (sushaUP>NBarsSmin) && (sushaUP<NBarsSmax))
{
if((1.0*sushaDN/sushaUP>1.0*Percmin/100) && (1.0*sushaDN/sushaUP<1.0*Percmax/100))
{
Operation=OP_SELL;
return(true);
}

Как только разнес все условия на 2 if-а зависания прошли. Т.е. условия в 1-м if работают корректно и во 2-м тоже. Но вместе не получается. Точно могу сказать, что деления на 0 не может происходить. Параметры sushaUP и sushaDN всегда ненулевые параметры.

Мне конечно не понятно по какой причине такое произошло, но результат был достугнут, хоть и "неправильным" стилем кодинга...

 
luckysaratov:


Наверно я зря 5 лет на инженера-программиста учился судя по Вашему мнению! На mql4 пишу с момента его выхода в свет...

Может, и не зря, судить не буду: я с вами в одной песочнице не работал. Почему-то только ищете ошибку сначала в Bars, а потом у себя... Ваш код Ценен, поэтому вероятность ошибок в нем куда меньше - плохая установка для инженера-программиста.
 
alsu:

Может, и не зря, судить не буду: я с вами в одной песочнице не работал. Почему-то только ищете ошибку сначала в Bars, а потом у себя... Ваш код Ценен, поэтому вероятность ошибок в нем куда меньше - плохая установка для инженера-программиста.

О политике и моральных ценностях я пообщаюсь в другом месте. Однако для людей сказал: ошибка была в длине условий! такого раннее не видел!
Причина обращения: