Помогите разобраться с Фурье - страница 4

 
Попробую пофлудить по сабжу :))

Начну с истории вопроса - лет двести назад, жил во Франции странный мужик, по фамилии Фурье. Времена тогда были
колоритные - Бонапарт, гильотина, террор и все такое, но мужик зациклился на другом - на математике. И вот как-то, то ли с бодуна, то ли от скуки, доказал он теорему, что всякую периодическую функцию заданную на конечном интервале можно разложить в ряд гармонических функций. Ну казалось бы доказал да и ладно, флаг ему в руки, што с таво простому трейдеру живущему в 21-ом веке. НО, если немного подумать то оказывается что тем самым он придумал как осуществить голубую мечту любого трейдера - точное прогнозирование курса валютной пары на любой интервал времени.

Действительно, если разложить ту кривулину которую вычерчивает курс валютной пары, в гармонический ряд, а затем проэкстраполировать каждую гармонику отдельно на заданный интервал времени - час, день или неделю и после этого просуммировать значения всех гармоник в данной точке, то должно получиться в точности то значение которое будет у курса по этой паре через час, день, неделю! И все по честному, все по науке! И все должно работать! Должно..., но не работает.

Сразу возникают два чиста русских вопроса - кто виноват и что делать? И если с первым традиционно, худо-бедно разобраться можно, то вот со вторым - полный... темный лес.

Понять почему же все-таки не получается проэкстраполировать курс валютной пары можно, если проделать пару
мысленных экспериментов - для начала взять и намешать кучу всяких функций - синусов-косинусов, с разными значениями амплитуд и частот, добавить полиномов разных степеней, логарифмов и т.д. сдобрить все это генератором случайных
чисел имитирующим шум, чтобы больше походило на правду и затем начертить график этой белиберды, то в результате получится наверное что-то похожее на курс валютной пары.

Далее, если разложить полученную кривую в гармонический ряд и затем проэкстраполировать гармоники, то все прекрасно работает как и должно быть и будущее прогнозируется с завидной легкость, даже если уровень шумов достаточно высок. Почему же то же самое не получается с реальным курсом?

Чтобы понять это можно проделать второй эксперимент - создать десяток подобных наборов с различным соотношением различных функций и в произвольные моменты времени начать запускать, произвольный набор ну конечно следя за тем чтобы не было разрывов в графике - вот тут уже действительно преобразования начинают буксовать - потому что как
выразился klot - "спектр плывет", ну или если обозначить проблему более научно - в силу того что временной ряд порождающий график не является стационарным.

То что на финансовых рынках происходит достаточно частая, спонтанная и плохо прогнозируемая смена тенденций, или в нашем примере смена наборов функций можно понять, вспомнив что курс той или иной валюты определяется не только и не столько экономическими закономерностями гладкими по своей природе, сколько психологией толпы, настроение которой может непредсказуемо менятся. В силу этого идея точного прогнозирования курса на основе преобразований, похоже пока нереалезуема.

Но может прав klot и можно попробовать научится распознавать различные типы спектров и по их изменениям судить о переходе рынка из одного состояния в другое и соответственно запускать ту или иную стратегию торговли? То есть на основе Фурье-анализа и нейросети сделать эдакий навороченный индикатор, или фильтр состояний рынка.

В принципе идея оригинальная, фундаментальная, глубоко научная, хоть и сложноватая. Только, дьявол как известно кроется в мелочах или в деталях. На мой взгляд те "мелочи" на которых может споткнуться эта идея заключаются в шумах и волатильности.

Действительно спектр любого реального сигнала состоит из трендовой, периодической и шумовой компонент. При переходе от одного типа спектров к другому, в силу того что и у того и у другого имеется шумовая компонента принципиально невозможно будет в течении какого-то времени понять какой-же сейчас спектральный набор - старый или уже новый. В результате может получится как всегда - система хорошо распознает переход к другому типу спектра, когда флэт уже давно перешел в тренд или наоборот.

Второй заковыриной может стать волатильность. Ее рост в первую очередь приводит к росту шумовой компоненты и как следствие еще больше увеличит "мертвое время" при распознавании нового спектра. А так как смена тенденций зачастую происходит при повышенной волатильности то это тоже становится проблемой. Ее правда можно попытаться обойти
вспомнив, что волатильность хорошо коррелирует с объемами. Сделав соответствующую нормировку по volume, можно попытаться как-то "огрублять" чувствительность нейросети на высоких объемах и "обострять" на низких.

