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

    4 Медалей
    Цитата Сообщение от никита_ Посмотреть сообщение
    Вообще-то, 26 августа 2012 г. было воскресение...
    Вы правы, я позорно "отлакировал действительность".
    Там действительно был сигнал, я даты попутал.
    Сигнал был, конечно же, по закрытию пятницы (которая отображается как 2 часа ночи субботы.

    Смягчающим обстоятельством моего вранья является то, что было уже куплено по другой ТС по пробою максимума 1.2442.
    А добавляться после столь выраженного падения я не решился.
    ========
    К посту этому ещё вернусь при описании той ТС, по которой было "уже куплено".

    А вообще весь случай - прекрасная иллюстрация к двум правилам.
    1. Имеешь исторически протестированную ТС - не бойся следовать её сигналам.
    2. Когда врешь - проверяй мелкие детали.:mad:
  2. 32
    Комментарии
    0
    Темы
    32
    Репутация Pro
     
    Новичок

    2 Медалей
    Цитата Сообщение от BQQ Посмотреть сообщение
    Сигнал был, конечно же, по закрытию пятницы (которая отображается как 2 часа ночи субботы.
    Замечательный пример маразма МТ-4, обусловленного проблемой терминального времени.
    У меня в МТ терм вр - GMT0, поэтому на часовых графиках имею в "терминальное" воскресение 4 бара, а на дневных графиках каждое воскресение - законный бар.
    Наиболее честны дневки на акциях и индексах типа DAX, на форексе же, всегда возможны всякие фокусы.
    Вот пример с воскресением 28 октября.



    ==
  3. 1,048
    Комментарии
    2
    Темы
    1975
    Репутация Pro
     
    Мастер форумных наук

    4 Медалей
    Цитата Сообщение от никита_ Посмотреть сообщение
    Замечательный пример маразма МТ-4, обусловленного проблемой терминального времени.
    У меня в МТ терм вр - GMT0, поэтому на часовых графиках имею в воскресение 4 бара, а на дневных графиках каждое воскресение - законный бар.
    Наиболее честны дневки на акциях и индексах типа DAX, на форексе же, всегда возможны всякие фокусы.
    Вот пример с воскресением 28 октября.



    ==
    То есть у вас залезает не пятница на субботу (как у меня), а суббота на воскресенье?
    То етсь в ваш МТ4 поставляют котировки всю субботу?

    Занятно.
  4. 32
    Комментарии
    0
    Темы
    32
    Репутация Pro
     
    Новичок

    2 Медалей
    Кстати, BQQ, Вы пишите, что закрытие пятницы отображается как 2 часа ночи субботы. Логично предположить, что у вас на дневных графиках присутствуют "субботние" бары, которые полновесно участвуют в анализе. Интересно, не правда-ли?
  5. 1,048
    Комментарии
    2
    Темы
    1975
    Репутация Pro
     
    Мастер форумных наук

    4 Медалей
    Покаявшись, продолжу.

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

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

    Обычно нелинейный элемент (на схеме обозначен как "НЭ") располагают или непосредственно до или непосредственно после вычитателя прогноза из входного сигнала. То есть нелинейному преобразованию подвергают или входной сигнал или сигнал рассогласования.

    ====================
    При описании процесса создания адаптивного фильтра В1 я формулировал следующие требования
    Фильтр В1 должен иметь следующие «внешние» свойства (уровень ЗАЧЕМ).
    1. Иметь на быстрых направленных движениях не очень большое запаздывание. Замечу, что в случае адаптивного фильтра запаздывание трудно оценить в единицах времени (есть зависимость от вида входного сигнала, нет принципа суперпозиции), поэтому корректнее говорить о невязке прогноза или об ошибке слежения, о величине x(k+1)-p(k+1), обозначим её как del, del(k) = x(k)-p(k).
    2. При переходе рынка от направленного движения к консолидации запаздывание не должно быть слишком маленьким. То есть выходной сигнал фильтра должен «не торопиться» подойти к цене, если цена от него не убегает. Это требование введено в соответствии с обычной практикой устройства ТС на ФНЧ: при цене выше выхода ФНЧ покупаем, при цене ниже выхода ФНЧ – продаем. При этом в тренде имеем прибыль, а во флэте и в консолидации – ряд мелких убытков. Так вот, я хочу, чтобы при переходе к консолидации выход фильтра В1 оставался бы по одну сторону от зоны консолидации, не выкидывая из сделки по причине окончания прошлого движения. Потому что после консолидации движение может и продолжиться в прежнюю сторону.
    При создании фильтра с простой нелинейностью мне пришлось отказаться от первого требования, но второе требование я сохранил, так как именно частое поступление противоположных сигналов во флэте уменьшает депозит.

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

    Эта идея порождает две реализации:
    1. промежуток, на котором вычисляется минимум или максимум, составляет всего один бар. То есть берется вместо значения цены её Хай или Лоу.
    2. промежуток, на котором вычисляется минимум или максимум, составляет несколько баров.

    Ниже - исходник первой версии для Омеги. Фильтр называется С1 (исторически он появился раньше семейства D).
    Код:
    Inputs: price1(Numericseries),price2(Numericseries),alfa(Numeric),gam(Numeric);
    {Histeresis}
    Variables: prog(0),h_(0),l_(0),del(0);
    
    If CurrentBar <= 2 Then 
    	$C1 = (Price1+price2)/2
    Else 
    	begin
    		h_=MaxList( price1,price2);
    		l_=MinList( price1,price2);
    
    		prog=$C1[1]+gam*($C1[1]-$C1[2]);
    
    		del=0;
    		if prog <l_ then
     			del	= l_-prog; 
    		if prog > h_ then
    			del=h_-prog;
    		$C1=prog+alfa*del;
    	end
    Как видите, всё сделано просто и тупо (я вообще очень уважаю КISS-принцип).
    Единственное, что стоит тут заметить - роль параметра gam.
    Этот параметр сохранен вследствие рефлекторного желания сохранить общность при программировании. В реальности следует для этого фильтра всегда задавать gam=0, так как наша задача - остановиться при прекращении явного движения цены, а ненулевое gam придает движению выходного сигнала фильтра инерционность.


    На график наложен индикатор, рисующий две линии: красная есть фильтр С1, а синяя - модифицированная ЕМА с теми же значениями параметров alfa и gam, что и фильтр С1.

    На рисунке видно, что поведение С1 соответствует объявленным пожеланиям: он слегка отстает от ЕМА.
    В прямоугольнике виден случай "замирания": в полном соответствии с исходным текстом программы фильтр С1 остается неподвижным тогда, когда его прогнозное (т.е. при gam=0 - прошлое) значение находится внутри свечи, между её минимумом и максимумом.
    ===============
    Разумеется, тут же возникло желание использовать эту пару линий для построения ТС "по мотивам" ТС, основанной на пересечении двух ЕМА, быстрой и медленной.

    Описание торгового сигнала (он посложнее пересечения линий) и отчеты тестера - следующем посте, этот и так затянулся.
  6. 1,048
    Комментарии
    2
    Темы
    1975
    Репутация Pro
     
    Мастер форумных наук

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

    В Омеге у меня время как в компьютере, московское.
    И конец торгового дня я установил в 1:58 - для сходства с терминальным временем МТ.

    То есть у меня в Омеге просто нет "понедельничной" свечи. так как она закрывается во вторник около 2 часов ночи. Зато есть пятничная свеча, закрывающаяся в субботу.
  7. 8,531
    Комментарии
    46
    Темы
    15164
    Репутация Pro
    Аватар для avtomat  
    Старожил

    7 Медалей
    Некоторые сведения из теории фильтрации будут совсем не лишними ;)


    Фильтрация измеряемых величин от помех.

    Фильтрацией называют операцию выделения полезного сигнала измерительной информации y(t) из его смеси с помехой e(t). Обычно методы фильтрации основаны на различии частотных спектров функций y(t) и e(t): как правило, помеха бывает более высокочастотной.
    Для выполнения дальнейших выкладок примем следующие допущения:








  8. 8,531
    Комментарии
    46
    Темы
    15164
    Репутация Pro
    Аватар для avtomat  
    Старожил

    7 Медалей







    Теперь – с пониманием сути дела – можно целенаправленно воздействовать на параметр настройки фильтра, -- управлять им. Для этой цели организуем контур управления параметром настройки фильтра -– и в результате получим адаптивный фильтр.

    Дальнейшие построения проведём на языке структурных схем.
  9. 8,531
    Комментарии
    46
    Темы
    15164
    Репутация Pro
    Аватар для avtomat  
    Старожил

    7 Медалей




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

    Если мы, варьируя параметром настройки фильтра [в заданных пределах], сумеем добиться поддержания дисперсии ошибки фильтрации на минимальном уровне, то тем самым мы определим оптимальное значение параметра настройки фильтра.
    ,,,

    Наша эадача -- так организовать контур управления параметром настройки фильтра, чтобы на каждом шаге работы фильтра минимизировать дисперсию ошибки фильтрации.
  10. 1,048
    Комментарии
    2
    Темы
    1975
    Репутация Pro
     
    Мастер форумных наук

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




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

    Если мы, варьируя параметром настройки фильтра [в заданных пределах], сумеем добиться поддержания дисперсии ошибки фильтрации на минимальном уровне, то тем самым мы определим оптимальное значение параметра настройки фильтра.
    ,,,

    Наша эадача -- так организовать контур управления параметром настройки фильтра, чтобы на каждом шаге работы фильтра минимизировать дисперсию ошибки фильтрации.
    Неверно!
    Точнее - верно при наличии некоторых оговорок, которые для большинства читателей весьма неочевидны.
    Судя по тому, что вы начали обсуждение фильтрации с частотных понятий, с
    Обычно методы фильтрации основаны на различии частотных спектров функций y(t) и e(t)
    , имею чёрное подозрение, что и для вас эти оговорки не совсем очевидны.:hmmm:

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

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

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

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