Форум трейдеров » Торговые стратегии » Адаптивные фильтры. Применение в торговле
+ Подписаться
Страница 23 из 55 ПерваяПервая ... 13212223242533 ... ПоследняяПоследняя
  1. 1,024
    Комментарии
    2
    Темы
    1971
    Репутация Pro
     
    Мастер форумных наук

    4 Медалей
    Цитата Сообщение от avtomat Посмотреть сообщение
    Вложение 437043

    думаю, так будет понятно.
    Так понятно, спасибо.
  2. 1,024
    Комментарии
    2
    Темы
    1971
    Репутация Pro
     
    Мастер форумных наук

    4 Медалей
    Цитата Сообщение от avtomat Посмотреть сообщение
    А ведь я не зря предварительно -- до того как -- дал описание фильтрации и описание экспоненциального фильтра
    :D
    Автомат, но ведь ваш пост №188 с копией учебника по ТАУ или чему-то аналогичному - невозможно читать без смеха пополам со слезами.

    Там явно предполагается наличие на входе "сигнала" и "помехи", причем оба они - стационарные случайные процессы.
    Да еще и помеха некоррелирована с сигналом и имеет известный спектр мощности.
    А в торговле - естественного разделения на сигнал и помеху в цене нет.
    А если искусственно назначить помехой высокочастотные компоненты, то их некоррелированность с низкочастотными - весьма и весьма неочевидна.
    И т.д., и т.п.

    И про несмещенность оценки - тоже смешно звучит.
    Оно конечно, ЕМА дает несмещенную оценку - при бесконечном времени наблюдения.
    В реальности при наличии на входе направленного движения оценка всегда смещена - фильтр же запаздывает.
    ==========
    Замечание. Вот от этой диеты, перенасыщенной несмещеными оценками и сигналами с нулевым средним, и возникает у многих людей привычка к тому, что дисперсия равносильна второму моменту.
  3. 1,024
    Комментарии
    2
    Темы
    1971
    Репутация Pro
     
    Мастер форумных наук

    4 Медалей
    Продолжаю пост №185, рассказ о первом фильтре с простой нелинейностью.

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

    Естественно попробовать слепить и протестировать макет ТС на пересечении этих двух по-разному сглаженных цен.

    Ниже - исходник торгового сигнала. Он отличается от простого пересечения линий.
    Код:
    Inputs: alfa(1/22),gam(0.5),TrEn(0),k(1);
    var: Num(0),Den(0);
    
    Num=$A1((high+low)/2,alfa,gam)-$C1(high,low,alfa,gam);
    {Num=$A1(close,alfa,gam)-$C1(high,low,alfa,gam);}
    Den=$A1((high-low),alfa,gam);
    Value1=Num/Den;
    
    
    if Value1 cross above -TrEn*k then ExitShort this bar on close;
    if Value1 cross below TrEn*k then ExitLong this bar on close;
    
    if Value1 cross above TrEn then buy this bar on close;
    if Value1 cross below -TrEn then sell this bar on close;
    С порогом сравнивается величина разности ЕМА и С1, нормированная на усредненную высоту свечи.
    Параметр k определяет выход, определяет "меру оптимизма" ТС.
    при k=-1 ТС является переворотной, т.е. сидит в сделке до получения противоположного сигнала, при k=0 - выход по обратному пересечению линий, при k=1 - "трусливый" выход, как только базовая величина стала хуже, чем порог на вход в сделку.

    Первая серия тестирования проведена в «оптимистичном» варианте, параметр выхода k зафиксирован как k=–1. Это означает, что ТС всегда в рынке. Часто это приводит в слепом периоде к неудачам. Так оно и вышло – результат формально положительный, но никак не вдохновляет на торговлю на реальном счете. Хотя страшных падений и не было. Да и количество сделок маловато.

    Вторая серия тестирования проведена с одновременной оптимизацией по TrEn и k, причем k разрешено изменяться только от 0 до 1, т.е. не пытаемся ждать противоположного сигнала, выходим сразу же по обратному пересечению линий фильтров С1 и А1. Результат второй серии куда более «человечный», радует не только то, что не было катастрофических падений в слепом периоде, но и то, что оптимизатор проявил «здоровую осторожность», о чем свидетельствует неожиданно большое значение k. Однако прибыльность - не вдохновляет.

    Сигнал основан на разности двух фильтров с весьма близким поведением. Поэтому я пересмотрел своё вечное желание держать alfa=1/22 и провел третье тестирование с alfa =0,1 , оптимизируя TrEn и k аналогично второй серии.

    О результатах тестирования.

    Честно говоря, меня никогда не тянуло пытаться довести макет этой ТС до реальной ТС. Причина - малое количество сделок и слишком спокойное пересиживание откатов, демонстрируемое этой ТС.

    Однако ранее я всегда по привычке ставил высокий уровень сглаживания alfa=1/22. Тестирование с alfa =0,1 я прогнал буквально сегодня и призадумался...

    1. Выросло число сделок. Для трендовой ТС на дневках четыре-шесть сделок в год - уже нормально, примерно столько раз в год евродоллар значимо разворачивается.
    2. При малом alfa оптимизатор весьма удачно увеличил как k, так и TrEn, что позволило избежать краха на размашистом флэте весной-летом 2011.
    3. Разумеется, дисциплина переоптимизации "раз в год по расписанию" вне зависимости от текущих результатов торговли - весьма грубый инструмент и может быть улучшен.

    Надо задуматься о выделении трудоемкости для доработки этого макета до боевой ТС.
    1. Прибыльность чуть меньше тысячи пунктов в год при отсутствии явных провалов (текущий год выглядит провально по прибыльности, но пока не убыточно).
    2. Просадка тоже выглядит обычно для трендовых ТС на дневках - чуть меньше среднегодовой прибыли.
    3. Сверхпростота макетной ТС является, как обычно, пространством для разного рода мелких улучшений типа включения трейлинг-стопа и т.п.
  4. 8,531
    Комментарии
    46
    Темы
    15162
    Репутация Pro
    Аватар для avtomat  
    Старожил

    7 Медалей
    Цитата Сообщение от BQQ Посмотреть сообщение
    Автомат, но ведь ваш пост №188 с копией учебника по ТАУ или чему-то аналогичному - невозможно читать без смеха пополам со слезами.

    Там явно предполагается наличие на входе "сигнала" и "помехи", причем оба они - стационарные случайные процессы.
    Да еще и помеха некоррелирована с сигналом и имеет известный спектр мощности.
    А в торговле - естественного разделения на сигнал и помеху в цене нет.
    А если искусственно назначить помехой высокочастотные компоненты, то их некоррелированность с низкочастотными - весьма и весьма неочевидна.
    И т.д., и т.п.

    И про несмещенность оценки - тоже смешно звучит.
    Оно конечно, ЕМА дает несмещенную оценку - при бесконечном времени наблюдения.
    В реальности при наличии на входе направленного движения оценка всегда смещена - фильтр же запаздывает.
    ==========
    Замечание. Вот от этой диеты, перенасыщенной несмещеными оценками и сигналами с нулевым средним, и возникает у многих людей привычка к тому, что дисперсия равносильна второму моменту.
    :hmmm: сколько ж раз мне доводилось слышать подобные восклицания... а ехидную и высокомерную ухмылочку вижу ну прям как наяву.... "Этого не может быть!", "Это смешно! потому что и т.д. по тексту" ... Жаль...

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

    Может вы опять не заметили, хотя я выделил жирным, что при таких-то допущениях... тобишь --- если предположить, что если так, то будет вот то-то и то-то... Далее я говорю, что нам не известны характеристики ни полезного сигнала, ни помехи. И надо организовать контур управления параметром настройки фильтра, чтобы на каждом шаге работы фильтра минимизировать дисперсию ошибки фильтрации. На что незамедлительно следует ваше восклицание "Неверно!" да с вослицательным знаком, да пожирней :D Затем следуют какие-то непонятные ваши подозрения в моей полной некомпетентности, да и что вообще я ни хрена не знаю и не понимаю... Затем последовали какие-то оторванные от жизни рассуждения о дисперсии...

    А тем временем контур УУ построен на базе тех самых первоначальных предположений, с добавлением чуточку фантазии -- и работает, невзирая на то, что вам смешно аж до слёз...
    Так может быть, вместо того чтоб смеяться "смехом пополам со слезами", не ограничиваться поверхностным просмотром, видя лишь давно знакомые вещи, и ничего более, кроме них, не замечая, а постараться всё же вникнуть в ход рассуждений. ;)
  5. 8,531
    Комментарии
    46
    Темы
    15162
    Репутация Pro
    Аватар для avtomat  
    Старожил

    7 Медалей
    Цитата Сообщение от BQQ Посмотреть сообщение
    То есть дисперсия растет, растет (по крайней мере, поначалу) и её приращение.
    Однако про входной процесс всё-таки тянет сказать, что он "стабилизировался", ибо он стал константой.
    Видимо, слова "входной процесс стабилизируется" мы тоже понимаем по-разному.
    Ничего страшного тут нет - надо просто указать, какая именно характеристика входного процесса стабилизируется.
    Входным процессом для блока D{e} является е - ошибка фильтрации.
  6. 1,024
    Комментарии
    2
    Темы
    1971
    Репутация Pro
     
    Мастер форумных наук

    4 Медалей
    Цитата Сообщение от avtomat Посмотреть сообщение
    :hmmm: сколько ж раз мне доводилось слышать подобные восклицания... а ехидную и высокомерную ухмылочку вижу ну прям как наяву.... "Этого не может быть!", "Это смешно! потому что и т.д. по тексту" ... Жаль...

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

    Может вы опять не заметили, хотя я выделил жирным, что при таких-то допущениях... тобишь --- если предположить, что если так, то будет вот то-то и то-то... Далее я говорю, что нам не известны характеристики ни полезного сигнала, ни помехи. И надо организовать контур управления параметром настройки фильтра, чтобы на каждом шаге работы фильтра минимизировать дисперсию ошибки фильтрации. На что незамедлительно следует ваше восклицание "Неверно!" да с вослицательным знаком, да пожирней :D Затем следуют какие-то непонятные ваши подозрения в моей полной некомпетентности, да и что вообще я ни хрена не знаю и не понимаю... Затем последовали какие-то оторванные от жизни рассуждения о дисперсии...

    А тем временем контур УУ построен на базе тех самых первоначальных предположений, с добавлением чуточку фантазии -- и работает, невзирая на то, что вам смешно аж до слёз...
    Так может быть, вместо того чтоб смеяться "смехом пополам со слезами", не ограничиваться поверхностным просмотром, видя лишь давно знакомые вещи, и ничего более, кроме них, не замечая, а постараться всё же вникнуть в ход рассуждений. ;)
    Автомат, мне удалось вас обидеть?
    Но даже и в этом случае - зачем искажать мои слова?
    ==============
    Перечитал свои последние посты, особенно - "рассуждения о дисперсии".
    Не нашел там рассуждения, более оторванного от жизни, чем ваше предположение о стационарности цены.

    Сразу поясню: это - не критика и тем более - не насмешка.
    На практике довольно часто можно видеть, как алгоритмы, разработанные на основе некоторых предположений, остаются работоспособными достаточно далеко за рамками этих предположений.
    Характернейший пример - МНК-оценивание.

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

    =================
    Большая часть взаимонепонимания обычно порождается двумя причинами: языковый барьер и скороговорка.
    Вот в посте №210 вы пишете
    Текущее значение дисперсии сравниваем с предыдущим её значением, т.е. определяем градиент дисперсии. Если градиент дисперсии падает, то это означает, что входной процесс стабилизируется. И наоборот.
    Если рядом со словами "входной процесс" нет никаких иных уточняющих слов, то читатель весьма естественно думает, что речь идет о входном процессе фильтра в целом. а в посте № 225 вы уточняете, что речь идет о входном процессе блока вычисления дисперсии.
    ================
    На самом деле, думаю, наши понимания вопроса куда ближе, чем может показаться свежему читателю ветки.
    Просто мы многого недоговариваем, что мешает.

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

    Аналогично обстоит дело с минимизацией дисперсии.
    Когда я читаю
    Наша эадача -- так организовать контур управления параметром настройки фильтра, чтобы на каждом шаге работы фильтра минимизировать дисперсию ошибки фильтрации.
    , то понимаю это так, как написал в посте №207.
    Вот как я вас понял.
    1. задаем интервал наблюдений - интервал, на который в прошлое будем смотреть для пересчета единственного параметра ЕМА.
    2. На каждом шаге с появлением нового входного отсчета смотрим в прошлое и выбираем такой параметр фильтра, который минимизирует дисперсию ошибки слежения, если бы это значение параметра было применено на всем интервале наблюдения
    Но у вас, судя по косвенным признакам, алгоритм изменения параметра фильтра совсем другой. Косвенные признаки - это упоминание вами сопоставления знаков приращения дисперсии ошибки слежения и приращения параметра фильтра + наличие такого параметра как шаг приращения параметра фильтра

    Поэтому я со средней степенью обоснованности догадываюсь о вашем алгоритме так:
    - Если дисперсия ошибки убывает, то вы двигаете параметр фильтра в том же направлении, в котором двигали его на прошлом шаге (на прошлом входном отсчете);
    - если дисперсия ошибки растет, вы двигаете параметр фильтра в противоположном направлении.
    И всё это - с учетом границ допустимого интервала.
    Первая ассоциация - дельта-модуляция:smartass:

    Согласитесь, что это не совсем "минимизация дисперсии ошибки", это - весьма похожее, но какое-то иное действие.

    Вопрос: ну теперь-то я правильно понял ваш способ изменения параметра фильтра?
  7. 8,531
    Комментарии
    46
    Темы
    15162
    Репутация Pro
    Аватар для avtomat  
    Старожил

    7 Медалей
    ну почти правильно :smartass:

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

    Сделаю переменный шаг -- там будет посложнее. Если сейчас в расчёт берутся лишь последние две точки, то в варианте с переменным шагом в расчёт надо брать как минимум три-пять точек, которые будут скорее всего разнонаправленными. И поэтому такой простой и явной однозначности уже не будет.
  8. 8,531
    Комментарии
    46
    Темы
    15162
    Репутация Pro
    Аватар для avtomat  
    Старожил

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





    ps.
    И если бы были действительно выполнены те предположения, то тогда и не было бы не только нужды в адаптации, но и проку от неё был бы ноль :smartass:
  9. 1,024
    Комментарии
    2
    Темы
    1971
    Репутация Pro
     
    Мастер форумных наук

    4 Медалей
    Цитата Сообщение от avtomat Посмотреть сообщение
    Вижу, что идея вам так и не раскрылась... пока...
    Но если бы вы внимательно отнеслись, а не поверхностно, то обратили бы внимание на тот факт, что для стационарного входного процесса, при сделанных преположениях, решение задачи существует и оно единственно -- одна-единственная оптимальная точка. Для нестационарного входного процесса такая точка будет смещаться -- и решением будет уже движущаяся точка, процесс, который и необходимо организовать. Именно организацией такого процесса и занимается УУ при адаптации к изменяющимся условиям работы.





    ps.
    И если бы были действительно выполнены те предположения, то тогда и не было бы не только нужды в адаптации, но и проку от неё был бы ноль :smartass:
    И это именно вы упрекали меня в намеках некомпетентность!:thumbsup_002:
    Но я не то чтобы необидчив - просто отфильтровываю такие фразы, и подавление в полосе подавления моего входного фильтра около 40 дБ.
    ================
    Ваш пост - очень хорош. В смысле - позволяет обратить внимание на различие наших взглядов на предметную область, а именно это и есть самое интересное при общении с человеком примерно одинаковой квалификации. Детали реализации интересны только тогда, когда проливают свет на содержательный уровень.

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

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

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

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

    Кстати, для случая медленно меняющихся параметров - ваш алгоритм весьма естественен и хотя бы в силу этого не должен быть плохим.
    Однако следует заметить, что даже в модели, описанной в ваших постах №187 и №188, возможны резкие скачки оптимальной точки. Скачок происходит в тот момент, когда меняется знак выражения k*m-1 (обозначения из поста №188). Но в медленно меняющемся мире этот скачок оптимальной точки слабо влияет на целевой критерий, поскольку происходит в тот момент, когда его график - плоский или почти плоский. Однако сам скачок - остается, и алгоритмам следящего типа будет непросто выжить.
    ================
    Вот тут мы ещё раз прикоснулись к тому моменту, который был ранее затронут в начале ветки.
    Наверное, я тогда вам недостаточно подробно или недостаточно понятно ответил на ваш вопрос, заданный вами в посте №75. Ответил я плохо, потому что вопрос вы повторили в посте №78. А второй раз я почему-то не ответил, виноват.

    Отвечал я с посте №77, который мне как автору кажется понятным - автору-то всегда понятно.
    В посте №77 были описаны два частных вида нестационарности, с которыми люди как-то научились бороться
    Два самых известных частных видов нестационарности описаны ниже.
    ==================
    1. Квазистационарность.
    Нестационарность вида "медленно меняющиеся параметры". Такой сигнал нестационарен (параметры меняются), но вследствие медленной скорости дрейфа параметров сигнала его можно рассматривать как стационарный с приемлемой для потребителя погрешностью на протяжении некоторого интервала времени. Если этот интервал времени достаточно велик по сравнению с остальными характерными временами задачи, то многие результаты стационарной теории переносятся на квазистационарный сигнал.
    Для известных сигнала и шума есть способ расчета оптимального линейного фильтра.
    "Почти стационарный" сигнал порождает "почти линейный" фильтр.
    Если интервал стационарности достаточно велик, то можно организовать адаптацию фильтра через измерение интересующих нас свойств сигнала. При этом свойства сигнала медленно меняются, работает алгоритм следящего измерения этих свойств, после чего "на лету" корректируются коэффициенты фильтра так, чтобы быть локально оптимальными.
    При этом в силу медленности изменения свойств сигнала коэффициенты фильтра тоже меняются медленно. И получается, что все привычные характеристики фильтра вроде АЧХ можно использовать для анализа/синтеза фильтра, но эти характеристики медленно дрейфуют во времени.
    Этот вид нестационарности часто встречается в технике, его предельным случаем является случай постоянных, но нам неизвестных параметров сигнала.
    Достаточно очевидно, что цена свойством квазистационарности не обладает.

    2. Дискретная во времени нестационарность.
    Сигнал состоит из длинных стационарных участков. Нестационарность состоит в скачкообразном переключении между стационарными состояниями. Этот вид нестационарности характерен для тех случаев, когда рассматриваемый сигнал формируется некоторой системой с небольшим количеством ясно различимых состояний, причем состояния переключаются скачком.
    Этот частный вид нестационарности слабее общего вида нестационарности (когда "всё плохо") тем, что нестационарность сосредоточена во времени. Здесь тоже можно применять известные методы, хотя бы и уже упоминавшееся измерение парамтров сигнала. Грубо говоря, у нас будет всё хорошо на стационарных участках, и всё плохо в началах стационарных участков (пока мы не измерим новые параметры сигнала).

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

    Именно поэтому возник мой интерес к адаптивным фильтрам, которые можно условно назвать безынерционными: новое значение параметров фильтра зависит только от текущей ситуации. Я этим заинтересовался и слепил описанный мной в ветке безынерционный фильтр В1 (и несколько его небольших вариаций).
    ==================
    Разумеется, встречаются и длинные участки стационарности - и тогда все спекулянты в шоколаде, а хеджеры за это платят.
  10. 8,531
    Комментарии
    46
    Темы
    15162
    Репутация Pro
    Аватар для avtomat  
    Старожил

    7 Медалей
    ... возможны резкие скачки оптимальной точки. Скачок происходит в тот момент, когда меняется знак выражения k*m-1
    Катастрофы не происходит благодаря использованию скользящего окна, с его эффективным сглаживанием-усреднением входной последовательности.
    Для таких скачков необходимо внезапное резкое изменение статистических характеристик входной смеси сигнал+помеха. Не одиночный выброс, а статистика.
    И проверка поведения фильтра на таких вот переключениях статистики заслуживает отдельного особого моделирования.

Вверх
РегистрацияX

чтобы писать, читать, комментировать