Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 HHV и LLV на новом экстремуме Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
roma095



Зарегистрирован: 02.02.2012
Сообщения: 170

СообщениеДобавлено: Пн Сен 02, 2013 3:56 pm Ответить с цитатой Вернуться к началу

Всем привет. Подскажите, а как сделать так, что бы при наступлении нового экстремума дня(на уже закрытой свече), у меня в массиве была не цена экстрмума на каждом баре, а цена экстремума именно на том баре где это случилось. По сути паттерн нужен. Если нового экстремума нет на текущем баре, то на выходе 0, а если есть, то паттерн верный и 1 или -1 и цена на экстремуме.
Пример: Хай дня был в 10:50 с ценой 33100. Потом цена стала падать. В текущей формуле на каждом баре до нового экстремума я буду получать 33100. А мне нужно, чтобы у меня значение паттерна было -1 если на этом баре хай и 1 если на этом баре лоу дня.
Само значение мне по сути не нужно, так как я его могу взять обычной функцией с привязкой по времени. У меня именно сложность с -1 и 1
Если я правильно понимаю я тут в будущее не заглядываю, так как экстремум рисуется уже на закрытой свече?
Объясню для чего мне это надо: При выгрузке значений индикаторов в файл мне нужно получить такую картинку. То есть к своим индикаторам хочу добавить колонку с баром экстремума. Зигзаг из за перерисовки мне не подходит.

30.08.2013 17:55 1
30.08.2013 17:55 0
30.08.2013 17:55 0
30.08.2013 17:55 -1
30.08.2013 17:55 0





//////////Srednyaya Linia Dnya, DIAPAZON DNYA//////////////////////////////////////
// ////
// ////
tb = ParamTime("Время начала", "10:05:00", 0); ////
te = ParamTime("Время окончания", "23:45:00", 0); ////
tbCond = Ref(TimeNum(), -1) < tb AND TimeNum() >= tb; ////
teCond = Ref(TimeNum(), -1) < te AND TimeNum() >= te; ////
Bars = BarsSince(tbCond) + 1; ////
Hi = HHV(C, Bars); ////
Lo = LLV(C, Bars); ////
dayHi = IIf(BarsSince(tbCond) < BarsSince(teCond), Hi, ValueWhen(teCond, Hi)); ////
dayLo = IIf(BarsSince(tbCond) < BarsSince(teCond), Lo, ValueWhen(teCond, Lo)); ////
dayline= (Hi+Lo)/2;
d1=dayHi;
d2=dayLo;
d3=dayline;
Посмотреть профиль Отправить личное сообщение
roma095



Зарегистрирован: 02.02.2012
Сообщения: 170

СообщениеДобавлено: Пн Сен 02, 2013 7:02 pm Ответить с цитатой Вернуться к началу

Вот вроде частично получилось

up=High>Hi;
down=Low<Lo;
Title="UP " +" "+up/-1 +" DOWN"+" "+down;

Получается вроде, но получается как то странно
Посмотреть профиль Отправить личное сообщение
roma095



Зарегистрирован: 02.02.2012
Сообщения: 170

СообщениеДобавлено: Пн Сен 02, 2013 9:02 pm Ответить с цитатой Вернуться к началу

Вот кажется теперь не заглядываем в будущее, проверьте плиз


tbCond = Ref(TimeNum(), -1);
teCond = Ref(TimeNum(), -1);

Bars = 10;

Hi = HHV(Ref(Close,-1), Bars);
Lo = LLV(Ref(Close,-1), Bars);

Hi = IIf(BarsSince(tbCond) < BarsSince(teCond), Hi, ValueWhen(teCond, Hi));
Lo = IIf(BarsSince(tbCond) < BarsSince(teCond), Lo, ValueWhen(teCond, Lo));
Medianline= (Hi+Lo)/2;


upp=Ref(High,-1)>Hi;


up=upp/-1;
dowwn=Ref(Low,-1)<Lo;
Посмотреть профиль Отправить личное сообщение
DMITRY



Зарегистрирован: 18.09.2009
Сообщения: 179

СообщениеДобавлено: Ср Сен 04, 2013 8:09 pm Ответить с цитатой Вернуться к началу

Пока Олега нет, если правильно понял то можно проще:
Код:
Up = IIf(H > Ref(H,-1), 1, 0);
Dw = IIf(L < Ref(L,-1), -1, 0);

Plot(Up,"Up",colorGreen,styleHistogram);
Plot(Dw,"Dw",colorRed,styleHistogram);
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen