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



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

СообщениеДобавлено: Пн Июн 17, 2019 7:03 am Ответить с цитатой Вернуться к началу

Олег, привет!

В очередной раз увидел Rolling Eyes на сайте индикатор - точки перегиба: http://www.amisite.ru/afl/ind/0003.php и решил попробовать

В нём пара опечаток:
Код:
<TITLE>
      ==Нидикаторы. Точки перегиба.==
</TITLE>


Наверное, надо написать "ИНдикаторы", а не как в коде "НИдикаторы"?
Или так и задумывалось? Laughing

И в самом коде написано:
Код:

// Фильтр с бесконечной импульсной характеристикой
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;
}


У меня амик ругается, пишет всякие нехорошие слова, которые приведены на картинке IIR2.png во вложении.

если исправить IIR2 на result, чтоб Амик не трактовал, к примеру, IIR[ 0 ] как вызов функции, а обращался к соответствующему элементу массива IIR:
Код:

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


то вроде работает нормально Very Happy
Посмотреть профиль Отправить личное сообщение
il-ir



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

СообщениеДобавлено: Пн Июн 17, 2019 7:20 am Ответить с цитатой Вернуться к началу

и заодно в этом самом первом коде

Цитата:

Можно использовать это свойство и при сглаживании рыночных цен. Для этого необходимо применить фильтр, дающий линию максимально похожую на синусоиду. В файле помощи AmiBroker есть пример фильтра IIR2 (infinite impulse response) – фильтра с бесконечной импульсной характеристикой.
Код:
k=Param("k", 0.3, 0.1, 0.7, 0.1);
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;
}



может быть, тоже исправить IIR2 на result:
Код:

function IIR2( input, f0, f1, f2 )
{
    result[ 0 ] = input[ 0 ];
    result[ 1 ] = input[ 1 ];

    for( i = 2; i < BarCount; i++ )
    {
       result[ i ] = f0 * input[ i ] +
                     f1 * result[ i - 1 ] +
                     f2 * result[ i - 2 ];
    }

   return result;
}

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


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

СообщениеДобавлено: Пн Июн 17, 2019 8:45 am Ответить с цитатой Вернуться к началу

Это все потому, что индикатор написан давно, когда IIR еще не был зарезервирован.
А теперь это функция в AFL. Поэтому и надо заменить IIR на что угодно не зарезервированное.
Спасибо!

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen