Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
ФХЪРСап 13, 2024, 05:57:56 pm
Начало Помощь Поиск Войти Регистрация
Новости:

Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: findmin работает неправильно « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: findmin работает неправильно  (Прочитано 6712 раз)
Freyr
Newbie
*
Сообщений: 4


Просмотр профиля Email
« : бХЭвпСап 03, 2011, 10:56:44 am »

Здравствуйте! Столкнулся с неправильной работой 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, то максимальное значение рассчитывается без проблем. Как быть? Что можно сделать?
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #1 : бХЭвпСап 05, 2011, 11:21:05 am »

Наша ошибка, исправляем.
Записан
nikolz
Sr. Member
****
Сообщений: 285


Просмотр профиля Email
« Ответ #2 : бХЭвпСап 05, 2011, 07:20:26 pm »

можно вычислить 0-findmax(-line[0] ) получим тоже самое findmin(line[0] )
Записан
daytrader
Full Member
***
Сообщений: 174


Просмотр профиля Email
« Ответ #3 : бХЭвпСап 06, 2011, 09:40:24 am »

можно вычислить 0-findmax(-line[0] ) получим тоже самое findmin(line[0] )
а вот чой-то не работает
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #4 : бХЭвпСап 06, 2011, 12:36:38 pm »

findMin и findMax в качестве аргумента не принимают произвольное арифметическое выражение на данный момент. В принципе можно развить идею nikolz следующим образом:

Code: [Select]
line[0]=-close;
line[1]=line[0][-findMin(line[0], 10)];
Записан
daytrader
Full Member
***
Сообщений: 174


Просмотр профиля Email
« Ответ #5 : бХЭвпСап 06, 2011, 12:57:53 pm »

спасибо, попробуем

да так работает. Еще вот что заметил, что вариант
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)];
}

вообще работает корректно. Его даже можно как фракталы использовать.
только я там наверное лишние первые две линии сделал, но не суть.
« Последнее редактирование: бХЭвпСап 06, 2011, 01:22:37 pm от daytrader » Записан
Freyr
Newbie
*
Сообщений: 4


Просмотр профиля Email
« Ответ #6 : бХЭвпСап 06, 2011, 07:07:30 pm »

Спасибо за помощь! Будем пробовать. Как раз что-то наподобие фракталов и получается.
Записан
daytrader
Full Member
***
Сообщений: 174


Просмотр профиля Email
« Ответ #7 : бХЭвпСап 07, 2011, 12:51:33 pm »

но low все равно работает не очень правльно - он просто показывает все low а не минимальный...

когда почините функцию? или может лучше циклом каким сделать?
Записан
Freyr
Newbie
*
Сообщений: 4


Просмотр профиля Email
« Ответ #8 : бХЭвпСап 07, 2011, 08:41:16 pm »

Попробовал все предложенные варианты, но, к сожалению, ничего толкового у меня не вышло. 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 последних свечек. Успехов вам.
Записан
daytrader
Full Member
***
Сообщений: 174


Просмотр профиля Email
« Ответ #9 : бХЭвпСап 08, 2011, 11:13:44 am »

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


Войти

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