В заключении можно заметить, что пример Фурье оказался заразительным и многие джентельмены обладавшие мат.способностями создавали собственные преобразования - Вигнер, Уолш, Гильберт... список достаточно большой. Из новомодных - спектрально-сингулярный анализ (SSA) дающий хорошее разделение трендовой, периодической и шумовой компонент и вейвлет-анализ лучше других приспособленный для работы с нестационарными временными рядами.
 

Интересна была бы реализация индикатора по типу анализатора спектра по частотам и амплитудам частотных составляющих развернутых в одном окне, инфранизким частотам большой амплитуды соответствовал бы тренд, средним и верхним частотам - соответственно флэт и шум, несмотря на то, что процесс движения цен является не стационарным периодическим , а как бы временно периодическим, такой индикатор неплохо показывал бы состояние рынка.

 
Тренд выделить можно. НО у Фурье есть один недостаток, о нем я уже писал выше. Мы берем фиксированный участок и для того чтобы провести преобразование, размножаем этот участок в обе стороны в бесконечность, в результате имеем непрерывный сигнал (курс) в бесконечность времени, ведь синусоиды непрерывны. Пример, наш кусок цен 10, 11, 12, 13, 12, чтобы сделать преобразование надо сделать из него непрерывный ряд ... 10, 11, 12, 13, 12, [10, 11, 12, 13, 12], 10, 11, 12, 13, 12, ... Результат, будущая цена четко известна, это 10, вот по этому Фурье и не работает. Чтобы применить идею частот надо найти другой метод разложения. Например, можно четко задать несколько частот и методом перебора, минимизируя ошибку, подобрать для них значения амплитуд и фаз, получим тренд, но для этого нужен очень мощный комп.
 
Вообще-то экстраполяция Фурье работает, нужно просто уметь его настраивать. За предыдущие участки тренда уже сформировались причины и циклы, которые дают следствие. И если это учесть, то точность прогноза превышает 60-70 процентов, что достаточно, чтобы иметь прибыльность 2 и больше. А на медленных колебаниях, типа дневок и более, точность прогноза вообще очень большая. Я не знаю другого инструмента, который это мог бы. Мне в основном удавалось предсказать траекторию рынка еще за 2-4 месяца до того как это происходит. Но и на коротких дистанциях за день-два точность прогноза довольно приемлема. И это не разрабатывая принцип достаточно глубоко. Я почти уверен, что при капитальном подходе можно получить точность близкую к 90%.

 
ANG3110, а ты можешь выложить скриншот на котором будет виден весь период построения экстраполяция Фурье, у тебя сейчас виден только конец, а хотелось бы видеть все проанализированные данные.
 
ANG3110 писал (а):
Вообще-то экстраполяция Фурье работает, нужно просто уметь его настраивать. За предыдущие участки тренда уже сформировались причины и циклы, которые дают следствие. И если это учесть, то точность прогноза превышает 60-70 процентов, что достаточно, чтобы иметь прибыльность 2 и больше. А на медленных колебаниях, типа дневок и более, точность прогноза вообще очень большая. Я не знаю другого инструмента, который это мог бы. Мне в основном удавалось предсказать траекторию рынка еще за 2-4 месяца до того как это происходит. Но и на коротких дистанциях за день-два точность прогноза довольно приемлема. И это не разрабатывая принцип достаточно глубоко. Я почти уверен, что при капитальном подходе можно получить точность близкую к 90%.

На мой взгляд, это - один из наиболее перспективных методов прогнозирования.
Нельзя ли узнать, как определена точность прогноза 60-70% (что действительно не мало) ?
Если не секрет, то хотелось бы посмотреть код или хотя бы отчёт о тестировании.
 
Что понимается под точностью прогноза?
 
ANG3110:
Вообще-то экстраполяция Фурье работает, нужно просто уметь его настраивать. За предыдущие участки тренда уже сформировались причины и циклы, которые дают следствие. И если это учесть, то точность прогноза превышает 60-70 процентов, что достаточно, чтобы иметь прибыльность 2 и больше. А на медленных колебаниях, типа дневок и более, точность прогноза вообще очень большая. Я не знаю другого инструмента, который это мог бы. Мне в основном удавалось предсказать траекторию рынка еще за 2-4 месяца до того как это происходит. Но и на коротких дистанциях за день-два точность прогноза довольно приемлема. И это не разрабатывая принцип достаточно глубоко. Я почти уверен, что при капитальном подходе можно получить точность близкую к 90%.



Повторюсь - реальные котировки с математической точки зрения представляют
собой набор участков с различными функциональными зависимостями, поэтому
на каждом таком участке спектральное разложение будет другим. Если удастся
подобрать такой участок для разложения где функциональная зависимость еще
не изменилась, то до тех пор пока она не изменится - Фурье, будет более-менее
сносно предсказывать поведение курса, но только до тех пор пока. Казалось
бы в таком случае всегда можно выбирать небольшие участки предшествующего
курса и использовать их для разложения/экстраполяции, но тогда теряется
низкочастотная часть спектра и увеличивается зашумленность.

Но даже на участке где функциональная зависимость осталась неизменной
предсказание будет не точным, потому что во-первых Фурье не работает
с нестационарными временными рядами, а реальные рыночные котировки
нестационарны, в этом смысле лучше пользоваться вайфлетами.
Во вторых рыночные котировки ближе к фрактальным функциям, то есть
если разложение построено для определенного тайм-фрейма и на этом
тайм-фрейме более-менее работает, то для более мелких тайм-фреймов
оно не действует, там на этом интервале существует серия собственных
фракталов со своими разложениями, которые для более крупного ТФ можно
рассматривать как шум. Все это имхо разумеется.

Ну а насчет того что Фурье надо уметь пользоватся - это примерно тоже
самое что сказать - конечно тех. анализ работает надо только уметь
им пользоваться.
 
lsv писал (а):
ANG3110, а ты можешь выложить скриншот на котором будет виден весь период построения экстраполяция Фурье, у тебя сейчас виден только конец, а хотелось бы видеть все проанализированные данные.
Показать картинки, конечно можно было бы. Я привел только небольшой участок одного из коротких вариантов. Для прогноза строятся несколько вариантов на разных длительностях по времени и выбираются те которые повторяются и хорошо кореллируются с реальным сигналом по минимуму СКО.
То есть это не одна картинка а комплекс. И вообще эта тема довольно обширна чтобы показывать только один какой-то график, - он будет частным случаем.
 
SK. писал (а):
ANG3110 писал (а):
Вообще-то экстраполяция Фурье работает, нужно просто уметь его настраивать. За предыдущие участки тренда уже сформировались причины и циклы, которые дают следствие. И если это учесть, то точность прогноза превышает 60-70 процентов, что достаточно, чтобы иметь прибыльность 2 и больше. А на медленных колебаниях, типа дневок и более, точность прогноза вообще очень большая. Я не знаю другого инструмента, который это мог бы. Мне в основном удавалось предсказать траекторию рынка еще за 2-4 месяца до того как это происходит. Но и на коротких дистанциях за день-два точность прогноза довольно приемлема. И это не разрабатывая принцип достаточно глубоко. Я почти уверен, что при капитальном подходе можно получить точность близкую к 90%.

На мой взгляд, это - один из наиболее перспективных методов прогнозирования.
Нельзя ли узнать, как определена точность прогноза 60-70% (что действительно не мало) ?
Если не секрет, то хотелось бы посмотреть код или хотя бы отчёт о тестировании.

Рад что Вы разделяете мои взгляды на применение прогноза на основе гармонического анализа Фурье.
Точность прогноза определена на вскидку, по памяти, так как я периодически пользуюсь этим методом уже наверное более полугода. Ну еще конечно гонял на истории. Чтобы дать более точную оценку, тут уже нужно поработать со статистикой. Отчет о тестировании посмотреть нельзя, потому что его просто нету. Я пытался автоматизировать прогноз, но каждый раз или очень уставал от перенапряжения, или допускал какие-то ошибки, на которых надолго застревал. Поэтому автоматизацию пока отложил.
Причина обращения: