Торговые стратегии на основе цифровых фильтров - страница 73

 

Частотные диапазоны

MadCow:
Симба,

Поскольку любые циклические компоненты в конечном сигнале (скажем, H1) должны были присутствовать в исходном сигнале M1, но с лучшим соотношением сигнал/шум, мне кажется, что для извлечения циклических компонентов следует использовать сигнал M1. Конечно, проблема в том, что те компоненты, которые находятся, скажем, на 20-часовых периодах, будет очень трудно извлечь из данных M1, потому что для периода M1 потребуется в 60 раз больше выборок, чем для M1. С другой стороны, может быть много компонентов, которые находятся на высоких частотах в серии M1, которые несколько раз переходят в серию H1, создавая больше пиков, чем есть на самом деле.

Единственный простой способ исследовать это - посмотреть на спектр сигнала M1 и сигнала H1 за один и тот же (абсолютный) период, например, 200 часов или около того. Это невозможно сделать с помощью имеющихся в настоящее время инструментов R_MESA, поскольку длина, необходимая для M1, превышает возможности закодированного алгоритма.

MadCow...

Madcow,

Да и то и другое, нужно использовать сигнал М1 и сравнивать его с Н1, М5, 15, М30...за тот же абсолютный период...именно это я и сделал (начиная с М5) и показал на картинках ...я просканировал 540 баров h1 в h1, m30 (1080 баров m30), m15, m5....для того же диапазона абсолютных частот H1 от 1/90 до 1/180...таким образом, я искал циклы с периодичностью от 90 до 180 периодов H1 (от 180 до 360 периодов m30, и т.д., и т.п.)...и я нашел те же 2 цикла на всех таймфреймах.

Если я повторю сканирование, чтобы искать циклы от 8 до 80 периодов H1, на абсолютном интервале 240 баров H1, то я обнаружу совсем другую картину, каждый таймфрейм возвращает мне разное количество циклов, периодов, амплитуд и фаз... это непередаваемый беспорядок, как вы можете видеть на рисунке....Таким образом, использование правильных частотных диапазонов, тех, которые возвращают вам четкие циклы, является одним из ключей к работе с циклами... для этого вам нужен сканер, который может сканировать по крайней мере 7k-9k m1 баров и возвращать вам циклические периоды до 2k -3k m1 баров.

Фрактальные циклы... В основном: количество итераций или промежутков времени до повторения фрактала (осторожно: он может повториться на том же или на другом таймфрейме) .... Вертикальные линии на рисунке отмечают более поздние итерации фрактала, фрактальный цикл составляет 22 или 23 бара (это фрактал )... BTW, на закрытии пятницы мы завершили фрактальную итерацию... Я крайне заинтригован сегодняшним открытием направленного движения на следующие 22 бара.

http://www.elliottfractals.com/triggers/

Ламмерт Макроэкономика нестохастического насыщения: Июль 2005 Нестохастическая насыщенная макроэкономика - новая наука

С уважением

S

Файлы:
campc24.gif  66 kb
 
MadCow:
Симба,

Я прочитал материал Ламмерта, и пока не могу понять, что это такое. Похоже на астрологию, но многие люди верят ему, так что я должен копать глубже. Похоже, он использует определение фрактала, используемое в MT4 "fractal.mq4", по сути, экстремумы. Как это связано с фрактальными циклами?

Но позвольте мне начать доказывать свою полезность:

1. Не используйте более высокие ценовые серии TF при поиске циклических компонентов. Они будут более шумными, чем M1. Вы, похоже, уже делаете это... как насчет остальной части форума?

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

3. Не "уплощайте" ценовой ряд в конечной точке при применении БПФ или Geortzel.

Первые два пункта я уже обсуждал выше.

Рассмотрим третий. Можно показать, что периодограмма является детектором максимального правдоподобия синусоиды в стационарном белом гауссовском шуме. Я знаю, что шум FX не является стационарным, белым или даже гауссовским, но все же есть аргумент в пользу использования периодограммы. Периодограмма, по сути, является квадратом преобразования Фурье сигнала и страдает от того, что ее дисперсия не уменьшается с увеличением длины обрабатываемой последовательности. Когда она используется для оценки спектральной плотности, данные разбиваются на окна, чтобы уменьшить этот эффект "конечной точки". Но мы заинтересованы в обнаружении компонента, а не в оценке спектра. Если бы мы использовали набор полосовых фильтров для поиска сигнала, мы бы не стали сначала выравнивать ценовой ряд по конечной точке. Это было бы явно контрпродуктивно, поскольку уменьшило бы вес самых последних образцов. Поэтому не сплющивайте ценовой ряд в конечной точке перед применением БПФ или Geortzel.

4. БПФ и Geortzel эквивалентны, если скорректировать разрешение. Geortzel более эффективен при поиске по небольшому набору частот. Используйте их взаимозаменяемо в зависимости от вычислительной эффективности, определяемой полосой поиска и требуемым разрешением.

5. MESA хорош для оценки спектра, и в некоторых случаях (особенно для изменяющихся во времени синусоид) может быть лучше, чем БПФ. Однако оценка спектра и обнаружение синусоиды - разные задачи, и если синусоида длится в течение всего времени БПФ, MESA не лучше БПФ в смысле максимального правдоподобия, а скорее всего, и не лучше. Поэтому используйте БПФ и подберите его разрешение в соответствии с ожидаемой длительностью синусоиды. Забудьте о MESA, несмотря на отличное программное обеспечение RC.

Это только мое мнение, но оно может быть подкреплено математически, если модель упрощена, как указано. Я также знаю, что не все согласятся, и что RC и Ehlers особенно не согласятся, но я только пытаюсь быть полезным, как просили.

С уважением ... MadCow...

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

С уважением,

S

 

Симба,

Я прочитал материал Ламмерта, и пока не могу понять, что к чему. Похоже на астрологию, но многие люди ему верят, так что я должен копать глубже. Похоже, он использует определение фрактала, используемое в MT4 "fractal.mq4", по сути, экстремумы. Как это связано с фрактальными циклами?

С уважением... MadCow...

 

Гертцель переменной длины

Я хочу извиниться за резкое редактирование моего предыдущего сообщения. (Вы можете прочитать его полностью в ответе Симбы). Причина в том, что я обнаружил, что сглаживание конечных точек - это не то, что я думал. Она просто устанавливает две конечные точки в 0 и добавляет небольшое количество к каждому образцу между ними, чтобы компенсировать это. По сути, это добавляет очень длиннопериодный компонент, который мы можем игнорировать. Она не искажает выходной ток для достаточно высокой частоты. Также я неправильно написал Goertzel.

И я больше не считаю, что БПФ или Гертцель - лучший способ найти циклические компоненты.

Рассматривая сглаживание конечной точки и алгоритм Гёрцеля, я обнаружил, что может быть лучший способ найти спектральное содержание, когда наша цель - использовать оцененный спектр для предсказания следующих нескольких выборок. Возможно, мы захотим использовать фильтры Гёрцеля переменной длины вместо фильтров фиксированной длины во всех реализациях Гёрцеля. На прилагаемом рисунке показана разница между фильтром Гёрцеля фиксированной длины, реализованным как Goertzel_v1.mq4, и фильтром Гёрцеля переменной длины. Довольно большая разница.

У меня есть привычка писать заметки для себя, когда я анализирую проблему. С возрастом я обнаружил, что это помогает справиться с проблемами краткосрочного запоминания, которые меня мучают (отсюда и MadCow...). Прилагаемый документ - это мои заметки о переменной длине Гертцеля, и почему я предпочитаю именно ее. Буду признателен за любые отзывы.variable_length_goertzel_filters.doc

С уважением ... MadCow...

 

Обратная связь

MadCow:
Я хочу извиниться за резкое редактирование моего предыдущего сообщения. (Вы можете прочитать его полностью в ответе Симбы). Причина в том, что я обнаружил, что сглаживание конечных точек - это не то, что я думал. Она просто устанавливает две конечные точки в 0 и добавляет небольшое количество к каждому образцу между ними, чтобы компенсировать это. По сути, это добавляет очень длиннопериодный компонент, который мы можем игнорировать. Она не искажает выходной ток для достаточно высокой частоты. Также я неправильно написал Goertzel.

И я больше не считаю, что БПФ или Goertzel - лучший способ найти циклические компоненты.

Рассматривая сглаживание конечных точек и алгоритм Гёрцеля, я обнаружил, что может быть лучший способ найти спектральное содержание, когда наша цель - использовать оцененный спектр для предсказания следующих нескольких выборок. Возможно, мы захотим использовать фильтры Гёрцеля переменной длины вместо фильтров фиксированной длины во всех реализациях Гёрцеля. На прилагаемом рисунке показана разница между фильтром Гёрцеля фиксированной длины, реализованным как Goertzel_v1.mq4, и фильтром Гёрцеля переменной длины. Довольно большая разница.

