Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
29.04.2025, 18:18:46
Начало Помощь Поиск Войти Регистрация
Новости: ООО «Скрин маркет системз», правообладатель программы «Система брокерского обслуживания «TRANSAQ» официально заявляет, что не ведет никакой деятельности в мессенджерах или социальных сетях. 
Подробности на нашем сайте  WWW.TRANSAQ.RU.

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


Просмотр профиля Email
« : 24.03.2014, 11:48:31 »

Добрый день.

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

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

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



Просмотр профиля WWW Email
« Ответ #1 : 24.03.2014, 15:11:57 »

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

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.03.2014, 16:00:02 »

Вот код:


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.03.2014, 16:14:49 »

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!