Обсуждение статьи "Возможности Мастера MQL5, которые вам нужно знать (Часть 6): Преобразование Фурье"
Привет, Стефан,
Это отличная статья, хотя мне нужно изучить ее более подробно, так как я не использовал преобразования Фурье в течение 60 лет. Я удивлен, что не было других комментариев. Можете ли вы опубликовать исходный текст эксперта mq5, чтобы три варианта могли быть собраны в эксперте и протестированы.
Спасибо,
CapeCoddah
Привет,
Хорошая статья. Интересная идея. Пример кода mq5 для тестирования/пробы этих опций был бы замечательным. Спасибо.
Здравствуйте
Эксперты, используемые в статьях, скомпилированы с помощью мастера MQL5, поэтому остальной исходный код уже находится на вашем компьютере, если у вас есть metatrader.
Привет, Стефан
Я оставил свою самую любимую часть математики (Фурье) на 30 лет. Поэтому я не могу комментировать, но я прочитал ваше замечательное "упражнение".
Извините, что не могу помочь вам, но спасибо, что поделились им.
Стефан
Спасибо за ссылку, я продолжу использовать ее и сообщу вам о своих результатах,
CapeCoddah
Привет, Стивен,
очень интересная статья!
Одна подсказка к ней: Параметры "Points" и "Epicycles" нужно удалить в "Описании класса", они не используются в коде и компилятор жалуется после компиляции сгенерированного EA.
Мой вопрос: Советник работает нормально, но я никак не могу воспроизвести ваши результаты, возможно, я что-то сделал не так. Не могли бы вы выложить файл *.set или даже исходник советника, который вы сгенерировали?
Вы делали форвард-тест?
В любом случае, это хороший урок по использованию FFT. Спасибо!
Я так понял, тут автор даже не стал изучать быстрое преобразование Фурье :) И то верно, чего заморачиваться, FT и FFT это пустышки и в трейдинге ничего не дают. Я эти преобразования еще лет 15 назад в Матлабе крутил и так и сяк, и спектры резал, потом делал обратное преобразование во временную форму - полный пшик. FFT хороши в других областях, например радиолокации.
А вот вейвлеты гораздо интереснее. Если вырезать все высокочастотные полосы и сделать обратное преобразование во временную область, получим отличный НЧ фильтр без задержек. Впрочем, это можно сделать гораздо проще — через 2-х проходные фильтры..
Здравствуйте,
выдает 12 ошибок
double CTrailingFT::ProcessFT(int Index) { double _ft = 0.0; static double _a[6]; // Массив фиксированного размера al_complex _f[5]; // 5 эпициклов // Заполните _a данными о разнице цен for(int p=0; p<6; p++) { _a[p] = m_close.GetData(Index+p) - m_close.GetData(Index+p+1); } // Замените БПФ Alglib на пользовательское 6-точечное БПФ CustomFFT6(_a, _f); // Гипотетическая оптимизированная функция // Вычислите _ft, используя доминирующую частоту (например, наибольшую величину). double maxMagnitude = 0.0; for(int s=0; s<5; s++) { double mag = MathSqrt(_f[s].re*_f[s].re + _f[s].im*_f[s].im); if(mag > maxMagnitude) { maxMagnitude = mag; _ft = _f[s].re; // Или используйте взвешенную комбинацию } } return _ft * 100.0; // Настройте масштаб по мере необходимости }
Замените Alglib на Custom FFT:
-
БПФ Alglib может быть медленнее для небольших наборов данных. Реализуйте облегченное БПФ, адаптированное к размеру вашего окна (6 точек).
Предварительно вычисляйте члены MathExp(-2.0*M_PI*...), чтобы не пересчитывать их при каждом тике.
Обработка ошибок:
Добавьте проверки для предотвращения деления на ноль в _f[s].im / _f[s].re.Избегайте матричных операций в ProcessFT() . Непосредственно вычисляйте требуемое значение _ft с помощью доминирующих частот.
Обработка ошибок:
-
Добавьте проверки для предотвращения деления на ноль в _f[s].im / _f[s].re .
Уже есть гораздо более эффективные методы, где используется элементарная структура (М-форма). Изменение её параметров даёт полное представление об изменении динамики цен (это теория импульсного равновесия).
Что же касается преобразования Фурье, то применительно к финансовым рынкам, на мой взгляд, это "притянутый за уши" метод, так движение цен финансовых инструментов - это нестационарный процесс, а анализ таких процессов с помощью методов Фурье малоэффективен.
Что касается вейвлет-анализа, то это действительно, интереснее, так как используются различные волноподобные структуры. Однако это лишь некий субъективный подбор эталонов вместо использования единой элементарной структуры, которая выявлена в теории импульсного равновесия.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Возможности Мастера MQL5, которые вам нужно знать (Часть 6): Преобразование Фурье:
Преобразование Фурье, введенное Жозефом Фурье, является средством разложения сложных волновых точек данных на простые составляющие волны. Эта особенность может быть полезной для трейдеров, и именно ее мы и рассмотрим в этой статье.
При компиляции со встроенным классом сигналов RSI и встроенным управлением капиталом с фиксированной маржой мы получаем следующие результаты для EURJPY за период с 2022.01.01 по 2023.01.01 на H4. При выполнении этого теста мы не устанавливаем целевую прибыль и не используем стоп-лосс по умолчанию, поэтому оба входных параметра для них равны нулю. Мы хотим, чтобы выходы полностью определялись разворотом сигнала или срабатыванием стоп-лосса, установленного нашим трейлинг-стопом.
Автор: Stephen Njuki