У меня есть привычка писать заметки для себя, когда я анализирую проблему. С возрастом я обнаружил, что это помогает справиться с проблемами краткосрочного запоминания, которые меня мучают (отсюда и MadCow...). Прилагаемый документ - это мои заметки о переменной длине Гертцеля, и почему я предпочитаю именно ее. Буду признателен за любые отзывы.variable_length_goertzel_filters.doc

С уважением ...MadCow...

MadCow,

Как я вижу из вашего .doc

1 - Основа всех ваших рассуждений в том, что Гертцелю нужно 3*максимальная частота дискретизации периода, поэтому, если вы хотите сканировать циклы до 200 периодов, вам нужно как минимум 600 дискретов... Верно.

2-Следовательно, циклы с низкой периодичностью (high freq) могут не быть репрезентативными для того, что действительно происходит в данный момент... например, цикл в 13 баров, найденный за последние 600 баров, может не существовать сейчас, и да, вы абсолютно правы.

3-Концептуально, возможно, есть более простое решение, и это просто сканирование отдельно для нескольких частотных диапазонов... так, если вы хотите подтвердить найденный цикл в 13 периодов, вы должны повторить сканирование последних 39 баров... или, еще лучше, сделать сканирование последних 60 баров для циклов с частотами от 1/10 до 1/5.

Вывод... вам нужно делать разные сканирования... на это намекал JM Hurst в своем 1600 страничном курсе, и объяснял Brian Millard в деталях....or, вы можете построить мультичастотный, мультипространственный сканер, который сканирует в "блоках" связанных "максимальный период против длины сканирования"... это будет действительно оригинально и инновационно.

С уважением,

S

 
SIMBA:
MadCow,

Как я понял из вашего документа .doc

1-Основа всех ваших рассуждений в том, что Гертцелю требуется 3*максимальная частота дискретизации периода, поэтому, если вы хотите сканировать циклы до 200 периодов, вам нужно как минимум 600 дискретов... Верно.

2-Следовательно, циклы с низкой периодичностью (high freq) могут не быть репрезентативными для того, что действительно происходит в данный момент... например, цикл в 13 баров, найденный за последние 600 баров, может не существовать сейчас, и да, вы абсолютно правы.

3-Концептуально, возможно, есть более простое решение, и это просто сканирование отдельно для нескольких частотных диапазонов... так, если вы хотите подтвердить найденный цикл в 13 периодов, вы должны повторить сканирование последних 39 баров... или, еще лучше, сделать сканирование последних 60 баров для циклов с частотами от 1/10 до 1/5.

Вывод... вам нужно делать разные сканирования... на это намекал JM Hurst в своем 1600-страничном курсе, и подробно объяснял Brian Millard....or, вы можете построить мультичастотный, мультипространственный сканер, который сканирует в "блоках" связанных "максимальный период против длины сканирования"... это будет действительно оригинально и инновационно.

С уважением,

S

Очевидно, что вы намного опередили меня в этом вопросе. Приятно получить подтверждение того, что я все еще могу мыслить логически.

Я посмотрел на использование различных сканирований и решил, что попытка найти короткие циклы в длинных блоках может пропустить их, и я никогда не смогу вернуться, чтобы подтвердить, что они там были. Также потребуется много дополнительных вычислений, чтобы просмотреть много блоков. Поэтому я посмотрел на код и решил, что я могу модифицировать код Goertzel_v1, чтобы сделать многочастотный, многопролетный сканер напрямую. Код на самом деле проще и требует меньше вычислительных циклов, чем оригинальный _v1. Инновация или просто удача? Модифицированный Goertzel_v1 (теперь _v2) был использован в моем предыдущем сообщении.

Прилагаются две модификации, _v2 выполняет работу без сглаживания конечных точек, хотя его можно добавить, удалив некоторые комментарии в коде. _v3 выполняет всю работу, включая сглаживание конечных точек для каждого блока/периода. Вы можете варьировать минимальное количество циклов для поиска с помощью переменной numcycles. Это изменяет разрешение фильтров: большее количество циклов дает лучшее разрешение, но требует большего количества выборок, что позволяет прошлым сигналам вмешиваться в текущие. Вы также можете использовать медианную цену вместо цены закрытия, установив параметр useclose в false. Это не имеет никакого значения, насколько я могу судить.

