Пример использования математической библиотеки http://www.alglib.net/
В библиотеке содержится много различных алгоритмов облегчающих анализ данных (то чем мы тут и занимаемся) вот некоторые из них http://www.alglib.net/translator/man/manual.csharp.html
Для тех, кто не слышал про это преобразование немного теории.
Всем нам хорошо известна синусоида (мы её в школе изучали),. Ниже график синусоиды построенный в программе MathCad, с амплитудой 5 и частотой 15 Гц.
Если к ней применить преобразование Фурье, то мы получим спектр, т.е. теперь ось X – это не время, а частота. Обратите внимание, красная палка имеет амплитуду 5 и находится на частоте 15Гц, т.е. это та же самая синусоида, только выглядит непривычно для нас, но именно это представление (в виде спектра) очень облегчает анализ
Вот так выглядит спектр Е-miniS&P 500 (индикатор Alglib_Spektr).
Индикатор Alglib_ФНЧ это фильтр низкой частоты, получается из спектра следующим образом.
В спектре удаляются все составляющие большие M (слева на графике) и осуществляется обратное преобразование Фурье, таким образом подавляются все высокочастотные составляющие спектра...
Предупреждения:
1. Снято ограничение степени числа 2, глубина выборки N может быть любой.
2. За пределами выборки N, строится Close[0], что бы не рисовать мусор (не знаю как запретить индикатору там рисовать, поэтому просто подставил Close).
3. С приходом нового бара индикатор перерисовывается (спектр и фильтр).
4. Постоянная составляющая спектра S[0] не выводится на график, из-за масштабирования не будет видно другие составляющие.
P.S. Хочу сказать БОЛЬШОЕ СПАСИБО
CustomTradingSystem
Владимиру(Gellyus)
Светлане(broker_mirus)
за помощь, без них бы не справился.
В библиотеке содержится много различных алгоритмов облегчающих анализ данных (то чем мы тут и занимаемся) вот некоторые из них http://www.alglib.net/translator/man/manual.csharp.html
- dataanalysis.cs - алгоритмы интеллектуального анализа данных (data mining)
- diffequations.cs – решатели дифференциальных уравнений
- fasttransforms.cs – преобразование Фурье (FFT) и сопутствующие алгоритмы
- integration.cs – численное интегрирование
- interpolation.cs - интерполяция
- linalg.cs – линейная алгебра
- optimization.cs – алгоритмы оптимизации
- solvers.cs – линейные и нелинейные решатели
- specialfunctions.cs – специальные функции
- statistics.cs – статистика
- нейронные сети
Для тех, кто не слышал про это преобразование немного теории.
Всем нам хорошо известна синусоида (мы её в школе изучали),. Ниже график синусоиды построенный в программе MathCad, с амплитудой 5 и частотой 15 Гц.
Если к ней применить преобразование Фурье, то мы получим спектр, т.е. теперь ось X – это не время, а частота. Обратите внимание, красная палка имеет амплитуду 5 и находится на частоте 15Гц, т.е. это та же самая синусоида, только выглядит непривычно для нас, но именно это представление (в виде спектра) очень облегчает анализ
Вот так выглядит спектр Е-miniS&P 500 (индикатор Alglib_Spektr).
Индикатор Alglib_ФНЧ это фильтр низкой частоты, получается из спектра следующим образом.
В спектре удаляются все составляющие большие M (слева на графике) и осуществляется обратное преобразование Фурье, таким образом подавляются все высокочастотные составляющие спектра...
Предупреждения:
1. Снято ограничение степени числа 2, глубина выборки N может быть любой.
2. За пределами выборки N, строится Close[0], что бы не рисовать мусор (не знаю как запретить индикатору там рисовать, поэтому просто подставил Close).
3. С приходом нового бара индикатор перерисовывается (спектр и фильтр).
4. Постоянная составляющая спектра S[0] не выводится на график, из-за масштабирования не будет видно другие составляющие.
P.S. Хочу сказать БОЛЬШОЕ СПАСИБО
CustomTradingSystem
Владимиру(Gellyus)
Светлане(broker_mirus)
за помощь, без них бы не справился.