Фильтр без задержки - страница 3

 
Yurixx >>:

Это собственного производства или чей-то ?

А алгоритм ?


Я из матлаба взял готовый, это обычный двухпроходный фильтр. Самому такой сделать без проблем, но перед ним еще у меня стоит интерполятор. Для чего он нужен? Тики приходят неравномерно по времени, может быть один тик в минуту, а может быть несколько в секунду. На фильтр такую кашу подавать нельзя, их надо сначала привести к единой частоте дискретизации, я пробовал 1 Гц и 0,1 Гц. То есть я фактически аппроксимирую полиномами входные тики и вставляю "виртуальные" тики между реальными. Все это нужно потому, что я ориентируюсь на скальпинг и  хочу работать со скоростью входного потока тиков. Если работать на минутках и выше, аппроксимация уже не нужна ИМХО.

Вот описание фильтра, его ценность в нулевых фазовых искажениях 

After filtering the data in the forward direction, filtfilt reverses the filtered sequence and runs it back through the filter. The result has the following characteristics:

  • Zero-phase distortion

  • A filter transfer function, which equals the squared magnitude of the original filter transfer function

  • A filter order that is double the order of the filter specified by b and a

Я переведу:

После фильтрации данных в прямом направлении filtfilt переворачивает отфильтрованную последовательность и фильтрует еще раз. Результат обладает след характеристиками:

* Нулевые фазовые искажения

ну дальше подробности ..

 
avatara >>:

 а можно последние данные по евро-доллару показать?

минутки говорите, по тикам?

;)


В смысле - фильтром по ним пройтись?

На http://ratedata.gaincapital.com/2010/ только первая неделя января пока выложена. У меня тики по альпри и броко на реал-счетах пишуться, завтра могу их фильтрануть. Только толку с этого?  

Будущее он не предсказывает )) Скальпинг, пипсовка... других применеий я не вижу пока.

 

Вот тут еще интересные котировки , ща попробуем их формат BIN прочитать. Интересно, откуда берутся  askVol & bidVol для тиков?

Цитирую:

"Каждый блок байтов - это записанные в определенной последовательности данные тика, а именно: time, ask, bid, askVol, bidVol"

Причем такие цифры огромные, вот для евробакса

15.01.2010 10:00:01.907,1.4415,1.44135,6400000,9200000 15.01.2010 10:00:02.357,1.44145,1.44135,1600000,9200000 15.01.2010 10:00:02.467,1.4414,1.4413,4000000,1800000 15.01.2010 10:00:02.707,1.4414,1.4413,4000000,2000000 15.01.2010 10:00:03.047,1.44145,1.4413,4000000,1600000

 
VDev >>:


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


Почему бы не принять концепцию нелинейного времени?

Зачем заполнять мусором время между двумя тиками? Можно принять дискрет в один тик. И не важно сколько там времени прошло между тиками.

 
VDev писал(а) >>

Вы имеете в виду фазо-частотную характеристику?

Посмотрите личку.

 
Zhunko >>:

Почему бы не принять концепцию нелинейного времени?

Зачем заполнять мусором время между двумя тиками? Можно принять дискрет в один тик. И не важно сколько там времени прошло между тиками.



Это легко проверить - сегодня попозже выложу
 
faa1947 >>:

Посмотрите личку.


Посмотрел про спектры - я с ними игрался и разочаровался
 
VDev >>:


Я из матлаба взял готовый, это обычный двухпроходный фильтр. Самому такой сделать без проблем, но перед ним еще у меня стоит интерполятор. Для чего он нужен? Тики приходят неравномерно по времени, может быть один тик в минуту, а может быть несколько в секунду. На фильтр такую кашу подавать нельзя, их надо сначала привести к единой частоте дискретизации, я пробовал 1 Гц и 0,1 Гц. То есть я фактически аппроксимирую полиномами входные тики и вставляю "виртуальные" тики между реальными. Все это нужно потому, что я ориентируюсь на скальпинг и хочу работать со скоростью входного потока тиков. Если работать на минутках и выше, аппроксимация уже не нужна ИМХО.

Вот описание фильтра, его ценность в нулевых фазовых искажениях

After filtering the data in the forward direction, filtfilt reverses the filtered sequence and runs it back through the filter. The result has the following characteristics:

  • Zero-phase distortion

  • A filter transfer function, which equals the squared magnitude of the original filter transfer function

  • A filter order that is double the order of the filter specified by b and a

Я переведу:

После фильтрации данных в прямом направлении filtfilt переворачивает отфильтрованную последовательность и фильтрует еще раз. Результат обладает след характеристиками:

* Нулевые фазовые искажения

ну дальше подробности ..


Фильтр, который считается в Матлабе-"non-causal", т.е. он не может использоваться для расчетов в реальном времени. То что считается этим фильтром не является текущим значением фильтра на нулевом (текущем) баре. Соответственно, ни о какой нулевой задержке говорить не приходится.

Ну а "Zero-phase distortion"? Нет проблем. Когда есть значения из будущего на пол/окна вперед.

 
begemot61 писал(а) >>

Фильтр, который считается в Матлабе-"non-causal", т.е. он не может использоваться для расчетов в реальном времени. То что считается этим фильтром не является текущим значением фильтра на нулевом (текущем) баре. Соответственно, ни о какой нулевой задержке говорить не приходится.

Ну а "Zero-phase distortion"? Нет проблем. Когда есть значения из будущего на пол/окна вперед.

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

 
begemot61 >>:

Фильтр, который считается в Матлабе-"non-causal", т.е. он не может использоваться для расчетов в реальном времени. То что считается этим фильтром не является текущим значением фильтра на нулевом (текущем) баре. Соответственно, ни о какой нулевой задержке говорить не приходится.

Ну а "Zero-phase distortion"? Нет проблем. Когда есть значения из будущего на пол/окна вперед.


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

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

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