торговая стратегия на базе Волновой теории Эллиота - страница 287
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Доброго всем вечера
Расскажите пожалуйста детили данного алгоритма.
Заранее спасибо
Рассказываю.
К ценовой кривой применяем многократно медианный фильтр. Что это такое? Берем окно нечетного размера (>=3) и пробегаем им по всем значениям исходной кривой. В каждой текущей точке сортируем по значению точки, попавшие в окно. Текущей точке присваиваем среднее (в том смысле, что оно расположено посередине массива) значение из отсортированного массива. К полученному результату снова применяем тот же фильтр. Повторяем это многократно (обычно достаточно 20-30 раз).
Для получения уровней сопротивления ценовую кривую переворачиваем вверх ногами и делаем то же самое. Потом переворачиваем полученный результат обратно.
Вот и все!
...
Маленький вопрос
Допустим взяли историю в 1000 отчетов(баров)
окно 3
получается что для 1000,999 не считаем так как меньше окна, а первый расчет производим только когда встали на 998 отчет (имеем данные с 998,999 и 1000 отчетов)
получается при первом проходе 998 результатов
при втором проходе встаем уже на на 996 отчет уже по сформмированному предыдущим прогоном массиве
в третьем прогоне встаем на 994 ...
и так далее ...
тоесть если прогнали 30 раз то получили массив из 960 значений
Может быть я не правильно Вас понял ?
Маленький вопрос
Допустим взяли историю в 1000 отчетов(баров)
окно 3
получается что для 1000,999 не считаем так как меньше окна, а первый расчет производим только когда встали на 998 отчет (имеем данные с 998,999 и 1000 отчетов)
получается при первом проходе 998 результатов
при втором проходе встаем уже на на 996 отчет уже по сформмированному предыдущим прогоном массиве
в третьем прогоне встаем на 994 ...
и так далее ...
тоесть если прогнали 30 раз то получили массив из 960 значений
Может быть я не правильно Вас понял ?
Не совсем так. Технически делается немножко по другому. Прежде чем применить фильтр Вы расширяете исходный массив на половину ширины окна фильтра в обе стороны. Образовавшиеся с краев пустые места в новом массиве заполняете либо константой, т. е. последним значением с краю исходного ряда, либо симметрично крайними значениями исходного ряда. В этом случае после применения фильтра к исходному массиву 1000 точек Вы вновь получите 1000 точек. При следующей фильтрации все повторяется.
Конечно, в этом случае на краях могут возникнуть искажения. Но от этого никуда не деться, так как любой оконный фильтр (да и вообще любой) имеет фазовую задержку в том числе и медианный. В общем, - так устроена природа.
Мы можем делать так, как Вы описали, но тогда мы не дойдем до края исходного массива, или использовать расширение, но тогда крайние значения результата мы не можем считать надежными.
Это плохая новость.
Хорошая же новость заключается в том, что медианный фильтр слабо чувствителен к краевым эффектам в отличие от линейных фильтров. Те несколько примеров, которые я успел у себя посмотреть, показывают, что краевые искажения либо малы, либо, в некоторых случаях, их нет совсем.
PS. Да... Еще сейчас пришла в голову мысль. Фильтр можно применять рекурсивно. Что получиться - не знаю, не пробовал, но считаться будет быстрее.
Что касается приложений в трейдинге, то для нас верно использование "левого окна", это когда текущей точке присваивается значение из центра окна, расположенного ПОЛНОСТЬЮ слева от текущего значения. Конечно, при этом появляется фазовая задержка (запаздывание), но так устроен мир:-)
Что касается приложений в трейдинге, то для нас верно использование "левого окна", это когда текущей точке присваивается значение из центра окна, расположенного ПОЛНОСТЬЮ слева от текущего значения. Конечно, при этом появляется фазовая задержка (запаздывание), но так устроен мир:-)
Да... Нестыковочка получается. Начал проверять. Заглянул, наконец, в свой код, который я использую для медианной фильтрации. Его я написал N лет назад (N>5) для одной маленькой програмки вывода графиков. Теперь эту программку я стал использовать как полигон для всяких исследований. Это удобно, а в старые части кода я и не заглядывал. Все работает и ладно... Теперь вот посмотрел... и неожиданно обнаружил, что та функция, которую я считал медианной фильтрацией - делает не совсем то! Дико ивиняюсь за невольную дезинформацию! Склоняю повинную голову.
Почему и зачем я так в свое время сделал - убей Бог не помню.
Классическая медиана - это когда берется центральное значение отсортированного массива. Я же почему-то брал в данном конкретном случае среднее между центральным и предыдущим ему значением. Наверное тогда, давно, это было мне зачем-то нужно. Тоже получился нелинейный фильтр, хотя, конечно, это не медиана в строгом понимании. Когда я вернулся к классическому варианту, получилось все так, как Вы описали. В моем варианте кривая меняется каждый раз при применении фильтра и в конечном итоге стремиться к прямой (после нескольких сотен фильтраций). Чем больше окно фильтра, тем быстрее это происходит.
Чтобы далее не возникало разночтений, привожу кусок кода на С.
Там все просто, надеюсь любой сможет разобраться.
Насчет "левого окна" - все так, соласен. Но пока, думаю, это детали.
Еще раз приношу свои извинения.
Может, появились какие новости по этой работе?
Может, появились какие новости по этой работе?
после публикации их ответа ни каких дальнейших шагов я не стал предпринимать.
просто показал путь, как можно попытаться найти диссертационный материал.
предупреждаю, что материал может быть платным.
Веду тяжелые позиционные бои с MatLab.
Для начала решил просто посмотреть на вейвлет-разложения ряда цены и ряда значений индикатора. Для DWT никаких сюрпризов не обнаружил, все более-менее понятно.
Для CWT разложение индикатора тоже имело достаточно понятную структуру. Однако, ряд цены дал вот такую картинку:
Структура этой картинки вообще говоря существенно отличается от, например, картинки в посте Andre69 28.06.07 20:43 на стр. 141. Хотелось бы понять почему.
С другой стороны она имеет какую-то слишком уж регулярныю структуру. Почему ?
Этот анализ выполнен для ряда в 1024 отсчетов.
Scale settings: Min=1, Step=1, Max=512. Вейвлет DMeyer'а
PS Кстати, упомянутый пост был последним в нескончаемом сериале про вейвлеты. :-)
Хотелось бы узнать по поводу продолжения. Следует ?
С другой стороны она имеет какую-то слишком уж регулярныю структуру. Почему ?
Юра, подобная регулярная структура имеет своей природой краевые эффекты, неизбежно возникающие на концах изучаемого ВР. Избежать подобных эффектов нельзя. Но если позволяет условие решаемой задачи, то можно с каждого конца ВР оставлять несколько членов ряда (число членов равно ширине окна выборки), которые будут принимать участие в рассчётах, но не будут использованы при визуализации. После этой процедуры картинка станет адекватной и изотропной.
Но если позволяет условие решаемой задачи, то можно с каждого конца ВР оставлять несколько членов ряда, которые будут принимать участие в рассчётах, но не будут использованы при визуализации. После этой процедуры картинка станет адекватной и изотропной.
Спасибо, Сергей, за пояснение. Осталось только разобраться как сделать то, о чем ты пишешь.
Разбираясь с Wavelet Toolbox я что-то не нашел там таких возможностей. Может я чего просмотрел или это можно сделать только руками ?
В этом случае представленные результаты будут выглядеть корректно.