Иконка ресурса

NinjaTrader Alglib_NT7 2015-11-14

Нет прав для скачивания
  • Автор темы Привал
  • Дата начала
Обзор Отзывы (2) История версий Обсуждение
Привал

Привал

Well-Known Member
NinjaTrader
  • #1
Пользователь Привал разместил новый ресурс:

Alglib_NT7 - БПФ, спектр, ФНЧ

Пример использования математической библиотеки http://www.alglib.net/
В библиотеке содержится много различных алгоритмов облегчающих анализ данных (то чем мы тут и занимаемся) вот некоторые из них http://www.alglib.net/translator/man/manual.csharp.html
  • dataanalysis.cs - алгоритмы интеллектуального анализа данных (data mining)
  • diffequations.cs – решатели дифференциальных уравнений
  • fasttransforms.cs – преобразование Фурье (FFT) и сопутствующие алгоритмы...

Узнать больше об этом ресурсе...
 
  • Like
Реакции: NASEKA, Gellyus, artvilli и ещё 3
  • #2

 
  • Like
Реакции: sauron, na84 и Георгий
  • #3
Пробовал из этой библиотеки использовать метод нахождение коэффициентов линейной регресси. Расчитывает неправильно. В итоге перешел на другую библиотеку.
 
  • #4
А если этот фильтр использовать на объемы - тогда мы можем увидеть периоды заливки большими игроками.

Вообщем, чем принципиально отличается этот фильтр от МА? Там тоже, по-сути ФНЧ.

Вот если бы в отдельном окне выводить спектр сигнала за малый период и на объемы. Тогда можно было бы видеть роботов. Возможно, не всех, но какой-то класс. Фурье как бы нужен для того, чтобы выделить периодические сигналы по амплитудам их.
 
Последнее редактирование:
  • #5
Schielend сказал(а):
Пробовал из этой библиотеки использовать метод нахождение коэффициентов линейной регресси. Расчитывает неправильно. В итоге перешел на другую библиотеку.
Странно. Библиотеке уже много лет. И тестировалась многими. Такую ошибку должны были обнаружить. Спасибо за сообщение, если буду использовать, обязательно перепроверю
 
  • #6
Библиотека в норме, снова воспользовался ей, только другим методом при построении линейной регрессии и результаты совпали с другими библиотеками до тысячных.

У меня к вам вопрос, каким методом из этой библиотеки воспользоваться, чтобы аппроксимировать показания индикатора синусоидой типа y = a+ b*sinx(x*c-d) ?
Я попробывал использовать http://alglib.sources.ru/translator/man/manual.csharp.html#example_lsfit_d_nlf но результаты получаются такими, что синусоида имеет вид простой средней линии (желтая на графике). В ручном режиме подбор коэффициентов получается достаточно хорошо (график справа), значит уравнение выбрано правильно.
В чем может быть ошибка? Может градиент не правильно считает? Но я тоже не представляю как взять производную из этой функции.
 

Вложения

  • sin.jpg
    47,4 КБ · Просмотры: 66
Последнее редактирование:
  • #7
Я не очень хорошо знаю эту библиотеку. Сам её только изучаю. Но если бы я пробовал что то аппроксимировать, в первую очередь брал бы кубический сплайн. Он там должен быть, поищите. Я такой функцией не пробовал аппроксимировать.
sinx() это функция sin(x)/x ?
 
  • #8
sinx() это опечатка, просто sin(...)
Апроксимация нужна заданной функцией, а сплайном так не получится.
 
  • #9
Schielend сказал(а):
sinx() это опечатка, просто sin(...)
Апроксимация нужна заданной функцией, а сплайном так не получится.
Хорошая опечатка, а подумал что хочешь какое то свое вейвлет преобразование сделать. sin(x)/x очень похож на мексиканскую шляпу + обладает по мойму всеми необходимыми свойствами.
Если заданной функцией, то да сплайны не пойдут. Я не работал с такой функцией, она для меня какая то странная (может из-за того что ни разу не встречал).
 
  • Like
Реакции: Alexander
  • #10
Функция достаточно распространенная. Четыре коэффициента отвечают за сдвиг по вертикали, горизонтали, амплитуды и шага.

Для получения правильных коэффициентов уравнения регрессии в этой библиотеке необходимо достаточно точно задать первые приближения коэффициентов чтобы соблюдался масштаб и порядок. Т.е. если к примеру коэф равны 0.1 и 100, а в качестве начальных задать 1 и 1, то алгоритм не сможет их рассчитать.
 
  • #11
Schielend сказал(а):
Функция достаточно распространенная. Четыре коэффициента отвечают за сдвиг по вертикали, горизонтали, амплитуды и шага.

Для получения правильных коэффициентов уравнения регрессии в этой библиотеке необходимо достаточно точно задать первые приближения коэффициентов чтобы соблюдался масштаб и порядок. Т.е. если к примеру коэф равны 0.1 и 100, а в качестве начальных задать 1 и 1, то алгоритм не сможет их рассчитать.
Если это y = a+ b*sin(x*c-d), то да известная функция. И как с ней работать я показал при описании
a - сдвиг по вертикали = постоянная составляющая спектра (будет находится на нулевой частоте)
b - амплитуда синусойды, тоже будет хорошо видна на спектре ( я на маткаде показал как это выглядит при описании индикатора)
x - это время
с =
— угловая частота равная
.
-d - это фаза сигнала. Для его оценки нужно построить фазо-частотный спектр., тоже используем БПФ.

вот модель этого сигнала и его спектр.
 
  • Like
Реакции: NASEKA и Георгий
  • #12
Задействовал все доступные опции для аппроксимации функции: ввел градиент, матрицу Гессе, поставил ограничения на параметры и выставил их масштаб. Теперь работает идеально, даже в случае допущения значительной ошибки в задании начальных приближений параметров функции. Не хватает только многопоточности коммерческой версии. Хотя вполне возможно в исходнике заменить все циклы for(...) на Parallel.For(...) и будет многопоточность, но это уже на Ninjatrader 8.
 
  • Like
Реакции: Привал
  • #13
хотел спросить-а как вы относитесь к BloodHound..?
 
Назад
Верх Низ