Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
Декабря 09, 2021, 08:11:34 am
Начало Помощь Поиск Войти Регистрация
Новости:

Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: Ошибка при обращении к переменной « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: Ошибка при обращении к переменной  (Прочитано 2778 раз)
AlexeyNev
Jr. Member
**
Сообщений: 53


Просмотр профиля Email
« : Марта 24, 2014, 11:48:31 am »

Добрый день.

Подскажите как обозначить начальное значение переменной нулем?
Код следующий   if (nn<nn[-1])   { nn=nn[-1];} else { nn=nn;}

Суть кода в том чтобы сравнивать значение с предыдущим и если оно больше то мы заменяем значение переменной на большее значение. Если же значение переменной меньше, то оставляем текущее значение. Таким образом переменная nn либо остается прежней, либо увеличивается. Проблема в том, что с самого начала переменная nn сравнивается с nn[-1], которой еще пока нет!

Как ей присвоить значение нуля для самого первого сравнения?
Записан
alexejshevchenko
Jr. Member
**
Сообщений: 68



Просмотр профиля WWW Email
« Ответ #1 : Марта 24, 2014, 03:11:57 pm »

не проверял, но попробуйте сами:

function init() {
setInitCandles(1);
nn[1]=0;
}
function calc(){
if (nn<nn[-1]){
nn=nn[-1];
} else {
 nn=nn;
}
}
Записан
AlexeyNev
Jr. Member
**
Сообщений: 53


Просмотр профиля Email
« Ответ #2 : Марта 24, 2014, 04:00:02 pm »

Вот код:


static n;
var g;
var maxlow = 99999999999999;


function init()
{
  n = getCandleByTime(parseTime("10:00 17.03.14"));
                                                                                     

  setInitCandles(n);
  setBounds(0, n, 0);
 
 
}

function calc()
{
 
     if (low<maxlow)   {maxlow=low;} else{maxlow=maxlow;}

   g =  ((close-maxlow)/2)+maxlow;

   if (g<g[-1] ) {g=g[-1];} {g=g;}

  line[0] = g ;
 
}


Подскажите, пожалуйста как его исправить. Проблема в строчке       if (g<g[-1] ) {g=g[-1];} {g=g;} , так как если ее удалить, то будет виден индикатор.

Задача этой строчки не делать изменения вниз. то есть линия должна быть либо горизонтальной, либо расти.





Записан
alexejshevchenko
Jr. Member
**
Сообщений: 68



Просмотр профиля WWW Email
« Ответ #3 : Марта 24, 2014, 04:14:49 pm »

static n;
static g;
var maxlow = 99999999999999;


function init()
{
  n = getCandleByTime(parseTime("10:00 17.03.14"));
                                                                                     

  setInitCandles(n);
  setBounds(0, n, 0);
 
 
}

function calc()
{
 
     if (low<maxlow)   {maxlow=low;} else{maxlow=maxlow;}

   g =  ((close-maxlow)/2)+maxlow;

    if (g>line[0][-1]) {
      line[0] = g;
   }
   else {
   line[0] = line[0][-1];
   }

 
}
Записан
Страниц: [1] Печать 
Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: Ошибка при обращении к переменной « предыдущая тема следующая тема »
Перейти в:  


Войти

Powered by MySQL Powered by PHP Powered by SMF 2.0.10 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!