Мои навыки кодирования довольно ржавые, поэтому может быть проблема с кодированием при сглаживании конечной точки, но я думаю, что нет. Если проблемы с кодом нет, то EPF не поможет при многочастотном сканировании.

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

С уважением ... MadCow...

goertzel_v3.mq4[/ATTACH]

Файлы:
 

Предложения

MadCow:
Очевидно, что вы намного опередили меня в этом вопросе. Приятно получить подтверждение того, что я все еще могу мыслить логически.

Я рассмотрел использование различных сканирований и решил, что попытка найти короткие циклы в длинных блоках может их пропустить, и я никогда не смогу вернуться, чтобы подтвердить, что они там были. Также потребуется много дополнительных вычислений, чтобы просмотреть много блоков. Поэтому я посмотрел на код и решил, что я могу модифицировать код Goertzel_v1, чтобы сделать многочастотный, многопролетный сканер напрямую. Код на самом деле проще и требует меньше вычислительных циклов, чем оригинальный _v1. Инновация или просто удача? Модифицированный Goertzel_v1 (теперь _v2) был использован в моем предыдущем сообщении.

Прилагаются две модификации, _v2 выполняет работу без сглаживания конечных точек, хотя его можно добавить, удалив некоторые комментарии в коде. _v3 выполняет всю работу, включая сглаживание конечных точек для каждого блока/периода. Вы можете варьировать минимальное количество циклов для поиска с помощью переменной numcycles. Это изменяет разрешение фильтров: большее количество циклов дает лучшее разрешение, но требует большего количества выборок, что позволяет прошлым сигналам вмешиваться в текущие. Вы также можете использовать медианную цену вместо цены закрытия, установив параметр useclose в false. Это не имеет никакого значения, насколько я могу судить.

Мои навыки кодирования довольно ржавые, поэтому может быть проблема с кодированием при сглаживании конечной точки, но я думаю, что нет. Если проблемы с кодом нет, то EPF не поможет при многочастотном сканировании.

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

С уважением ... MadCow...

goertzel_v3.mq4[/ATTACH]

MadCow,

1-Как решить, какие компоненты брать для предсказания:Используйте 3 из ваших v3, установите для каждого из них (MaxPer-MinPeriod):50-10,100-50,200-100.

2-Тогда выберите только один цикл из v3, тот, который имеет самую высокую амплитуду.

3-Тогда, используя периодичность, амплитуду и фазу каждого из 3 циклов, сложите их в композит.

4-Длина предсказания?... Кроме вычисления экспоненты Ляпунова ? Правило большого пальца, IMO, состоит в том, чтобы использовать от одной трети до половины полос самого короткого цикла...

Теперь, вы можете верить мне или нет, и, искренне, у вас нет никаких причин, потому что я не буду объяснять почему, кроме того, что я был там и делал это...

5-SNR:Забудьте об этом... Это не работает, вы можете пробовать столько способов, сколько хотите... они не работают для выбора хороших циклов.

6-Использование ВСЕХ циклов?...;)...Попробуйте и вы начнете мне верить...ЭТО НЕ РАБОТАЕТ...длина предсказания будет меньше 1 бара.

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

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

Теперь... лучший совет, который я могу вам дать... На сегодняшний день, лучший способ ТОРГОВАТЬ (не предсказывать) этими циклами - это делать то, что я написал в номерах 1 и 2, а затем...

9- Просто торгуйте на выравнивании 3 циклов (забудьте о композитах)... Я использую фазы в градусах, а не в радианах, поэтому, когда 3 цикла выравниваются выше 180 градусов, вы можете ожидать движения вверх, когда они выравниваются между 0 и 179 градусами, вы можете ожидать движения вниз... на практике я использую правило выше 180 и ниже 270 (для лонгов)... и выше 0 и ниже 90 (для шортов)...Затем, после того, как у вас есть выравнивание, подождите подтверждения цены, особенно прорывы линии тренда, перед входом в сделку, используйте цель, связанную с ATR таймфрейма, на котором вы торгуете, и используйте стоп ниже предыдущего минимума / выше предыдущего максимума... если TP >, чем SL, то возьмите сделку, если нет, то пропустите... О, и маленькая деталь, всегда торгуйте в направлении большего таймфрейма.

