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


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

СообщениеДобавлено: Пн Мар 09, 2009 10:08 pm Ответить с цитатой Вернуться к началу

Расчитывать в цикле массив которому в момент образования нового бара (последний тик старого) присваивать 1.

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


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

СообщениеДобавлено: Вт Мар 10, 2009 6:52 am Ответить с цитатой Вернуться к началу

000 писал(а):
Расчитывать в цикле массив которому в момент образования нового бара (последний тик старого) присваивать 1.


Ну это легко,

Код:
SetBarsRequired( 100000, 0 );

pi = Optimize("pi", 1, 0.1, 5, 0.2);
d = C;
C1 = C;
O1 = O;
H1 = H;
L1 = L;
n = 1;


for(i = 2; i < BarCount; i ++)
{
   if(i == 2) trend[1] = 1;

   if(trend[i-1] == 1)
 
   {
   
   n[i] = n[i-1];
   O1[i] = O1[i-1];
t[i] = 1;
   t[i-1] = 0;

   C1[i] = d[i];

   if(L[i] > L1[i-1])

   {

   L1[i] = L1[i-1];

   }

   else

   {

   L1[i] = L[i];

   }

   if(H[i] > h1[i-1])

   {

   H1[i] = H[i];

   }

   else

   {

   H1[i] = H1[i-1];

   

   }

   if(h1[i]-L1[i] > (C[i-1]/100)*pi) 
 
   {

   trend[i] = 0; 
   t[i-1] = 1;
   O1[i] = O[i];
   H1[i] = H[i];
   L1[i] = L[i];
   n[i] = n[i]+1;

   }

   else

   {

   trend[i] = 1;

   }
   }
   if(trend[i-1] == 0)

  {
   t[i] = 1;
   t[i-1] = 0;
   
   n[i] = n[i-1];
   O1[i] = O1[i-1];

   C1[i] = d[i];

   if(L[i] > L1[i-1])

   {

   L1[i] = L1[i-1];

   }

   else

   {

   L1[i] = L[i];

   }

   if(H[i] > h1[i-1])

   {

   H1[i] = H[i];

   }

   else

   {

   H1[i] = H1[i-1];

   }

   

   if (h1[i]-L1[i] > (C[i-1]/100)*pi)   

   {

   trend[i] = 1;
    t[i-1] = 1;
   O1[i] = O[i];
   H1[i] = H[i];
   L1[i] = L[i];
   n[i] = n[i]+1;

   }

   else

   {

   trend[i] = 0;

   }

   }

   }


O2 = IIf(trend, O1, O1);
L2 = IIf(trend, L1, L1);
H2 = IIf(trend, H1, H1);


Plot(O2,"o", 4,1);
Plot(L2,"l", 6,1);
Plot(H2,"h", 3,1);
Plot(C1,"c", 1,1);

d1 = H2-L2;


Title = Name() + StrFormat("{{INTERVAL}}") + Date()+"\n\n" +

"хай :" +H2+"\n"+
"Лоу :" +L2+"\n"+
"Открытие :" +O2+"\n"+
"Закрытие :" +C1+"\n"+
"номер бара :" +n+"\n"+
"индекс :" +T+"\n"+
"Размер :" +d1+"\n";



А дальше?

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


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

СообщениеДобавлено: Вт Мар 10, 2009 8:32 am Ответить с цитатой Вернуться к началу

Не знаю, что у тебя вот это делает
Код:

...
O2 = IIf(trend, O1, O1);
L2 = IIf(trend, L1, L1);
H2 = IIf(trend, H1, H1);
...

???
Дальше надо примерно так
Код:

O3 = ValueWhen(t, O1);
...

...

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


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

СообщениеДобавлено: Вт Мар 10, 2009 8:46 am Ответить с цитатой Вернуться к началу

000 писал(а):
Не знаю, что у тебя вот это делает
Код:

...
O2 = IIf(trend, O1, O1);
L2 = IIf(trend, L1, L1);
H2 = IIf(trend, H1, H1);
...

???

...


Блин, это памятник невнимательности Smile Спасибо попробую. Да внес в код поправки(если кто заметил разницу Smile ), чтоб на барах работать, а не с тиками, ну их нафик, ами тормозит страшно, а выгоды особой нет.

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


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

СообщениеДобавлено: Ср Мар 11, 2009 3:00 pm Ответить с цитатой Вернуться к началу

000 писал(а):

Дальше надо примерно так
Код:

O3 = ValueWhen(t, O1);
...

...


Не катит так он расчитывает среднюю для 5 мин а не псевдо баров.

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


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

СообщениеДобавлено: Чт Мар 12, 2009 1:39 am Ответить с цитатой Вернуться к началу

Сперва вопросы.
У тебя ранж не фиксированный и берется в процентах от текущего закрытия? Судя по этому
Код:

if(h1[i]-L1[i] > (C[i-1]/100)*pi)

Дальше. У тебя практически результирующий бар получился "размазан" по графику и если собираешься стандартными функциями расчитывать по нему индикаторы, то ничего не получится. Функции будут брать несколько значений с одного "размазанного" бара. Чтобы можно было пользоваться стандартными функциями надо собрать бары чтобы на против каждого бара базового фрейма был вновь построенный бар. Посмотри код ХО. На пауке есть, если ненайдешь скину сюда. Там такое реализовано.

Вообще по идее я смотрю этот подход не сильно отличается от построения ХО (крестики-нолики)

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


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

СообщениеДобавлено: Чт Мар 12, 2009 7:33 am Ответить с цитатой Вернуться к началу

000 писал(а):
Сперва вопросы.
У тебя ранж не фиксированный и берется в процентах от текущего закрытия? Судя по этому
Код:

if(h1[i]-L1[i] > (C[i-1]/100)*pi)

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


Да рандж не фиксированный, иначе приходилось бы при изменении цены на 10% пересчитывать новый.

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen