Der perfekte Filter - Seite 6

 
Nützlicher Indikator.
Autor, bitte erstellen Sie eine Version von VAMA für MT4.
Ich danke Ihnen.
 
G001:
Nützlicher Indikator.
Autor, bitte erstellen Sie eine Version von VAMA für MT4.
Ich danke Ihnen.

Vielen Dank für das Feedback. Leider kenne ich mql4 nicht, ich habe mit mql5 angefangen, aber ich bin sicher, wenn Sie sich den Code des Indikators ansehen, können Sie ihn in 4 implementieren, es ist sehr einfach.

P.S. In Version 1.01 habe ich ein Attribut hinzugefügt, um das tickweise Neuzeichnen des Indikators zu deaktivieren, so dass er nur gezeichnet wird, wenn der Balken beendet ist.

input bool bar_exist=1;

Dateien:
vaMA.mq5  4 kb
vaMACl.mq5  5 kb
vaZZ.mq5  4 kb
 

Nun, ich denke, ich bin damit zufrieden, zumindest fühle ich keine Lücken. Bis jetzt bin ich damit zufrieden, jetzt werde ich die Volatilität und den Trend/Flat-Filter verschärfen, um ihn an den Übergängen von Trend zu Flat und umgekehrt geschickt zu mischen und eine schöne Anpassung zu erreichen, nicht so hässlich wie die klassische AMA.

1.12 beigefügt, wenn Sie es wissen wollen. ZZ und Farbe haben damit nichts zu tun, denn dies ist nur die Anfangsphase, wenn ich darüber nachdenke, wie man eine Qualitätsanpassung macht, werde ich schon fertig auslegen.

Dateien:
vaMA.mq5  4 kb
 
J.B:

Das war's, ich glaube, wir haben es geschafft...

Die erste Option ist besser (diejenige in der Codobase). In diesem Fall haben Sie bereits zu viel gemischt... IMHO

 

Ich habe es gerade gelesen, der Thread ist ein Genuss! Vielen Dank an alle Beteiligten, insbesondere an den Themenstarter. Ich habe selbst noch nie gefiltert, aber ich denke, es wäre gut, ein wenig laut über das Thema nachzudenken.

Die Frage nach einem quantitativen Merkmal der Filterqualität wurde hier bereits mehrfach aufgeworfen. Was ist wirklich besser, JJMA oder EMA, und um wie viel? Es gibt eine gewisse Filterverzögerung, wie kann man sie messen und welchen Nutzen hat sie? Alles in allem handelt es sich also um normale logische Fragen.


Natürlich wurde auch eine einfache Methode über die Summe von ZigZags, die auf Filterknicken aufbaut, geäußert. Es ist fast alles gut, aber nicht ganz.

Liebe Autoren, da Sie über Filtervergleichsmethoden verfügen, könnten Sie grafische, tabellarische oder andere technische Daten zu diesen Vergleichen angeben. Wenn Sie die ZigZags zusammenfassen, ziehen Sie den Spread-Wert von jedem Knie ab. Zeichnen Sie das quantitative Merkmal in Abhängigkeit von der Filterperiode auf. Überlagern Sie die Diagramme der verschiedenen Filter und bewerten Sie die Vor- und Nachteile der beiden.

Und noch einmal: Warum verallgemeinern Sie alles so stark: ein Filter für alle Zeiten? Stellen Sie sich vor, Ihr Filter verhält sich abends brav und zu anderen Zeiten schrecklich falsch. Schließlich ist ein solcher Filter großartig! Aufgrund des Ansatzes der durchschnittlichen Temperatur im Krankenhaus würden Sie ihn jedoch ablehnen.

OK, viele Gedanken, nicht genug Buchstaben. Ich schlage auch einen allgemeineren Ansatz vor - One Way of Research:

Берется понравившийся кусок истории цВР. На нем выбираются понравившиеся интервалы, для которых суммарно будет проделываться нижеследующее. Например, берем крайний месяц, и рассматриваем далее только ночные интервалы.

Задача разложить данные по косточкам и написать ТС именно под этот кусок истории (точнее под выбранные интервалы в нем), чтобы на нем ТС показывала как можно больший профит.

Т.е. задача сводится к тому, чтобы обнаружить уже на известном куске истории закономерности для максимального профита.

Очевидно, что вычислить максимально-возможный профит на куске истории очень просто. Но надо создать такую ТС, у которой показатель Profit / Func(AmountIN) был бы максимален, где AmountIN - количество явных и неявных входных параметров ТС, а Func - некая функция (для простоты начала исследования - простейшая линейная: Func(X) = X).

Например, нескольким людям нравится какой-то замечательный флэтовый кусок, который эти люди считают чуть ли не классическим рыночным флэтовым (типовым) состоянием. Люди выкладывают этот кусок публично и устраивают свого рода соревнование по созданию оптимальной ТС для этого куска. Далее сравниваются характеристики полученных ТС, идеи в них заложенные. И уже исходя из этого анализа происходит некоторое понимание формализации флэтовости и более обобщенных понятий.
P.S. Написано очень примитивно, но основа подобных манипуляций позволяет уловить суть подходов и к исследованиям посложнее.

Und auch ein starkes Plädoyer, die Unterschiede in der TZVR zu beachten. So kann Ihr Filter beispielsweise bei EURUSD völligen Unsinn anzeigen und bei GBPJPY hervorragend funktionieren. Wenn solche Unterschiede beobachtet werden, ist es logisch, sich mit EURUSDvsGBPJPY zu beschäftigen. Auf jeden Fall gibt es viele Stellen zum Graben.

 

hrenfx:

Natürlich wurde auch eine einfache Methode durch die Summe der ZigZag-Knie, die auf Filterpausen aufbaut, geäußert. Alles ist fast gut, aber nicht ganz.

Sehr geehrte Autoren, da Sie über Methoden zum Filtervergleich verfügen, könnten Sie grafische, tabellarische oder andere technische Daten zu diesen Vergleichen angeben. Wenn Sie die ZigZags zusammenfassen, lassen Sie uns den Spread-Wert von jedem Knie abziehen. Zeichnen Sie das quantitative Merkmal in Abhängigkeit von der Filterperiode auf. Überlagern Sie die erhaltenen Diagramme der verschiedenen Filter und bewerten Sie die Vor- und Nachteile beider.

Und noch einmal: Warum verallgemeinern Sie alles so stark: ein Filter für alle Zeiten? Stellen Sie sich vor, Ihr Filter verhält sich abends brav und zu anderen Zeiten schrecklich falsch. Schließlich ist ein solcher Filter großartig! Der Ansatz der durchschnittlichen Krankenhaustemperatur wird Sie jedoch dazu veranlassen, ihn abzulehnen.

Und auch eine starke Bitte, berücksichtigen Sie die Unterschiede in der TzVR. So kann Ihr Filter zum Beispiel für EURUSD völlig unbrauchbar sein, für GBPJPY aber hervorragend funktionieren. Wenn solche Unterschiede beobachtet werden, ist es logisch, sich mit EURUSDvsGBPJPY zu beschäftigen. Alles in allem gibt es reichlich Platz zum Graben.

Ich danke Ihnen! Es ist das Kriterium der Effizienz verschiedener Filter für verschiedene Märkte, und die Clusterbildung anhand dieses Kriteriums ermöglicht es, den erforderlichen Umrechnungspunkt zwischen verschiedenen Auftragssystemen zu berechnen, die auf unterschiedliche Marktbedingungen abgestimmt sind. Das ist der Plan.

Ich habe bereits über Spread-Berechnung in der Totalisator gedacht, es ist eine zusätzliche Erfindung, unter Berücksichtigung Brokerage-Unternehmen und ihre Kurse, ich versuche, Probleme konsequent zu lösen, so dass jedes Element des Systems war einigermaßen autonom, in der Lage sein, zu verstehen, "Netto-Beitrag" von jedem Element, und dann die kumulative Wirkung zu analysieren.

Allerdings bin ich noch kein guter Programmierer und meine Programmiergeschwindigkeit ist schrecklich, ich kämpfe ständig mit Array-Überläufen und mit der Nichtangabe eines neuen Berechnungspuffers für den Indikator und so weiter. Deshalb verbringe ich 99,9 % meiner Zeit mit technischen Pannen und denke nicht über die TK-Architektur nach, was traurig, aber unvermeidlich ist.

Bitte sagen Sie mir, wenn es Ihnen nichts ausmacht, welche Methoden oder Heuristiken verwendet werden, um Array-Überläufe zu vermeiden? Da ständig zu überlegen, welche Schleife aus welchem und auf welchem Element zu tun, ich denke, es ist nicht koscher. Ist es z.B. möglich, dass ungültige Werte und Out-of-Loop-Zugriffe die Logik nicht unterbrechen? Könnte zum Beispiel eine Division durch 0 nicht zu einem Fehler führen, aber ein großer Wert von z.B. 1000 und die Adressierung außerhalb des Arrays ergab ein Element von der Array-Kante, die der Adresse am nächsten liegt?

(So... Gedanken eines Anfängers, ich verstehe, dass es unmännlich, vielleicht sogar beschämend sein mag, so zu denken))) Aber verzeihen Sie mir, ich bin leider nicht sehr aufmerksam. Es fällt mir leichter, mir Strukturen auszudenken, als sie zu implementieren, aber wenn ich für jede Kleinigkeit Kodierung bestellen muss, bin ich ruiniert. Kleine Tests sind immer noch besser, wenn man sie selbst durchführt.

 

J.B:

Welche Methoden oder Heuristiken verwenden Sie, um Out-of-Bounds-Arrays zu vermeiden?

Eine Klasse zur Erstellung eines Ringpuffers
 
J.B:

Ich habe bereits über die Spread-Accounting in den Totalisator gedacht, es ist ein zusätzlicher Trick, unter Berücksichtigung einer bestimmten Brokerage-Unternehmen und ihre Kurse, ich versuche, konsequent Probleme zu lösen, so dass jedes Element des Systems wäre ausreichend autonom, um in der Lage sein, den "Netto-Beitrag" der einzelnen Elemente zu verstehen, und dann analysieren die kumulative Wirkung.

Ich habe die Spanne erwähnt, nicht um Klischees zu brechen. In der Tat gibt es keine Streuung. Es gibt nur den Bid und Ask von BP. Sie bauen auch ZigZags auf, setzen aber Höchstwerte auf Bid BP und Tiefstwerte auf Ask BP. Die Summe der Knie ergibt dann den"floating spread". Es ist wirklich nicht so nerdig, wie es vielleicht scheint. Es geht auch nicht darum, supergenau zu rechnen, wo man es nicht kann. Hier geht es um einen Grundsatz: Zu häufige Brüche, auch wenn sie sehr genau sind, sind schlecht, da sie nicht rentabel sind.

Ich bin noch kein sehr guter Programmierer und meine Programmiergeschwindigkeit ist wirklich enttäuschend, ich kämpfe ständig mit Array-Überläufen und mit der Tatsache, dass ich keinen neuen Berechnungspuffer für den Indikator implementiert habe. Daher verbringe ich 99,9 % meiner Zeit mit technischen Pannen und denke nicht über die TK-Architektur nach, was traurig, aber unvermeidlich ist.

Ich bin auch ein beschissener Programmierer. Daher wird empfohlen, solche Studien nicht in MMS durchzuführen. Verwenden Sie MQL nur als Datenquelle und als einfache Visualisierung. Für die Analyse verwenden Sie das gleiche Matrixpaket. Das spart Ihnen viel Zeit und Mühe.

Die Bid- und Ask-Daten sollten über FXOPEN ECN, FXCM, Dukascopy oder eine andere Tick-Quelle verfügbar sein. Sie sollten nur M1 verwenden, als Kompromiss zwischen Geschwindigkeit und Präzision. Ich weiß, dass sich kaum jemand damit befassen wird, und es wird immer noch in MQL-Rahmen bleiben. Aber Sie müssen sich selbst beantworten, ob Sie nachforschen oder herumspielen wollen.

 

Danke! Ich werde es ausprobieren)))

hrenfx:

Ich sagte über die Verbreitung, nicht um Klischees zu brechen. In der Tat gibt es keine Streuung. Es gibt nur Bid und Ask BP. Sie bauen ZigZags auf die gleiche Weise auf, aber Sie setzen Höchstkurse auf den Geldkurs und Tiefstkurse auf den Briefkurs. Die Summe der Knie ergibt dann den"floating spread". Es ist wirklich nicht so nerdig, wie es vielleicht scheint. Es geht auch nicht darum, supergenau zu rechnen, wo man es nicht kann. Hier geht es um einen Grundsatz: Zu häufige Brüche, auch wenn sie sehr genau sind, sind schlecht, da sie nicht rentabel sind.

Ich bin auch ein beschissener Programmierer. Daher wird empfohlen, solche Studien nicht in MMS durchzuführen. Verwenden Sie MQL nur als Datenquelle und als einfache Visualisierung. Für die Analyse verwenden Sie das gleiche Matrixpaket. Das spart Ihnen viel Zeit und Mühe.

Die Bid- und Ask-Daten sollten über FXOPEN ECN, FXCM, Dukascopy oder eine andere Tick-Quelle verfügbar sein. Sie sollten nur M1 verwenden, als Kompromiss zwischen Geschwindigkeit und Präzision. Ich weiß, dass sich kaum jemand damit befassen wird, und es wird immer noch in MQL-Rahmen bleiben. Aber hier müssen Sie sich selbst die Frage stellen, ob Sie forschen oder herumspielen wollen.

Vielen Dank für die Empfehlung! Eigentlich verfolge ich sie rückwirkend)). Ich verwende STATICTICA und Matlab für numerische Studien, sideFX Houdini für Visualisierungen und einige ungewöhnliche Berechnungen. Aber trotzdem muss ich etwas ganz eigenes auf Vektor-(Array-)Ebene und Operationen mit ihren Komponenten in Schleifen programmieren. Deshalb werde ich mql5 für mt5 und höchstwahrscheinlich auch C# studieren müssen.

Der 5. wurde aus folgenden Gründen gewählt, die ich in der Reihenfolge ihrer Bedeutung nenne:

1) mql5 ist ein Analogon von C++.

Und C++ ist heutzutage die fortschrittlichste Programmiersprache, und selbst wenn mt5 mir wegen unzureichender Vermarktung nicht helfen sollte, kann ich problemlos auf reine C++-Programmierung umsteigen. Und diese Erfahrung wird nicht verloren gehen.

Natürlich gefällt OOP im Gegensatz zum C-ähnlichen 4., das wie Power unter der Motorhaube eines coolen Autos ist, als das Potential, strukturell komplexe Projekte zu realisieren. Eine prozedurale Sprache wäre angesichts meiner Achtsamkeit und der geplanten strukturellen Verschachtelung von Projekten eine Wucht.

2) Mt5 ist die neueste Version von mt.

Eine hohe Wahrscheinlichkeit, dass die nächsten Versionen von mql wird auch auf Pluspunkte und mt5th wird gefördert, um Börsen, die ein riesiges absolutes Plus und die Tatsache, dass Brokerage-Unternehmen sind nicht wechseln en masse zu 5 meiner Meinung nach ist eine vorübergehende Erscheinung.

Ich habe auch begonnen, mql5 und c# zu verwenden, um meine Ideen umzusetzen. Ich habe bereits Erfahrung mit der Bestellung einiger Ideen bei Programmierern, aber ich habe beschlossen, dass es Sinn macht, nur die Hülle zu bestellen. Und Vorhersageblöcke und MM sollten von mir selbst erstellt werden. Ich werde also zumindest Sprachen lernen müssen, um die Aufgabe richtig zu stellen und die Projekte richtig zu überprüfen/zu untersuchen. Dies ist natürlich im Moment nur IMHO der Fall.

 

Ehrlich gesagt, ist dies eine seltsame Vision. Was hat die Forschung zu TzWD mit irgendeiner Plattform oder Sprache zu tun? Das ist nur Forschung. Man kann es auf dem Papier machen, man kann es in einer C-ähnlichen Sprache machen und, wie Sie richtig bemerkten, in einigen mathematischen Paketen. Die Möglichkeit, Daten und DLLs von Drittanbietern zu programmieren und zu importieren, ist jedoch wichtig. Forschung und Handel sind völlig unterschiedliche Tätigkeiten.

Herumspielen bedeutet, dass Sie Ihre kostbare Zeit damit verbringen, eine Forschungsinfrastruktur von Grund auf aufzubauen: mit Hilfe einer Programmiersprache.

Ich werde natürlich nicht argumentieren oder überreden. Ich bin immer noch davon ausgegangen, dass es in diesem Thread um das Thema Forschung geht.