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


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Пн Июн 22, 2009 11:29 am Ответить с цитатой Вернуться к началу

Индикатор тренды основан на следующей мысли, для изменения тренда цена не только должна пересеч локальный мин или мак, но и должна совершить как минимум движение больше чем разница между двумя противоположными последовательными экстремумами. Идея взята отсуда http://blogs.mail.ru/mail/pev118/7475249CC3DA3DEF.html

Код:
SetBarsRequired(1000000, 0);


DF=Param("% от предыдущего экстремума",30,0,200,1);

up = L > Ref(L, -1) &  H >= Ref(H, -1);
dw = L <= Ref(L, -1) &   H< Ref(H, -1);

up = ExRem(up, dw);
dw = ExRem(dw, up);

swing = Flip(up, dw);

x = 0;
x0 = 0;
y = 0;
y0 = 0;

Hi = 0;
Lo = 0;
Line = Null;

function swingline(x0, x, y0, y)
{
   m = (y-y0)/(x-x0);
   for(j = x0; j <= x; j++)
   {
      Line[j] = y0 + (j-x0)*m;
   }
return Line;
}

for( i = 1; i < BarCount; i++ )
{
   if(swing[i] == 1)
   {
      if(up[i] == 1)
      {
         Lo[x] = y;

         y0 = y;
         x0 = x;

         y = H[i];
         x = i;
         swingline(x0, x, y0, y);
      }
      else if(H[i] > y)
      {
         y = H[i];
         x = i;
         swingline(x0, x, y0, y);
      }
   }
   else
   {
      if(dw[i] == 1)
      {
         Hi[x] = y;

         y0 = y;
         x0 = x;

         y = L[i];
         x = i;
         swingline(x0, x, y0, y);
      }
      else if(L[i] < y)
      {
         y = L[i];
         x = i;
         swingline(x0, x, y0, y);
      }       
   }
}

Hm = Hi > 0;
Lm = Lo > 0;





Plot(C, "", colorBlack, styleBar);


L1= ValueWhen(Lm, L, 1); 
H1= ValueWhen(Hm, H, 1);
L2= ValueWhen(Lm, L, 2);
H2= ValueWhen(Hm, H, 2);



LD=DF*IIf(L1 < L2, L2-L1, 0)/100;
HD=DF*IIf(H1 > H2, H1-H2, 0)/100;

Lg=L1-HD;
HN=H1+LD;


LE=Cross(H,Ref(HN,-1));
LX=Cross(Ref(Lg,-1),L);
k = BarsSince(LE);
n = BarsSince(LX);

CH=IIf(k>n,HN,Lg);
Plot( CH, "function example", 6 );

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Пн Июн 22, 2009 11:35 am Ответить с цитатой Вернуться к началу

Да можно переключалку сделать чтоб не H-L брались, а С, но мне не понравилось.

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Vladimir



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

СообщениеДобавлено: Ср Июл 15, 2009 1:31 am Ответить с цитатой Вернуться к началу

На мой взгляд, код заглядываетв в будущее, прогнал через:
Код:
sdvig = Param("sdvig", 0, 0, 200, 1);

O = Ref(O, -sdvig);
H = Ref(H, -sdvig);
L = Ref(L, -sdvig);
C = Ref(C, -sdvig);
Посмотреть профиль Отправить личное сообщение
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Ср Июл 22, 2009 12:44 pm Ответить с цитатой Вернуться к началу

Vladimir писал(а):
На мой взгляд, код заглядываетв в будущее, прогнал через:
Код:
sdvig = Param("sdvig", 0, 0, 200, 1);

O = Ref(O, -sdvig);
H = Ref(H, -sdvig);
L = Ref(L, -sdvig);
C = Ref(C, -sdvig);


Несовсем, он не стабилен. Но имеет право на жизнь. Smile

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Vladimir



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

СообщениеДобавлено: Пт Июл 24, 2009 5:12 pm Ответить с цитатой Вернуться к началу

Да, он очень интересный, что нужно исправить, чтобы он не заглядывал в будущее?
Посмотреть профиль Отправить личное сообщение
Teema



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

СообщениеДобавлено: Вс Авг 02, 2009 4:47 pm Ответить с цитатой Вернуться к началу

Vladimir писал(а):
Да, он очень интересный, что нужно исправить, чтобы он не заглядывал в будущее?


Если индикатор заглядывает в будущее не заглядывая ( не использует
в текущих расчетах цену закрытия текущего бара), то это супер индикатор. Laughing
Работает странно. Будем посмотреть. (Значения меняются предыдущие в зависимости от текущих) Crying or Very sad

Спасибо за код и за ссылку.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Teema



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

СообщениеДобавлено: Вс Авг 02, 2009 6:09 pm Ответить с цитатой Вернуться к началу

Vladimir писал(а):
На мой взгляд, код заглядываетв в будущее, прогнал через:
Код:
sdvig = Param("sdvig", 0, 0, 200, 1);

O = Ref(O, -sdvig);
H = Ref(H, -sdvig);
L = Ref(L, -sdvig);
C = Ref(C, -sdvig);


А можно словами объяснить. Как прогнал, что смотрел.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Пн Авг 03, 2009 6:45 am Ответить с цитатой Вернуться к началу

Teema писал(а):
Vladimir писал(а):
На мой взгляд, код заглядываетв в будущее, прогнал через:
Код:
sdvig = Param("sdvig", 0, 0, 200, 1);

O = Ref(O, -sdvig);
H = Ref(H, -sdvig);
L = Ref(L, -sdvig);
C = Ref(C, -sdvig);


А можно словами объяснить. Как прогнал, что смотрел.


Попробуй так

L1= ref(ValueWhen(Lm, L, 1),-2);
H1= ref(ValueWhen(Hm, H, 1),-2);
L2= ref(ValueWhen(Lm, L, 2),-2);
H2= ref(ValueWhen(Hm, H, 2),-2);

Скачет он потому что точки лок мин и макс становяться таковыми в среднем через 2 бара из-за цикла.

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Teema



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

СообщениеДобавлено: Чт Авг 06, 2009 7:13 pm Ответить с цитатой Вернуться к началу

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen