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


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

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

функция IIf лажается при работе с массивами у которых есть элементы Null. Ты сперва вместо null сделай 0, выбери ближайший, а потом превращай 0 в null.

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



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

СообщениеДобавлено: Чт Авг 05, 2010 9:22 pm Ответить с цитатой Вернуться к началу

понял тебя спасибо уже все исправил.

Олег, а не мог бы ты объяснить для чего функции
StaticVarSet
StaticVarGet

Если не сложно с небольшим примерчиком. Wink
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Авг 05, 2010 9:58 pm Ответить с цитатой Вернуться к началу

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

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



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

СообщениеДобавлено: Чт Авг 05, 2010 10:08 pm Ответить с цитатой Вернуться к началу

что значит подокне???? не понятно совсем .......
Блин даже и не спросишь где почитать, потому что читать негде ((((
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Авг 05, 2010 10:17 pm Ответить с цитатой Вернуться к началу

pane

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


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

СообщениеДобавлено: Чт Авг 05, 2010 10:24 pm Ответить с цитатой Вернуться к началу

Создаешь такой индикатор
Код:

x = Param("period", 5, 3, 15, 1 );
StaticVarSet("p", x);
Plot(RSI(x), "", colorRed);

Пихаешь в отдельное pane
Потом создаешь такой индикатор
Код:

Plot(StochK(StaticVarGet("p"), 3), "", colorBlue);

Пихаешь его в другое pane

Потом меняешь период первого индикатора, щелкаешь на графике и период второго тоже изменяется

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



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

СообщениеДобавлено: Вс Авг 08, 2010 8:52 am Ответить с цитатой Вернуться к началу

а для чего SelectedValue????

вроде как я понял для того чтобы из массива выделить переменную!!!
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Авг 08, 2010 12:18 pm Ответить с цитатой Вернуться к началу

Цитата:

selectedvalue( ARRAY )
Получает значение массива ARRAY на выбраном баре. Основное применение: коды коментариев и интерпретаций
...
SelectedValue получает значения массива на баре выбранном вертикальной линией

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



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

СообщениеДобавлено: Сб Авг 14, 2010 5:41 pm Ответить с цитатой Вернуться к началу

Как подсчитать сколько элементов принимают значение истина?

например
Код:

Var4 = Ref(L, -2) < Ref(L, -1) AND Ref(L, -1) < L;


как узнать сколько раз var4 был истинным?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Код:
qqq = Sum(Var4, period);

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



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

СообщениеДобавлено: Вт Авг 17, 2010 3:19 pm Ответить с цитатой Вернуться к началу

Опять я со своими вопросами

есть массив (masiv) и есть значение (znach )

Имеется ли функция чтобы узнать есть ли элемент в массиве равный значению.
Или это нужно проверять циклом?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

В принципе можно проверить так
Код:

ValueWhen(masiv == znach, BarIndex())

Если значение не пустое, то такой элемент есть.

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



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

СообщениеДобавлено: Чт Авг 19, 2010 11:12 am Ответить с цитатой Вернуться к началу

Да что же это такое.
Решил написать вот такую задачку. Есть некий фрактал по нему определяется уровень. Теперь мне нужно найти был ли такой же уровень или почти такой же в прошлом. Если был то этому уровню присвоить истину.
Эту задачу я выполнил вот так:

Код:

// находим фрактал
f_down =
(Ref(L,2) > Ref(L,0) AND Ref(L,1) >= Ref(L,0) AND Ref(L,0) < Ref(L,-1) AND Ref(L,0) <= Ref(L,-2));

// теперь ищем был ли в прошлом за последние 50 баров уровень разница между
// которыми составляет  0.03 единицы.

for(i=50; i<BarCount; i++ )
{

if (f_down[i]==1)
{
i1=i-50;
   do
   {
   if (f_down[i1]==1 AND abs(L[i]-L[i1])<=0.03)
   {dsr_u[i]=1;
   } else {dsr_u[i]=0;}
   i1++;
   }
   while ((i1 < i-1) AND dsr_u[i] <1); // i-1 потому что  самого себя не нужно проверять
 }

}

// рисуем пунктирные линии от этих баров

Plot(ValueWhen(dsr_u,L,1), "", 29, 128 | 16 );

 


Это все работает! Не знаю правильно или нет я написал код. Но работает!
Теперь я хотел бы чтобы эти линии рисовались на 5-и минутном графике из 15-и минутного ТФ.
делаю так:

Код:

TimeFrameSet(in15Minute);

f_down =
(Ref(L,2) > Ref(L,0) AND Ref(L,1) >= Ref(L,0) AND Ref(L,0) < Ref(L,-1) AND Ref(L,0) <= Ref(L,-2));


for(i=50; i<BarCount; i++ )
{

if (f_down[i]==1)
{
i1=i-50;
   do
   {
   if (f_down[i1]==1 AND abs(L[i]-L[i1])<=0.03)
   {dsr_u[i]=1;
   } else {dsr_u[i]=0;}
   i1++;
   }
   while ((i1 < i-1) AND dsr_u[i] <1); // i-1 потому что  самого себя не нужно проверять
 }

}
TimeFrameRestore();



Plot(TimeFrameExpand(ValueWhen(dsr_u,L,1), in15Minute), "", 29, 128 | 16 );

 


Но этот гад рисует мне все что угодно только не то что нужно! (((((((((
Помогите, где я ошибся?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Авг 19, 2010 10:32 pm Ответить с цитатой Вернуться к началу

Почти правильно у тебя было.
я 15 мин переделал на часовки потому, что мне так удобнее разбираться было.

Код:

SetBarsRequired(sbrAll, 0);
TimeFrameSet(inHourly);
// находим фрактал
f_down =
(Ref(L,2) > Ref(L,0) AND Ref(L,1) >= Ref(L,0) AND Ref(L,0) < Ref(L,-1) AND Ref(L,0) <= Ref(L,-2));

// теперь ищем был ли в прошлом за последние 50 баров уровень разница между
// которыми составляет  0.03 единицы.

for(i = 50; i < BarCount; i++ )
{
   if (f_down[i] == 1)
   {
      i1 = i-50;
      do
      {
         if(f_down[i1] == 1 AND abs(L[i]-L[i1]) <= 0.03)
            dsr_u[i] = 1;
         else
         {
            dsr_u[i] = 0;
            i1++;
         }
      } while((i1 < i-1) AND dsr_u[i] < 1); // i-1 потому что  самого себя не нужно проверять
   }
}
Lev1 = ValueWhen(dsr_u, L);
Lev2 = ValueWhen(f_down, L);
TimeFrameRestore();
Lev1 = TimeFrameExpand(Lev1, inHourly);
Lev2 = TimeFrameExpand(Lev2, inHourly);

Plot(C, "", colorBlack, styleCandle);
Plot(Lev1, "", colorRed);
Plot(Lev2, "", colorBlue);

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



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

СообщениеДобавлено: Пт Авг 20, 2010 8:07 am Ответить с цитатой Вернуться к началу

а что такое ?
Код:

SetBarsRequired(sbrAll, 0);
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen