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



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

СообщениеДобавлено: Пт Сен 07, 2012 2:57 am Ответить с цитатой Вернуться к началу

Всем добрый день
Хочу запрограммировать вход не по первому, а по второму (третьему, четверному - в общем случае по N-ному ) пересечению ценой некоего уровня. Ничего в голову не приходит, как это можно сделать. Помогите, пожалуйста. Картинку прикрепил
Посмотреть профиль Отправить личное сообщение
Mechanic



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

СообщениеДобавлено: Пт Сен 07, 2012 6:31 am Ответить с цитатой Вернуться к началу

Buy = Sum(Cross(C, Level), BarsSince(условие_с_которого_начинается_подсчёт_пересечений)) == N;
Посмотреть профиль Отправить личное сообщение ICQ Number
cyber2003



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

СообщениеДобавлено: Пт Сен 07, 2012 6:42 am Ответить с цитатой Вернуться к началу

Mechanic писал(а):
Buy = Sum(Cross(C, Level), BarsSince(условие_с_которого_начинается_подсчёт_пересечений)) == N;

Большое спасибо!!
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пт Сен 07, 2012 7:50 am Ответить с цитатой Вернуться к началу

А я бы сделал по другому.
Иходя из логики, что если одна линия пересекла другую снизу вверх, то ранее она пересекла её сверху вниз, получается, что почти всегда (кроме первого раза на графике) пересечение будет вторым, третьим и т.д.
Вероятно имеется ввиду, что второе пересечение было не далеко от первого.
Тогда

Код:
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

СообщениеДобавлено: Пт Сен 07, 2012 7:54 am Ответить с цитатой Вернуться к началу

Так потому и надо задать условие, от которого нужно начать отсчитывать пересечения, не из произвольной же точки он собирается это делать. Ты предложил лишь частный случай такого условия.

Если нужно, например, второе пересечение за день, твой способ не сработает.
Посмотреть профиль Отправить личное сообщение ICQ Number
Teema



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

СообщениеДобавлено: Пт Сен 07, 2012 8:31 pm Ответить с цитатой Вернуться к началу

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);

Оба условия считаются.

Этот способ подходит?Олег мне подсказал когда-то.
Олег, спасибо! Использую!
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen