Transaq

СБО "Transaq" => Подсистема ATF => Topic started by: Freyr on 03.09.2011, 10:56:44

Title: findmin работает неправильно
Post by: Freyr on 03.09.2011, 10:56:44
Здравствуйте! Столкнулся с неправильной работой findmin.
Code: [Select]
#samewindow
#line 0 nodraw
#line 1 solid green
function init()
{
setInitCandles(10);
}
function calc()
{
line[0]=close;
line[1]=line[0][-findMin(line[0], 10)];
}
Когда использую такой код, линия line[1] на всем графике становится равной нулю. Если заменить findmin на findmax, то максимальное значение рассчитывается без проблем. Как быть? Что можно сделать?
Title: Re: findmin работает неправильно
Post by: Heller on 05.09.2011, 11:21:05
Наша ошибка, исправляем.
Title: Re: findmin работает неправильно
Post by: nikolz on 05.09.2011, 19:20:26
можно вычислить 0-findmax(-line[0] ) получим тоже самое findmin(line[0] )
Title: Re: findmin работает неправильно
Post by: daytrader on 06.09.2011, 09:40:24
можно вычислить 0-findmax(-line[0] ) получим тоже самое findmin(line[0] )
а вот чой-то не работает
Title: Re: findmin работает неправильно
Post by: Heller on 06.09.2011, 12:36:38
findMin и findMax в качестве аргумента не принимают произвольное арифметическое выражение на данный момент. В принципе можно развить идею nikolz следующим образом:

Code: [Select]
line[0]=-close;
line[1]=line[0][-findMin(line[0], 10)];
Title: Re: findmin работает неправильно
Post by: daytrader on 06.09.2011, 12:57:53
спасибо, попробуем

да так работает. Еще вот что заметил, что вариант
Code: [Select]
#samewindow
#line 0 nodraw
#line 1 nodraw
#line 2 solid green
#line 3 solid green
function init()
{
setInitCandles(10);
}
function calc()
{
line[0]=high;
line[1]=low;

line[2]=line[0][-findMax(line[0], 10)];
line[3]=line[1][-findMin(line[1], 10)];
}

вообще работает корректно. Его даже можно как фракталы использовать.
только я там наверное лишние первые две линии сделал, но не суть.
Title: Re: findmin работает неправильно
Post by: Freyr on 06.09.2011, 19:07:30
Спасибо за помощь! Будем пробовать. Как раз что-то наподобие фракталов и получается.
Title: Re: findmin работает неправильно
Post by: daytrader on 07.09.2011, 12:51:33
но low все равно работает не очень правльно - он просто показывает все low а не минимальный...

когда почините функцию? или может лучше циклом каким сделать?
Title: Re: findmin работает неправильно
Post by: Freyr on 07.09.2011, 20:41:16
Попробовал все предложенные варианты, но, к сожалению, ничего толкового у меня не вышло. Daytrader, для расчета минимального значения для low есть  другая более простая возможность. Смотрите в руководстве функции  high[x, y], low[x, y]. И если я правильно понял, вам подойдет этот код:
Code: [Select]
#samewindow
#line 0 solid green
function init()
{
setInitCandles(10);
}
function calc()
{
line[0]=low[-10, 0];
}
Данный скрипт рисует минимум цены за 10 последних свечек. Успехов вам.
Title: Re: findmin работает неправильно
Post by: daytrader on 08.09.2011, 11:13:44
спасибо тебе! посмотрю