Автор |
Сообщение |
cyber2003
Зарегистрирован: 10.04.2012
Сообщения: 52
|
Всем добрый день
Хочу запрограммировать вход не по первому, а по второму (третьему, четверному - в общем случае по N-ному ) пересечению ценой некоего уровня. Ничего в голову не приходит, как это можно сделать. Помогите, пожалуйста. Картинку прикрепил |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Mechanic
Зарегистрирован: 10.06.2008
Сообщения: 359
|
Buy = Sum(Cross(C, Level), BarsSince(условие_с_которого_начинается_подсчёт_пересечений)) == N; |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
cyber2003
Зарегистрирован: 10.04.2012
Сообщения: 52
|
Mechanic писал(а): |
Buy = Sum(Cross(C, Level), BarsSince(условие_с_которого_начинается_подсчёт_пересечений)) == N; |
Большое спасибо!! |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А я бы сделал по другому.
Иходя из логики, что если одна линия пересекла другую снизу вверх, то ранее она пересекла её сверху вниз, получается, что почти всегда (кроме первого раза на графике) пересечение будет вторым, третьим и т.д.
Вероятно имеется ввиду, что второе пересечение было не далеко от первого.
Тогда
Код: |
Cond1 = Cross(C, Level);
Cond2 = Hold(Cond1, 10); // два пересечения на расстоянии не более 10 баров
Buy = Cond1 AND Ref(Cond2, -1); |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег.
Последний раз редактировалось: 000 (Пт Сен 07, 2012 7:56 am), всего редактировалось 1 раз |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Mechanic
Зарегистрирован: 10.06.2008
Сообщения: 359
|
Так потому и надо задать условие, от которого нужно начать отсчитывать пересечения, не из произвольной же точки он собирается это делать. Ты предложил лишь частный случай такого условия.
Если нужно, например, второе пересечение за день, твой способ не сработает. |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
Teema
Зарегистрирован: 01.04.2009
Сообщения: 184
|
Startofday = TimeNum() < Ref(TimeNum(), -1);
CountBuy = Sum(Buy1, BarsSince(StartofDay)+1);
CountShort = Sum(Short1, BarsSince(StartofDay)+1);
CN=Buy1==1 OR Short1==1;
Count=Sum(CN, BarsSince(StartofDay)+1);
Оба условия считаются.
Этот способ подходит?Олег мне подсказал когда-то.
Олег, спасибо! Использую! |
|
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|