FIR filters - page 5

 
begemot61 >> :

A little about the properties of these filters.

A typical MA has a suppression of about 20 dB. In order to improve the suppression, the weighting coefficients are multiplied by some function called a window function.

The Kaiser window allows you to obtain a set suppression value that varies over a wide range. In the calculation, the non-uniformity in the passband and

the suppression in the delay band, but the filter is based on an approximation that is at least as good as the required one. You select the worst-case of these conditions.

Another commonly used calculation method is the application of the Parkes-McKelan algorithm (sometimes called the Remez algorithm).

It produces a given non-uniformity in the bandwidth and a given suppression in the delay bandwidth. The calculation requires a fairly large number of iterations and does not always ensure convergence.

I have used the Kaiser window. It is easier to calculate, and the result is comparable in quality to the Remez algorithm.


A little bit about low pass filter parameters.


PassBandBars- bandwidth in Bars.


StopBandBars-The width of the transition zone, i.e. between the bandwidth and the frequency where the required suppression is provided. Also in number of Bars.


StopBandAttenuation- suppression in the attenuation band.


It is not quite correct to measure frequency in Bars, as it is time and not frequency. In reality, frequency is measured in its corresponding time intervals.

F=1/Bars. I.e. at 1 bar the frequency is 1 and this is the sampling frequency. At 2 bars the frequency is 0.5Fd etc.

StopBandBars can be any real number greater than 2.


The filter length (equivalent to the MA period) is not explicitly specified and is calculated based on the specified bands and attenuation.

The greater the StopBandBars or the greater the StopBandAttenuation, the longer the filter is. Those it lags more and smoothes better.

Thanks though, I see I'll have to study it all...

 
ssd >> :

Followed this link. They offer to buy 8(eight) indicators implementing all sorts of digital filtering.

Listen, Sabluk, I see that you know a lot about all this filtering, so,

if you don't mind, please send me FATL, SATL indicators, if possible, with your

comments on the parameters in normal language.



I'm going to google ))))

what they suggest to buy is like buying mashqs and mcdis.

don't fill your head with fats and sats, generate your own

i don't want to cheat, filters are not a magic wand i'm not a good wizard, i just help make development more meaningful

deep thoughtfulness can help or detract from progress.

if you don't have time to figure out the basic elements, there will be a casino

I don't see many ways... either harmonic analysis, or neural networks, or fundamental analysis with manual trading

choose which of the three areas you want to specialise in

 
sab1uk >> :

I'm whiskered ))))

............................

I don't want to cheat, filters are not a magic wand I'm not a good wizard, I just help to make developments more meaningful

Gentlemen, what do you actually want from filters?

And how do you filter this bazaar?

 
begemot61 >> :

Gentlemen, what do you actually want from filters?

And how do you filter this bazaar?

What do I actually want from filters?

I'll tell you in my own words, because I'm not so good at theory.

To build indicator we need to calculate the difference Symbol(TimeFrame,i) - Symbol(TimeFrame,i+1), where i is bar number,

for 28 symbols

string S [28]=
{
"EURUSD", // EURUSD 0 0
"GBPUSD", // GBPUSD 1 1
"AUDUSD", // AUDUSD 2 2
"NZDUSD", // NZDUSD 3 3
"USDCAD", // USDCAD 4 4
"USDCHF", // USDCHF 5 5
"USDJPY", // USDJPY 6 6

"EURGBP", // EURUSD/GBPUSD 7 0/1
"EURAUD", // EURUSD/AUDUSD 8 0/2
"EURNZD", // EURUSD/NZDUSD 9 0/3
"EURCAD", // EURUSD*USDCAD 10 0*4
"EURCHF", // EURUSD*USDCHF 11 0*5
"EURJPY", // EURUSD*USDJPY 12 0*6

"GBPAUD", // GBPUSD/AUDUSD 13 1/2
"GBPNZD", // GBPUSD/NZDUSD 14 1/3
"GBPCAD", // GBPUSD*USDCAD 15 1*4
"GBPCHF", // GBPUSD*USDCHF 16 1*5
"GBPJPY", // GBPUSD*USDJPY 17 1*6

"AUDNZD", // AUDUSD/NZDUSD 18 2/3
"AUDCAD", // AUDUSD*USDCAD 19 2*4
"AUDCHF", // AUDUSD*USDCHF 20 2*5
"AUDJPY", // AUDUSD*USDJPY 21 2*6

"NZDCAD", // NZDUSD*USDCAD 22 3*4
"NZDCHF", // NZDUSD*USDCHF 23 3*5
"NZDJPY", // NZDUSD*USDJPY 24 3*6


"CADCHF", // USDCHF/USDCAD 25 5/4
"CADJPY", // USDJPY/USDCAD 26 6/4

"CHFJPY" // USDJPY/USDCHF 27 6/5
};

The question is: what value should I take for the Symbol(TimeFrame,i) value on the bar number i ?

The first thing that comes to mind is of course MA(Symbol(TimeFrame,i), Period) ...

where Period is the averaging period.

However, I want to draw the price line not with the MA, but with some more "fine" and "sensitive" indicator...

This is how a simple task is set...

I understand that for every symbol you have to generate a filter-indicator, using the history of the symbol (a total of 28)?

In addition, for each timeframe its own filter indicator ?

And in addition to that, to periodically regenerate ?


Did I get it right ?

 
begemot61 >> :

Gentlemen, what do you actually want from filters?

And how do you filter this bazaar?

Setting the right goal is half the battle

It's funny and sad to see how crooks sell filters taking advantage of laziness of those who have no time to understand

filters are definitely better than mashqs but not so much as to sell them

 
ssd >> :

What do I actually want from the filters ?

.....................................................

.....................................................

The question is which value to take as the Symbol(TimeFrame,i) on bar number i ?

The first thing that comes to mind is of course MA(Symbol(TimeFrame,i), Period) ...

where Period is the averaging period.

But I want to draw the price line not with МА, but with some more "thin" and "sensitive" indicator...

That's how a simple task is set...



What does "more delicate" and "sensitive" mean?

How do you imagine it?

 
begemot61 >> :

What do you mean by "more subtle" and "sensitive"?

How do you imagine it?

Buffer[i] = Close[i];

 
sab1uk >>: the filters are definitely better than the masks but not so much to trade with them.

>> well said.

There is, by the way, a good filter, JMA, but even it cannot be traded. Although there are several reviews on the site of the author, which kind of implies how great it is to trade with him. But I don't want to call him a cheater.

What do you think, what hypotheses do you have about his algorithm?

 
sab1uk >> :

The well-known fatls and satls are low-pass filters with compromised parameters, i.e. the amplitude-frequency response (AFC) is not steep

If you want a steeper amplitude-frequency response, you will need to use more frequent filter adaptations.

I don't get it. My question is as follows: here we have taken a spectrum, determined its extremums. Is it possible to build filters based only on this information, the use of which would give the maximum profit at a given section? (with a primitive "flip" strategy)

 
Reshetov >> :

Buffer[i] = Close[i];

Essentially, I want the value of this difference:


Symbol(TimeFrame,i) - Symbol(TimeFrame,i+1), where i is the bar number,


does not depend on any parameters describing the method of getting the symbol value,

and the dependence of this difference on the timeframe would be linear, i.e. going deeper in the direction of decreasing timeframe,

we should get the dynamics of difference formation....


Of course, this is an ideal that we want to get closer to...

Reason: