TarasBY: Не могу не согласиться: сначала куча объявленных статических переменных, а затем "изменение значений внешних переменных" - своеобразная логика...
думаю да, вы правы. скорее всего именно это влияет на правильный расчет
как то я пропустил этот момент.
дело в том, что, статические переменные в начальных условиях я использую, можно сказать, традиционно - как то повелось так со временем.
и видимо совсем упустил из виду то, что их значения неизменны в процессе работы индикатора
или может вы про то, что существуют такие UDTop, при которых расчет не проводится? UDTop - это флаг, который принимает целочисленные значения от -1 до 1.
то там явно есть вывод значения или может вы про то, что существуют такие UDTop, при которых расчет не проводится? UDTop - это флаг, который принимает целочисленные значения от -1 до 1.
Согласен. Я немножко приводил Ваш код в удобочитаемый для себя вид и return() попал внутрь последнего if() - пришлось натуитивно восстанавливать:
double TopDistant (double& ChH[],
double& ChL[],
int& ANTH[],
double& ATH[],
int& ANTL[],
double& ATL[],
int UDTop)
{
double Delta = 0.0;
//----if (UDTop == 0)
{
if (UDTop == 1)
{
for (int i = 0; i < ArraySize (ANTH); i++)
{Delta += (ATH[i] - ChH[ANTH[i]]);}
}
if (UDTop == -1)
{
for (i = 0; i < ArraySize (ANTL); i++)
{Delta += (ATL[i] - ChL[ANTL[i]]);}
}
}
//----return (MathAbs (Delta));
}
Не говорю что код плохой или хороший. Просто у Вас довольно своеобразная логика (по крайней мере на мою слабо похожа).
Для начала уберите ВСЕ static переменные (пусть будут "просто глобальными") - потом расскажете, что получилось.
попробую. после тестирования дам знать
Не могу не согласиться: сначала куча объявленных статических переменных, а затем "изменение значений внешних переменных" - своеобразная логика...
думаю да, вы правы. скорее всего именно это влияет на правильный расчет
как то я пропустил этот момент.
дело в том, что, статические переменные в начальных условиях я использую, можно сказать, традиционно - как то повелось так со временем.
и видимо совсем упустил из виду то, что их значения неизменны в процессе работы индикатора
это весьма ценный совет, большое спасибо
думаю да, вы правы. скорее всего именно это влияет на правильный расчет
как то я пропустил этот момент.
дело в том, что, статические переменные в начальных условиях я использую, можно сказать, традиционно - как то повелось так со временем.
и видимо совсем упустил из виду то, что их значения неизменны в процессе работы индикатора
это весьма ценный совет, большое спасибо
Посмотрите в своём коде последнюю функцию: она "не явно возвращает значение" - так надо, или Вы что-то пропустили?
если вы про эту функцию
то там явно есть вывод значенияили может вы про то, что существуют такие UDTop, при которых расчет не проводится? UDTop - это флаг, который принимает целочисленные значения от -1 до 1.
если вы про эту функцию
то там явно есть вывод значенияили может вы про то, что существуют такие UDTop, при которых расчет не проводится? UDTop - это флаг, который принимает целочисленные значения от -1 до 1.
Согласен. Я немножко приводил Ваш код в удобочитаемый для себя вид и return() попал внутрь последнего if() - пришлось натуитивно восстанавливать:
Вопрос снят.
Вопрос снят.
А вам не кажется, что в отредактированном вами варианте при UDTop==0 расчет Delta проводится не будет?
А вам не кажется, что в отредактированном вами варианте при UDTop==0 расчет Delta проводится не будет?