Filtrare senza indugio - pagina 3

 
Yurixx >>:

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

А алгоритм ?


Ne ho preso uno già pronto da Matlab, è un normale filtro a due passi. Non ho problemi a crearne uno da solo, ma ho anche un interpolatore davanti. A cosa serve? Le zecche arrivano in modo irregolare nel tempo, possono essere una zecca al minuto e alcune al secondo. Non puoi dare in pasto un tale casino al filtro, devi prima portarli alla stessa frequenza di campionamento, ho provato con 1 Hz e 0,1 Hz. Cioè, in realtà approssimo i tick di ingresso con polinomi e inserisco i tick "virtuali" tra quelli reali. Tutto questo è necessario perché mi concentro sullo scalping e voglio lavorare con la velocità dei tick di ingresso. Se lavoro a minuti e oltre, l'approssimazione non è necessaria IMHO.

Ecco una descrizione del filtro, il suo valore in distorsioni di fase zero

Dopo aver filtrato i dati in avanti, filtfilt inverte la sequenza filtrata e la fa passare di nuovo attraverso il filtro. Il risultato ha le seguenti caratteristiche:

  • Distorsione a fase zero

  • Una funzione di trasferimento del filtro, che è uguale alla grandezza al quadrato della funzione di trasferimento del filtro originale

  • Un ordine del filtro che è doppio dell'ordine del filtro specificato da b e a

Io tradurrò:

Dopo aver filtrato i dati in avanti, filtfilt capovolge la sequenza filtrata e filtra nuovamente. Il risultato ha le seguenti caratteristiche:

* Distorsione di fase zero

Bene, gli ulteriori dettagli...

 
avatara >>:

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

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

;)


Cosa intendi - per filtrarli?

Su http://ratedata.gaincapital.com/2010/ finora è stata pubblicata solo la prima settimana di gennaio. Ho zecche alpri e broco nei miei conti reali, posso filtrarle domani. A cosa serve?

Non predice il futuro)) Scalping, pipsing... Non vedo nessun altro uso per il momento.

 

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

Cito:

"Ogni blocco di byte sono dati di tick registrati in una sequenza specifica, cioè ora, ask, bid, askVol, bidVol"

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


Perché non abbracciare il concetto di tempo non lineare?

Perché riempire il tempo tra due zecche con della spazzatura? Si potrebbe accettare un tempo discreto di un tick. E non importa quanto tempo ci sia tra un tick e l'altro.

 
VDev писал(а) >>

Ti riferisci alla risposta fase-frequenza?

Guarda il personale.

 
Zhunko >>:

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

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



È facile da controllare - lo posterò più tardi in giornata
 
faa1947 >>:

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


Ho dato un'occhiata a spectra - ho giocato con loro e sono rimasto deluso
 
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 переворачивает отфильтрованную последовательность и фильтрует еще раз. Результат обладает след характеристиками:

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

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


Il filtro calcolato in Matlab è "non causale", cioè non può essere usato per calcoli in tempo reale. Ciò che viene considerato da questo filtro non è il valore attuale del filtro alla barra zero (quella attuale). Di conseguenza, non c'è nessuna latenza zero di cui parlare.

E "distorsione a fase zero"? Nessun problema. Quando ci sono valori della metà/finestra futura.

 
begemot61 писал(а) >>

Il filtro calcolato in Matlab è "non causale", cioè non può essere usato per calcoli in tempo reale. Ciò che viene considerato da questo filtro non è il valore attuale del filtro alla barra zero (quella attuale). Di conseguenza, non possiamo parlare di alcun ritardo zero.

E "distorsione a fase zero"? Nessun problema. Quando ci sono valori della metà/finestra futura.

Tutti i filtri in discussione sono overshoots di Fourier e il problema è che il filtro più notevole ha una durata e questo è il problema. Miglioriamo i filtri, coinvolgiamo Matlab per un mercato già morto. Quando, a quel punto il filtro ha finito di funzionare, perché il mercato non ha più le frequenze che dovrebbe filtrare. Quindi, mezza finestra o solo un quarto =- non importa. Perché nessuno discute dei faylet che hanno una vita?

 
begemot61 >>:

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

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


Non capisco riguardo a rltime - cosa vi impedisce di contare in rltime? Un'altra cosa è come trattiamo i dati risultanti. Naturalmente, non ci sarà nessun miracolo.

Non sto contando nessun valore dal futuro, per esempio in questa figura i dati sono filtrati nell'intervallo 1:1.23e5, ci sono anche grafici tagliati. Un'altra cosa è che quando arrivano nuovi dati, la risposta del filtro cambia forma.

In realtà, non capisco di cosa mi accusano tutti qui? Ho detto che ho inventato un Graal magico? Ho dato una delle varianti del filtro da prendere in considerazione e ho chiesto come poteva essere usato.