Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1040

 
Доброго времени суток! Вопрос следующего характера, не могу никак понять, при компилировании индикатора получаю всегда разные значения. Существует ли проверка вызова индикатора результат работы iCustom??? Есть подозрения что какието индикаторы не успевают подгружатся, поэтому происходит то что сигналы скачут. Можно как то проверить что iCustom подгрузился правильно???
 
LRA:

Ekburg!!!  Все предупреждения надо устранить. Первое предупреждение означает, что оператор не имеет эффекта - отброшен компилятором - это плохо. Последнее предупреждение - размер локальной переменной (массив) превышает 512 кБ и потому его нет - это очень плохо. Остальные предупреждения - возможно использование неинициализированной переменной. Это как на карту деньги забыли положить, а пытаемся тратить. Надо проверить все ветви программы. Иногда компилятор перестраховывается. Тогда надо объявлять так: int x=0;  string y="";  bool z=false;

первое и последнее предупреждение устранил.

хорошо, понял, попробую)

 
LRA:

Ekburg!!!  Все предупреждения надо устранить. Первое предупреждение означает, что оператор не имеет эффекта - отброшен компилятором - это плохо. Последнее предупреждение - размер локальной переменной (массив) превышает 512 кБ и потому его нет - это очень плохо. Остальные предупреждения - возможно использование неинициализированной переменной. Это как на карту деньги забыли положить, а пытаемся тратить. Надо проверить все ветви программы. Иногда компилятор перестраховывается. Тогда надо объявлять так: int x=0;  string y="";  bool z=false;

Присвоил к переменным, при инициализации, нули, предупреждения пропали, но как быть с массивами?

Причём ругается не на место его объявления, а там где он в конце используется, где стоит вывод инфы из массива через функцию принт. 

 
Ekburg:

Присвоил к переменным, при инициализации, нули, предупреждения пропали, но как быть с массивами?

Причём ругается не на место его объявления, а там где он в конце используется, где стоит вывод инфы из массива через функцию принт. 

выводить не одним принтом а двумя-тремя... или лучше в цикле, переменная формируется очень большая...
 
Tecuciztecatl:
выводить не одним принтом а двумя-тремя... или лучше в цикле, переменная формируется очень большая...

я и так циклом вывожу...(

for(int z=0;z<6;z++)
      {
      Print("О!!!   ",z,"   Кол-во  = ",Info[z][0],"; Кол-во B = ",Info[z][1],"; Кол-во S = ",Info[z][2],"; Максимальное отклонение = ",Info[z][3],"; Среднее отклонение = ",Info[z][4]);
      Print("B!!!   ",z,"   Кол-во + = ",BI[z][0],"; Кол-во - = ",BI[z][1],"; Общий объём = ",BI[z][2],"; Средний объём = ",BI[z][3],"; Мах просадка = ",BI[z][4],"; Средняя просадка = ",BI[z][5]);
      Print("S!!!   ",z,"   Кол-во + = ",SI[z][0],"; Кол-во - = ",SI[z][1],"; Общий объём = ",SI[z][2],"; Средний объём = ",SI[z][3],"; Мах просадка = ",SI[z][4],"; Средняя просадка = ",SI[z][5]);
      }

 Красным выделил куда ссылается компилятор.

 

разбить каждый принт на 2-3 принта... хотя странно... а в массиве какие типы данных

попробовал у себя так, всё работает:

double Info[6][6],BI[6][6],SI[6][6];

for(int z=0;z<6;z++)
      {
      Print("О!!!   ",z,"   Кол-во  = ",Info[z][0],"; Кол-во B = ",Info[z][1],"; Кол-во S = ",Info[z][2],"; Максимальное отклонение = ",Info[z][3],"; Среднее отклонение = ",Info[z][4]);
      Print("B!!!   ",z,"   Кол-во + = ",BI[z][0],"; Кол-во - = ",BI[z][1],"; Общий объём = ",BI[z][2],"; Средний объём = ",BI[z][3],"; Мах просадка = ",BI[z][4],"; Средняя просадка = ",BI[z][5]);
      Print("S!!!   ",z,"   Кол-во + = ",SI[z][0],"; Кол-во - = ",SI[z][1],"; Общий объём = ",SI[z][2],"; Средний объём = ",SI[z][3],"; Мах просадка = ",SI[z][4],"; Средняя просадка = ",SI[z][5]);
      }
 
Ekburg: циклом вывожу...
Покажите объявление массива и объясните, почему так. Почему двухмерный, почему такого размера, сколько элементов фактически используется, какой запас и для чего.
 
LRA:
Покажите объявление массива и объясните, почему так. Почему двухмерный, почему такого размера, сколько элементов фактически используется, какой запас и для чего.

   double Info[6][5];
   double BI[6][7];
   double SI[6][7];

 Объявляются в самом начале срипта, далее постепенно с выполнением кода заполняется.

Может дело в том, что при некоторых вычислениях выдаются значения с множеством нулей? Может нужно их нормализовать? 

 

Ребята подскажите вот какую вестч. В индикаторе происходит вызов других индикаторов. Как сделать так чтобы  выполнение функий основного индикатора происходило только после того как все значения подгрузятся из других индикаторов. Слип в индикаторе не работает, Что делать???? Как проыверить что данные из других индикаторов подгрузились и можно начинать расчёт????

Потому как при компилировании во время появления следующего бара происходит скачёк, какието данные берутся за старый бар, какието за новый, если учесть что использую разные символы, то получается что какой то символ не обновился и данные приходят за предыдущий бар. Как синхронизировать что на всех символах появился новый бар и можно производить расчёт??? 

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