Filtern ohne Verzögerung - Seite 3

 
Yurixx >>:

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

А алгоритм ?


Ich habe einen vorgefertigten Filter aus Matlab genommen, einen normalen Zweipassfilter. Ich habe kein Problem damit, selbst einen zu machen, aber ich habe auch einen Interpolator davor. Wozu ist das gut? Die Ticks kommen in ungleichmäßigen Abständen, mal ein Tick pro Minute, mal ein paar pro Sekunde. Man kann ein solches Durcheinander nicht in den Filter einspeisen, man muss sie zuerst auf die gleiche Abtastrate bringen, ich habe 1 Hz und 0,1 Hz ausprobiert. Das heißt, ich approximiere die Eingangszecken durch Polynome und füge die "virtuellen" Zecken zwischen den realen ein. All dies ist notwendig, weil ich mich auf Scalping konzentriere und mit der Geschwindigkeit der Input-Ticks arbeiten möchte. Wenn ich mit Minuten und mehr arbeite, ist eine Annäherung IMHO nicht erforderlich.

Hier ist eine Beschreibung des Filters, sein Wert in Null-Phasen-Verzerrungen

Nachdem die Daten in Vorwärtsrichtung gefiltert wurden, kehrt filtfilt die gefilterte Sequenz um und lässt sie erneut durch den Filter laufen. Das Ergebnis weist die folgenden Merkmale auf:

  • Null-Phasen-Verzerrung

  • Eine Filterübertragungsfunktion, die dem quadrierten Betrag der ursprünglichen Filterübertragungsfunktion entspricht

  • Eine Filterordnung, die der doppelten Ordnung des durch b und a angegebenen Filters entspricht

Ich werde übersetzen:

Nach der Filterung der Daten in Vorwärtsrichtung spiegelt filtfilt die gefilterte Sequenz und filtert erneut. Das Ergebnis weist die folgenden Merkmale auf:

* Null-Phasen-Verzerrung

Nun, die weiteren Details...

 
avatara >>:

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

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

;)


Was meinen Sie damit - sie zu filtern?

Unter http://ratedata.gaincapital.com/2010/ ist bisher nur die erste Januarwoche veröffentlicht worden. Ich habe Alpri- und Broco-Zecken in meinen echten Konten, ich kann sie morgen filtern. Wozu soll das gut sein?

Sie sagt nicht die Zukunft voraus)) Scalping, Pipsing... Ich sehe noch keine andere Verwendung für sie.

 

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

Ich zitiere:

"Jeder Byte-Block besteht aus Tick-Daten, die in einer bestimmten Reihenfolge aufgezeichnet werden, nämlich time, ask, bid, askVol, bidVol".

Und solche Zahlen sind riesig, hier für die 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 Гц. То есть я фактически аппроксимирую полиномами входные тики и вставляю "виртуальные" тики между реальными.


Warum nicht das Konzept der nichtlinearen Zeit übernehmen?

Warum die Zeit zwischen zwei Zecken mit Müll füllen? Sie könnten eine diskrete Zeit von einem Tick akzeptieren. Dabei spielt es keine Rolle, wie viel Zeit zwischen den Ticks vergeht.

 
VDev писал(а) >>

Beziehen Sie sich auf den Phasen-/Frequenzgang?

Sehen Sie sich das Persönliche an.

 
Zhunko >>:

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

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



Es ist leicht zu überprüfen - ich werde es heute noch veröffentlichen.
 
faa1947 >>:

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


Ich habe mich über Spectra informiert - ich habe damit gespielt und war enttäuscht.
 
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 переворачивает отфильтрованную последовательность и фильтрует еще раз. Результат обладает след характеристиками:

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

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


Der in Matlab berechnete Filter ist "nicht kausal", d.h. er kann nicht für Echtzeitberechnungen verwendet werden. Was von diesem Filter berücksichtigt wird, ist nicht der aktuelle Filterwert bei Null (dem aktuellen) Takt. Folglich kann man nicht von einer Null-Latenzzeit sprechen.

Und "Null-Phasen-Verzerrung"? Kein Problem. Wenn es Werte aus der zukünftigen Hälfte/dem zukünftigen Fenster gibt.

 
begemot61 писал(а) >>

Der in Matlab berechnete Filter ist "nicht kausal", d.h. er kann nicht für Echtzeitberechnungen verwendet werden. Was von diesem Filter berücksichtigt wird, ist nicht der aktuelle Filterwert bei Null (dem aktuellen) Takt. Dementsprechend kann man auch nicht von einer Nullverzögerung sprechen.

Und "Null-Phasen-Verzerrung"? Kein Problem. Wenn es Werte aus der zukünftigen Hälfte/dem zukünftigen Fenster gibt.

Alle diskutierten Filter sind Fourier-Überschwinger, und das Problem ist, dass der bemerkenswerteste Filter eine Lebensdauer hat, und das ist das Problem. Wir verbessern die Filter und setzen Matlab für einen bereits toten Markt ein. Wann der Filter seine Arbeit beendet hat, weil der Markt die Frequenzen, die er filtern soll, nicht mehr aufweist. Daher spielt es keine Rolle, ob es sich um ein halbes Fenster oder nur um ein Viertel handelt. Warum diskutiert niemand über Faylets, die ein Leben lang halten?

 
begemot61 >>:

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

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


Ich verstehe das mit der Laufzeit nicht - was hindert Sie daran, in der Laufzeit zu zählen? Eine weitere Frage ist, wie wir die resultierenden Daten behandeln. Natürlich wird es kein Wunder geben.

Ich zähle keine Werte aus der Zukunft, z.B. in dieser Abbildung sind die Daten im Bereich 1:1.23e5 gefiltert, dort sind auch die Graphen abgeschnitten. Außerdem ändert sich die Form der Filterantwort, wenn neue Daten eintreffen.

Eigentlich verstehe ich nicht, was man mir hier vorwirft? Habe ich gesagt, dass ich einen magischen Gral erfunden habe? Ich gab eine der Filtervarianten zu bedenken und fragte, wie sie eingesetzt werden könnte.