Filter without delay - page 3

 
Yurixx >>:

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

А алгоритм ?


I took a ready-made one from Matlab, it's a normal two-pass filter. I have no problem making one myself, but I also have an interpolator in front of it. What's it for? Ticks come unevenly in time, there may be one tick per minute, and there may be several per second. You can't feed such mess to the filter, you must first bring them to the same sample rate, I tried 1 Hz and 0.1 Hz. That is, I actually approximate the input ticks by polynomials and insert the "virtual" ticks between the real ones. All this is necessary because I focus on scalping and want to work with the speed of input ticks. If I work at minutes and above, approximation is not needed IMHO.

Here is a description of the filter, its value in zero phase distortions

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

I will translate:

After filtering the data in forward direction, filtfilt reverses the filtered sequence and filters again. The result has the following characteristics:

* Zero phase distortion

Well, the further details...

 
avatara >>:

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

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

;)


What do you mean - to filter them?

At http://ratedata.gaincapital.com/2010/ only the first week of January has been posted so far. I have alpri and broco ticks in my real accounts, I can filter them tomorrow. What is the use of it?

It does not predict the future)) Scalping, pipsing... I don't see any other use for it yet.

 

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

I quote:

"Each block of bytes is tick data recorded in a specific sequence, namely time, ask, bid, askVol, bidVol"

And such numbers are huge, here for the eurobucks

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 Гц. То есть я фактически аппроксимирую полиномами входные тики и вставляю "виртуальные" тики между реальными.


Why not embrace the concept of non-linear time?

Why fill the time between two ticks with rubbish? You could accept a discrete time of one tick. And it doesn't matter how much time there is between ticks.

 
VDev писал(а) >>

Are you referring to the phase-frequency response?

Look at the personal.

 
Zhunko >>:

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

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



It's easy to check - I'll post it later today
 
faa1947 >>:

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


Looked about spectra - I played with them and was disappointed
 
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 переворачивает отфильтрованную последовательность и фильтрует еще раз. Результат обладает след характеристиками:

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

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


The filter that is calculated in Matlab is "non-causal", i.e. it cannot be used for real-time calculations. What is considered by this filter is not the current filter value at zero (the current) bar. Consequently, there is no zero latency to speak of.

And "Zero-phase distortion"? No problem. When there are values from the future half/window ahead.

 
begemot61 писал(а) >>

The filter that is calculated in Matlab is "non-causal", i.e. it cannot be used for real-time calculations. What is considered by this filter is not the current filter value at zero (the current) bar. Correspondingly, we cannot speak about any zero-delay.

And "Zero-phase distortion"? No problem. When there are values from the future half/window ahead.

All the filters under discussion are Fourier overshoots and the problem is that the most remarkable filter has a lifetime and that's the problem. We improve the filters, involve Matlab for an already dead market. When, at which point the filter has finished working, because the market no longer has the frequencies that it is supposed to filter. Therefore, half a window or just a quarter =- does not matter. Why nobody discusses faylets that have lifetime?

 
begemot61 >>:

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

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


I don't understand about rltime - what prevents you from counting in rltime? Another thing is how we treat the resulting data. Of course, there will be no miracle.

I am not counting any values from future, for example in this figure the data is filtered in range 1:1.23e5, there also the graphs are cut off. Another thing is that when new data comes in, the filter response changes shape.

Actually, I don't understand what everyone here is accusing me of? Did I say that I had invented a magic grail? I gave one of the filter variants for consideration and asked how it could be used.