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



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

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

Пытаюсь запустить примеры из pdf-руководства по Ами, скачанного с сайта _amibroker.com
Примеры по multiple time frame.

Ни один из примеров не работает.

Например этот:
Код:
TimeFrameSet( inWeekly );
m = MACD(12, 26 ); // MACD from WEEKLY data
TimeFrameRestore();
m1 = TimeFrameExpand( m, inWeekly );
Plot( m1, "Weekly MACD", colorRed );
PlotShapes( Cross( m1, 0 ) * shapeUpArrow, colorGreen );
PlotShapes( Cross( 0, m1 ) * shapeDownArrow, colorGreen );


Синтаксических ошибок вроде нет.

Запускаю на минутной базе на различных таймфреймах.
Результат один и тот же - пустая панель, хотя должна быть линия со стрелками.

В чем может быть проблема?
Версия Ами 5.20.0
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Скорее всего просто не хватает данных для расчета. Чтобы просо начать расчитывать недельный МАКДИ необходимо 26 недель. Вероятно у Вас минуток ментше чем за 26 недель

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



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

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

Да, так и есть.
Спасибо!
Посмотреть профиль Отправить личное сообщение
VladimirN



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

СообщениеДобавлено: Сб Янв 22, 2011 1:10 am Ответить с цитатой Вернуться к началу

Не могу запустить Ваш "Фильтр с бесконечной импульсной характеристикой.." (цветная синусоида - выложена здесь на сайте) в одном окне с двух таймфреймов.

Хочу, что бы срабатывал сигнал, когда на 5-минутках синусоида синего цвета (конец быков), а на 1-минутках - появляется первый сегмент красного - начало медведей.

Запускаю на одно-минутном таймфрейме - но фрагмент, который должен работать на 5-минутках выдает всегда только последний сигнал - конец медведей (желтый). Все делаю по инструкции, и примеры из инструкции работают правильно.... А Ваш филььтр - не хочет.

Наверное потому, что там вызывается функция с циклом... Я уж ее и внутрь ТаймСет ставил, и снаружи - все равно одно и то же.

Подскажите пожалуйста, как в простой МТС получать сигналы из этой синусоиды с двух таймфреймов?

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


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

СообщениеДобавлено: Сб Янв 22, 2011 9:24 am Ответить с цитатой Вернуться к началу

Дай пожалуйста свой вариант кода.

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



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

СообщениеДобавлено: Сб Янв 22, 2011 10:23 pm Ответить с цитатой Вернуться к началу

Вот. имена у функций разные - IIR и IR
.............
TimeFrameSet( 10*in1Minute );

k= 0.3;

function IR2( input, f0, f1, f2 )
{
IR[ 0 ] = input[ 0 ];
IR[ 1 ] = input[ 1 ];
for( i = 2; i < BarCount; i++ )
{
IR[ i ] = f0 * input[ i ] + f1 * IR[ i - 1 ] + f2 * IR[ i - 2 ];
}
return IR;
}

y=IR2( Close, 0.3, 1.2+K, -0.5-K);

// B. Convexity definition
Convex = (y - Ref(y, -1)) >= (y-Ref(y, -2))/2;
Concave = NOT(Convex);
Up = y>=Ref(y, -1);
Down= NOT(Up);

// Trend phases
Bullstart = Convex AND Up; // from A to B
Bullend = Concave AND Up; // from B to C
Bearstart = Concave AND Down; // from C to D
Bearend = Convex AND Down; // from D to E

C10 = IIf(Bullstart, 1, IIf(Bullend, 2, IIf(Bearstart, 3, 4)));
TimeFrameRestore();

cbf = TimeFrameExpand( C10, 10*in1Minute );

k= 0.3;
// Фильтр с бесконечной импульсной характеристикой
function IIR2( input, f0, f1, f2 )
{
IIR[ 0 ] = input[ 0 ];
IIR[ 1 ] = input[ 1 ];
for( i = 2; i < BarCount; i++ )
{
IIR[ i ] = f0 * input[ i ] + f1 * IIR[ i - 1 ] + f2 * IIR[ i - 2 ];
}
return IIR;
}

y=IIR2( Close, 0.3, 1.2+K, -0.5-K);

// B. Convexity definition
Convex = (y - Ref(y, -1)) >= (y-Ref(y, -2))/2;
Concave = NOT(Convex);
Up = y>=Ref(y, -1);
Down= NOT(Up);

// Trend phases
Bullstart = Convex AND Up; // from A to B
Bullend = Concave AND Up; // from B to C
Bearstart = Concave AND Down; // from C to D
Bearend = Convex AND Down; // from D to E

Color = IIf(Bullstart, colorGreen, IIf(Bullend, colorBlue, IIf(Bearstart, colorRed, colorYellow)));

Redsinus= IIf( Color==colorRed, True, False);
Bluesinus10= IIf( cbf=2, True, False);

Short = Redsinus AND Bluesinus10;
Cover = endday;
Посмотреть профиль Отправить личное сообщение
VladimirN



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

СообщениеДобавлено: Сб Янв 22, 2011 10:26 pm Ответить с цитатой Вернуться к началу

Cover = endday - это выход по будильнику.... код будильника вырезал, ибо лишний здесь.

P.S. основной таймфрейм - минутки. на нх смотрится и запускается. а сигнал с 10-минуток нужен для подтверждения.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Янв 23, 2011 9:38 pm Ответить с цитатой Вернуться к началу

Не разбирался, что там у тебя не так. Решил, что проще написать заново. Написал только индикатор который выводит 2 кривые с разных фреймов. Правда использовал внутридневной и дневной просто потому, что мне так удобнее было. Исправить не трудно.
Твой скорее всего не работал потому, что при сжатии на старший фрейм значений Close получается меньше чем значений на оригинальном фрейме (понятно почему) и в функцию function IR2( input, f0, f1, f2 ) попадают пустые значения, а она этого не переносит.
Обошел это при помощи IIR2(Nz(Close), 0.3, 1.2+K, -0.5-K);

И еще. Имей ввиду, что в самом начале из за того, что на старшем фрейме 0 и 1 элементы пустые, функция показывает ерунду.

В общем вот весь код.

Код:

SetBarsRequired(sbrAll, sbrAll);

function IIR2( input, f0, f1, f2 )
{
  IIR[ 0 ] = input[ 0 ];
  IIR[ 1 ] = input[ 1 ];
  for( i = 2; i < BarCount; i++ )
  {
    IIR[ i ] = f0 * input[ i ] + f1 * IIR[ i - 1 ] + f2 * IIR[ i - 2 ];
  }
  return IIR;
}
function Color( in )
{
  Convex = (in - Ref(in, -1)) >= (in - Ref(in, -2))/2;
  Concave = NOT(Convex);
  Up = in >= Ref(in, -1);
  Down= NOT(Up);

  // Trend phases
  Bullstart = Convex AND Up;     // from A to B
  Bullend = Concave AND Up;      // from B to C
  Bearstart = Concave AND Down;  // from C to D
  Bearend = Convex AND Down;     // from D to E

  Color1 = IIf(Bullstart, colorGreen,
    IIf(Bullend, colorBlue,
    IIf(Bearstart, colorRed, colorYellow)));
 
  return Color1;
}

K = 0.3;

TimeFrameSet( inDaily );
  y = IIR2(Nz(Close), 0.3, 1.2+K, -0.5-K);
  DayColor = Color(y);
TimeFrameRestore();

y1 = TimeFrameExpand(y, inDaily);
DayColor = TimeFrameExpand(DayColor, inDaily);

y = IIR2(C, 0.3, 1.2+K, -0.5-K);
Col = Color(y);


Plot(y1, "", DayColor);
Plot(y, "", Col);

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



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

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

000 писал(а):
Не разбирался, что там у тебя не так. Решил, что проще написать заново. Написал только индикатор который выводит 2 кривые с разных фреймов.


Большое спасибо - всё работает.

Как автор фильтра, где Вы видите его наибольшую ценность, а где наименьшую?

Я пока, поглядывая на его поведение, вижу большое сходство с разными МА - он начинает показывать "вниз" - конец быков начало медведей, не раньше, чем появятся первые свечи "вниз". Так ведет себя и быстрая МА....
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Фев 02, 2011 9:39 pm Ответить с цитатой Вернуться к началу

Да я не автор. Это я у DIMITRIS TSOKAKIS тиснул. Интересный подход. Я его не сильно мучил, но вообще мне сама идея понравилась.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen