![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Так что же все-таки получилась за красная линия на Рис.2 ? Разность энергий реальной и мнимой частей ? Очень интересно. И что означают цифры в области значений индикатора ?
Пока не могу ответить, к сожалению.Жду опровержения на мой вопрос по библиотеке. 'Библиотека функций быстрого преобразования фурье FFT' ибо так и не смог понять что там выводиться
вообще зделать отдельной переменной
P.S. Возможно я слишком часто упоминаю индикатор 'Спектральный анализ' :), но там работа с амплитудами сделана правильно - можно просто взять из него.
Простое удаление 0 частоты, таким способом, это топорная работа, хотя и показывает, куда надо дальше двигаться. Есть боковые лепестки, они остались. Нужно обязательно применять окно, как вариант окно Хемминга (но он гад с энергией поступает как трактор) надо будет еще различные окна посмотреть когда доберемся.
Думаю сделать вариант следующий, т.к. нам известна частота нам мешающая (0 рынок не движет) и функция отклика каждого фильтра sin(x)/x. Надо аккуратненько рассчитать и вычесть все боковики из всех фильтров.
После удаления боковиков обратное преобразование Фурье (или сверткой), удаляем тренд функция вида y=a+bx, применяем окно, как вариант пока Хемминга, снова прямое преобразование Фурье.
Теперь все отражаем на графике Энергию сигнала и шума, до удаления 0, после удаления, после удаления тренда + выводим коэффициенты a и b. Вот тогда я думаю, у нас будет инструмент позволяющий исследовать рынок.
Как Вам такой план ?
Похоже ошибка есть в библиотеке, или у меня снова кривые руки :( выложил свой вопрос тут 'Библиотека функций быстрого преобразования фурье FFT') если кто может проверте. Прав я или нет. Попробуйте в матлабе проверить.
Если кратко, то на вход fft маткада и на вход fastfouriertransform от klot'а Вы подаёте разные данные. Пожалуйста не обижайтесь, но я 2 раза советовал пойти по ссылке из шапки библиотеки http://alglib.sources.ru/fft/ и разобраться с форматом исходных и выходных данных для функций, но Вы этого явно так и не сделали. Это третий и последний. Кстати, для каждой функции формат свой.
Простое удаление 0 частоты, таким способом, это топорная работа, хотя и показывает, куда надо дальше двигаться. Есть боковые лепестки, они остались.
Если Вы суммируете амплитуды начиная просматривать частоты с hmax, Вы отрезаете все частоты меньшие hmax. То есть в Вашем коде удаляется далеко не одна нулевая частота. А вообще амплитуда на нулевой частоте это просто среднее и очень часто оно или совсем не нужно или даже мешает.
Я не специалист по ЦОС, просто сам когда было нужно разобрался с fft и теперь хотел помочь.
Исходный ряд 0,1,2, 3, 4, ... маткад считает вещественной функцией. А fastfouriertransform считает комплексной, то есть 0+1*j, 2+3*j, ... . Возможно также по разному учитыватся нормировочные коэффициенты, сам я маткадом не пользуюсь, точно не могу сказать.
Я ещё в предыдущий пост успел добавку сделать
realfastfouriertransform тоже не проходит есть мнимая часть у первого числа, а нормировка вообще непонятна. Без уяснения этого вопроса нет смысла считаь энергию,
2007.11.03 00:36:49 2007.10.01 00:00 proverka GBPUSD,H1: i=6 Вход=6 Выход aa[i]=-1.1716; aa[i*2]=0; aa[i*2+1]=0
2007.11.03 00:36:49 2007.10.01 00:00 proverka GBPUSD,H1: i=5 Вход=5 Выход aa[i]=3; aa[i*2]=0; aa[i*2+1]=0
2007.11.03 00:36:49 2007.10.01 00:00 proverka GBPUSD,H1: i=4 Вход=4 Выход aa[i]=-4; aa[i*2]=0; aa[i*2+1]=0
2007.11.03 00:36:49 2007.10.01 00:00 proverka GBPUSD,H1: i=3 Вход=3 Выход aa[i]=-6.8284; aa[i*2]=-1. 1716; aa[i*2+1]=0
2007.11.03 00:36:49 2007.10.01 00:00 proverka GBPUSD,H1: i=2 Вход=2 Выход aa[i]=-6.8284; aa[i*2]=-4; aa[i*2+1]=3
2007.11.03 00:36:49 2007.10.01 00:00 proverka GBPUSD,H1: i=1 Вход=1 Выход aa[i]=3; aa[i*2]=-6. 8284; aa[i*2+1]=-6.8284
2007.11.03 00:36:49 2007.10.01 00:00 proverka GBPUSD,H1: i=0 Вход=0 Выход aa[i]=21; aa[i*2]=21; aa[i*2+1]=3
realfastfouriertransform тоже не проходит есть мнимая часть у первого числа, а нормировка вообще непонятна.
У первого числа нет мнимой части, поэтому под индексом 1 realfastfouriertransform пишет амплитуду частоты N/2, которая тоже не имеет мнимой части. Кстати, в том моём индикаторе это явно прописано. А вот знакомая Вам картинка с известного адреса
P.S. Нормировка в этом случае -константа, то есть если её не учитывать никакие соотношения не нарушатся, это то же самое, что вместо метров мерить в сантиметрах.
Спасибо, Я был не внимателен. К сожалению еще не так свободно владею MQL чтобы легко без коментариев найти эту обработку в Вашем индикаторе. Осталось разобраться с нормировкой.
Правка
Ага нашол, просто домножить на n. Свой пост к библиотеке удалил. Там все верно.
Виктор (Vinin), а ты чего свою тему-то удалил ("Фазовый анализ рынка")? Хорошая была тема, ругательств там тоже вроде как не было...