С уважением,

S

 

Ссылка о Херсте

Интересная ссылка... http://wintrend. com/Reports/TCPToday.pdf

Кстати... 16 октября - дата разворота для sp500, затем 2 ноября и затем, DA TOP... Между 13 ноября и 9 декабря (извините, точная дата только для благотворительных организаций )... да, да, парень в отчете говорит по-другому, но либо он, либо я ошибаюсь... угадайте кто?... хахахахахах... проверьте 16 октября, когда оно наступит и решайте.

S

 
SIMBA:
MadCow,

1-Как решить, какие компоненты взять для прогнозирования:Используйте 3 из ваших v3, установите каждый из них на (MaxPer-MinPeriod):50-10,100-50,200-100.

2-Тогда выберите только один цикл из v3, тот, который имеет самую высокую амплитуду.

3-Тогда, используя периодичность, амплитуду и фазу каждого из 3 циклов, сложите их в композит.

4-Длина предсказания?... Кроме вычисления экспоненты Ляпунова ? Правило большого пальца, IMO, состоит в том, чтобы использовать от одной трети до половины полос самого короткого цикла...

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

5-SNR:Забудьте об этом... Это не работает, вы можете пробовать столько способов, сколько хотите... они не работают для выбора хороших циклов.

6-Использование ВСЕХ циклов?...;)...Попробуйте и вы начнете мне верить...ЭТО НЕ РАБОТАЕТ...длина предсказания будет меньше 1 бара.

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

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

Теперь... лучший совет, который я могу вам дать... Безусловно, лучший способ ТОРГОВЛИ (не предсказания) этими циклами - это делать то, что я написал в номерах 1 и 2, а затем...

9- Просто торгуйте на выравнивании 3 циклов (забудьте о композитах)... Я использую фазы в градусах, а не в радианах, поэтому, когда 3 цикла выравниваются выше 180 градусов, вы можете ожидать движения вверх, когда они выравниваются между 0 и 179 градусами, вы можете ожидать движения вниз... на практике я использую правило выше 180 и ниже 270 (для лонгов)... и выше 0 и ниже 90 (для шортов)...Затем, после того, как у вас есть выравнивание, подождите подтверждения цены, особенно прорывы линии тренда, перед входом в сделку, используйте цель, связанную с ATR таймфрейма, на котором вы торгуете, и используйте стоп ниже предыдущего минимума / выше предыдущего максимума... если TP >, чем SL, то возьмите сделку, если нет, то пропустите... О, и маленькая деталь, всегда торгуйте в направлении большего таймфрейма.

С уважением,

S

Симба...

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

Есть пара вещей, которые я должен объяснить форуму на случай, если кто-то захочет использовать _v2 или _v3.

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

Во-вторых, хотя вы можете выбирать компоненты из различных блоков, как предлагает Simba, нет необходимости разбивать спектр на несколько блоков при вычислениях. На самом деле, вы можете пропустить важную компоненту на краю блока, если сделаете это. Вся периодичность может быть вычислена за один проход, поскольку длина блока вычисляется независимо для каждого периода. Но, как говорит Симба, одна картинка стоит 1000 слов. Вот спектр, вычисленный за один проход, в сравнении с участками, вычисленными за отдельные проходы с ограниченной периодичностью.

С уважением ... MadCow...

Файлы:
 

Добро пожаловать

MadCow:
Симба...

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

Есть пара вещей, которые я должен объяснить форуму на случай, если кто-то захочет использовать _v2 или _v3.

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

Во-вторых, хотя вы можете выбирать компоненты из разных блоков, как предлагает Simba, нет необходимости разбивать спектр на несколько блоков при вычислениях. На самом деле, вы можете пропустить важную компоненту на краю блока, если сделаете это. Вся периодичность может быть вычислена за один проход, поскольку длина блока вычисляется независимо для каждого периода. Но, как говорит Симба, одна картинка стоит 1000 слов. Вот спектр, вычисленный за один проход, в сравнении с частями, вычисленными за отдельные проходы с ограниченной периодичностью.

С уважением ...MadCow...

Добро пожаловать,

Я думаю, что если вы не разделите спектр на блоки, то вам конец... но, ладно, посмотрим через несколько месяцев, что вы думаете.

Я уезжаю в отпуск на 3 недели, постараюсь поддерживать связь раз в неделю.

С уважением,

S