Filtrer sans délai - page 3

 
Yurixx >>:

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

А алгоритм ?


J'en ai pris un tout prêt de Matlab, c'est un filtre normal à deux passes. Je n'ai aucun problème à en fabriquer un moi-même, mais j'ai aussi un interpolateur en face de lui. C'est pour quoi faire ? Les tiques arrivent de façon irrégulière dans le temps, il peut y avoir une tique par minute, et quelques unes par seconde. Vous ne pouvez pas alimenter un tel désordre au filtre, vous devez d'abord les amener au même taux d'échantillonnage, j'ai essayé 1 Hz et 0.1 Hz. En d'autres termes, j'approxime les ticks d'entrée par des polynômes et j'insère les ticks "virtuels" entre les ticks réels. Tout cela est nécessaire car je me concentre sur le scalping et je veux travailler avec la vitesse des ticks d'entrée. Si je travaille à des minutes et plus, l'approximation n'est pas nécessaire IMHO.

Voici une description du filtre, sa valeur en matière de distorsions de phase zéro

Après avoir filtré les données dans le sens direct, filtfilt inverse la séquence filtrée et la fait repasser par le filtre. Le résultat présente les caractéristiques suivantes :

  • Distorsion de phase zéro

  • Une fonction de transfert de filtre, qui est égale à l'amplitude au carré de la fonction de transfert du filtre original.

  • Un ordre de filtre qui est le double de l'ordre du filtre spécifié par b et a

Je vais traduire :

Après avoir filtré les données dans le sens direct, filtfilt retourne la séquence filtrée et la filtre à nouveau. Le résultat présente les caractéristiques suivantes :

* Distorsion de phase nulle

Eh bien, les détails supplémentaires...

 
avatara >>:

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

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

;)


Que voulez-vous dire - les filtrer ?

Sur http://ratedata.gaincapital.com/2010/, seule la première semaine de janvier a été affichée jusqu'à présent. J'ai des ticks alpri et broco dans mes comptes réels, je peux les filtrer demain. A quoi cela sert-il ?

Il ne prédit pas l'avenir)) Scalping, pipsing... Je n'en vois pas d'autre utilité pour l'instant.

 

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

Je cite :

"Chaque bloc d'octets est constitué de données de ticks enregistrées dans une séquence spécifique, à savoir heure, ask, bid, askVol, bidVol"

Et ces chiffres sont énormes, voici pour les 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 Гц. То есть я фактически аппроксимирую полиномами входные тики и вставляю "виртуальные" тики между реальными.


Pourquoi ne pas adopter le concept de temps non linéaire ?

Pourquoi remplir le temps entre deux ticks avec des déchets ? Vous pourriez accepter un temps discret d'un tick. Et peu importe le temps qu'il y a entre les tics.

 
VDev писал(а) >>

Faites-vous référence à la réponse phase-fréquence ?

Regardez le personnel.

 
Zhunko >>:

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

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



C'est facile à vérifier - je le posterai plus tard dans la journée.
 
faa1947 >>:

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


Je me suis renseigné sur les spectres - j'ai joué avec eux et j'ai été déçu.
 
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 переворачивает отфильтрованную последовательность и фильтрует еще раз. Результат обладает след характеристиками:

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

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


Le filtre qui est calculé dans Matlab est "non causal", c'est-à-dire qu'il ne peut pas être utilisé pour des calculs en temps réel. Ce qui est considéré par ce filtre n'est pas la valeur actuelle du filtre à la barre zéro (la barre actuelle). Par conséquent, il n'y a pas de latence zéro à proprement parler.

Et "distorsion de phase zéro" ? Pas de problème. Lorsqu'il y a des valeurs du futur, la moitié ou la fenêtre à l'avance.

 
begemot61 писал(а) >>

Le filtre qui est calculé dans Matlab est "non causal", c'est-à-dire qu'il ne peut pas être utilisé pour des calculs en temps réel. Ce qui est considéré par ce filtre n'est pas la valeur actuelle du filtre à la barre zéro (la barre actuelle). Par conséquent, nous ne pouvons pas parler d'un retard zéro.

Et "distorsion de phase zéro" ? Pas de problème. Lorsqu'il y a des valeurs du futur, la moitié ou la fenêtre à l'avance.

Tous les filtres dont il est question sont des dépassements de Fourier et le problème est que le filtre le plus remarquable a une durée de vie et c'est là le problème. Nous améliorons les filtres, impliquant Matlab pour un marché déjà mort. Quand, à quel moment le filtre a fini de fonctionner, car le marché n'a plus les fréquences qu'il est censé filtrer. Par conséquent, la moitié d'une fenêtre ou seulement un quart =- n'a pas d'importance. Pourquoi personne ne parle des faylets qui ont une durée de vie ?

 
begemot61 >>:

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

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


Je ne comprends pas pour rltime - qu'est-ce qui vous empêche de compter en rltime ? Une autre chose est la façon dont nous traitons les données résultantes. Bien sûr, il n'y aura pas de miracle.

Je ne compte aucune valeur du futur, par exemple dans cette figure les données sont filtrées dans la plage 1:1.23e5, là aussi les graphiques sont coupés. Par ailleurs, lorsque de nouvelles données arrivent, la réponse du filtre change de forme.

En fait, je ne comprends pas de quoi tout le monde m'accuse ici ? Ai-je dit que j'avais inventé un Graal magique ? J'ai donné l'une des variantes de filtre à examiner et j'ai demandé comment elle pouvait être utilisée.

Raison: