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



Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск

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

Прошу помощи в разработке индикатора, который будет отслеживать дивергенцию цены и какого-либо индикатора, построенного на этой цене или иное. Почему пишу в системы? Подразумеваю, что поиск будет осуществляться через циклы, а я в них вообще никак, поэтому хотелось бы, что были прописаны шаблоны под сигналы, дабы протестировать систему.

Суть в чем? Имеем график цены. Имеем индикатор, к примеру следующий:

Код:

SB = Foreign("SISP", "Close");
VT = Foreign("SIPR", "Close");

spred2 = SB/VT;

n = Param("n", 3, 2, 300, 1);

StdMA = MA(spred2, n);
stde = sqrt( Sum((spred2-StdMA)^2 , n)/n);


На картинке видим, как цена показывает хай дня. Однако индикатор spred2 в момент обновления хая находится гораздо ниже, чем в ходе первого хая. Вот такие моменты и требуется выявить.

Подозреваю, что начинать работу целесообразно через нахождение хай/лоя текущего дня.

Так, к примеру, экстремумы в определенном временном диапазоне нового дня искали через следующий код:
Код:
NewDay = Day() != Ref(Day(), -1);

Res = ValueWhen(TimeNum() == 105500, HHV(H, BarsSince(NewDay) + 1));
Sup = ValueWhen(TimeNum() == 105500, LLV(L, BarsSince(NewDay) + 1));


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

Ну и давать в систему сигналы - при обнаружении дивера - входить в позицию, при ... - выходить.

Заранее благодарю. Думаю, тема будет интересна многим.

П.С. Я видел в интернете индикатор Дивергенции РСИ, но там используется Зиг-Заг. Но он ведь перерисовывается - вот что печально...
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Ноя 18, 2012 10:30 am Ответить с цитатой Вернуться к началу

Ну один из вариантов
Цена
Код:
BeginDay = Ref(Day(), -1) != Day();
DayBars = BarsSince(BeginDay);

NewHigh = H > Ref(HHV(H, DayBars), -1);

Ну и аналогично для индикатора.
Если по цене есть NewHigh а по индикатору нет, то это оно и есть...

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
AntColonel



Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск

СообщениеДобавлено: Вс Ноя 18, 2012 11:55 am Ответить с цитатой Вернуться к началу

Вот так сделал. Вроде ловить дивера. Но, конечно, надо чем-то все это еще фильтровать.

Спасибо

Код:
SB = Foreign("RIZVSP", "Close");
VT = Foreign("RIZVPR", "Close");

spred2 = SB/VT;


BeginDay = Ref(Day(), -1) != Day();
DayBars = BarsSince(BeginDay);

NewHigh = H > Ref(HHV(H, DayBars), -1);
NewHighS = spred2 < Ref(HHV(spred2, DayBars), -1);
NewHighS2 = spred2 > Ref(HHV(spred2, DayBars), -1);

NewLow = L < Ref(LLV(L, DayBars), -1);
NewLowS = spred2 > Ref(LLV(spred2, DayBars), -1);
NewLowS2 = spred2 < Ref(LLV(spred2, DayBars), -1);

HS =  NewHigh AND NewHighS;
HS2 = NewHigh AND NewHighS2;

LS = NewLow AND NewLowS;
LS2 = NewLow AND NewLowS2;

Buy = LS;
Short = HS;
Sell = HS OR HS2;
Cover = LS OR LS2;
Посмотреть профиль Отправить личное сообщение
AntColonel



Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск

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

Олег, начал тут более пристально просматривать работу кода.

Как выше сказано, одним из критериев для входа (выхода) является обновление ценой дневного экстремума.

Часть кода, отвечающего за это ниже:

Код:
//BeginDay = Ref(Day(), -1) != Day();
BeginDay = Day() != Ref(Day(), -1);
DayBars = BarsSince(BeginDay);   
 
NewHigh = H > Ref(HHV(H, DayBars), -1); 


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

Так вот, посмотрим на картинку. Как можно видеть, вход идет уже на первой свече дня. Но ведь свеча лишь формирует хай и лой дня. Соответственно на ней не должно быть входа. Ведь не было пробития экстремума. Далее... спустя две свечи мы видим выход из позиции и вход. Т.е. система считает, что был пробит лой. Но лой здесь был пробит лишь второй свечи. А лой дня, сформированный первой свечой пробит не был. Т.е. входа/выхода по логике быть не должно, а он есть.

Т.е. как я могу понять, отчет экстремумов начинается не с первой свечи, а со второй. Как-то можно это поправить?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вт Ноя 27, 2012 8:30 am Ответить с цитатой Вернуться к началу

Код:
DayBars = BarsSince(BeginDay) + 1;

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
AntColonel



Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск

СообщениеДобавлено: Вт Ноя 27, 2012 8:45 am Ответить с цитатой Вернуться к началу

000 писал(а):
Код:
DayBars = BarsSince(BeginDay) + 1;


Все равно провела ту сделку в шорт, что на картинке.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вт Ноя 27, 2012 8:48 am Ответить с цитатой Вернуться к началу

Ну да. Сделку на первом баре дня надо запретить.
Код:
NewHigh AND !BeginDay

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
AntColonel



Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск

СообщениеДобавлено: Вт Ноя 27, 2012 10:23 am Ответить с цитатой Вернуться к началу

000 писал(а):
Ну да. Сделку на первом баре дня надо запретить.
Код:
NewHigh AND !BeginDay


Ага, благодарю. Заработало.
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen