Diskussion zum Artikel "Anwendung von OLAP im Handel (Teil 1): Online-Analyse multidimensionaler Daten"
Danke, ein klares Beispiel für die Anwendung funktionierte gut. Auf dem Knie, wenn Sie brauchen, um auf verschiedene Scheiben schnell aussehen, es funktionierte gut.
Ich beneide die Ebene der Abstraktion mit weißen Neid.
ZЫ MarketInfo versehentlich in den Text des Artikels erschienen. In Quellen - normal.
Nicht als Kritik, sondern entsprechend der Logik des Artikels:
Es wäre richtiger gewesen, den Artikel"Anwendung von OLAP bei der Analyse von Handelsergebnissen" zu nennen, denn der Titel erweckt den Eindruck, dass es um die Analyse der Marktdynamik geht. Es stellt sich jedoch heraus, dass der Experte ein Nicht-Händler ist.
Der Artikel ist jedoch unter dem Gesichtspunkt der Analyse von nicht marktbezogenen, endgültigen Daten interessant.
Der korrekte Titel des Artikels hätte lauten müssen "Anwendung von OLAP bei der Analyse von Handelsergebnissen".
Der Titel ist falsch, das steht fest.
Imho wäre es besser, ihn so zu nennen: "Arbeiten mit multidimensionalen Räumen im Handel unter Verwendung der OLAP-Technologie". Und so liest man und denkt: Was ist OLAP, und warum ist es hier?
Soweit ich es verstanden habe, wird in dem Artikel eine bestimmte Containerklasse und die entsprechende Infrastruktur vorgeschlagen, in der Vektoren (Vektoren im statistischen Sinne: d.h. eine Menge von Werten, die einen Punkt in einem mehrdimensionalen Raum charakterisieren) bequem gespeichert werden können. Im Prinzip ist es auch ohne diesen Container möglich, Daten nach Bedarf zu gruppieren. Allerdings ist es viel schwieriger, mehrdimensionale Räume zu visualisieren. Leider steht das nicht in dem Artikel, aber ich bin sicher, dass OLAP über Visualisierungstools verfügt.
Dass der Name falsch ist, ist sicher.
Imho wäre es besser, es so zu nennen: "Arbeiten mit multidimensionalen Räumen im Handel unter Verwendung der OLAP-Technologie". Und so liest man und denkt: Was ist OLAP, und warum ist es hier?
Es wäre besser, wenn es mehr Artikel über den Handel gäbe.
Und so stellt sich heraus, dass die Programmierer ihre Entwicklungen aus anderen Bereichen einbringen. Ich weiß nicht, warum, ich weiß nicht, an wen.
Ich denke, es lag vielen auf der Zunge, ich habe es nur geäußert ))
Es wäre besser, wenn es mehr Artikel über den Handel gäbe.
und so kommt es, dass Programmierer ihre Entwicklungen aus anderen Bereichen abziehen. Es ist unklar, warum, es ist unklar, an wen.
Ich denke, es war in vieler Munde, ich habe es nur geäußert )).
Ich weiß nicht, ich lese lieber über OLAP als über Artikel wie "Martingale als Grundlage für langfristige Handelsstrategien".
Der Artikel stellt universelle Klassen vor, die zur Analyse beliebiger numerischer Daten im Zusammenhang mit dem Handel verwendet werden können (es wird erwähnt), daher der Name "Handel".
Ich halte dieses Tool für sehr nützlich für den Handel, aus der Kategorie der muss haben. Wenn jemand etwas "handelsspezifischeres" wünscht - ich weiß nicht, nach welchen Kriterien -, dann bitte ich darum, spezifische Wünsche in dem entsprechenden Thread im Forum zu äußern, in dem es eine Tabelle der "Wünsche" gibt.
Hier ein Zitat vom Anfang des Artikels:
//----------------------------
"Für einen Handelsbericht kann es interessant sein, eine Aufschlüsselung der Gewinne nach Symbol, Wochentag, Käufen und Verkäufen zu erhalten. Oder zum Beispiel, um die Leistung mehrerer Handelsroboter zu vergleichen (d.h. separat für jede magische Zahl).
Zitat Ende.
//----------------------------
Dies ist ein praktisches Problem, dessen Lösung weiter unten im Text erläutert wird. Zitat Ende:
//---------------------------
"Um Datensätze aus einer abstrakten Quelle zu lesen (das kann in Zukunft eine Handelskontohistorie, eine CSV-Datei, ein HTML-Bericht oder Daten aus dem Internet sein, die über WebRequest bezogen werden), wird eine weitere Klasse benötigt - ein DataAdapter. "
Zitat Ende.
//---------------------------
Die Daten sollen also aus verschiedenen Quellen stammen (ihr Format ist im Voraus bekannt?). Aber nehmen wir mal an, dass das Format des analysierten Datensatzes für alle Berichte gleich ist. In diesem Fall würde ich eine alternative Lösung vorschlagen, die keine komplexe OOP- und OLAP-Organisation erfordert.
Ein Bericht beschreibt die Historie eines Handelskontos. Jeder Handelsbericht hat ein semantisches Zentrum - ein TRADE. Die Eigenschaften dieses Objekts sind Symbol, Datum, Lot und eine unendliche Anzahl von anderen Dingen. Jede Eigenschaft ist ein Parameter, der eine Historie von Werten von unbestimmter Tiefe hat. Unsere Aufgabe ist es, Daten auf der Grundlage von Kriterien der freien Zusammensetzung schnell zu finden. Ihre Visualisierung ist sekundär. Die Effizienz des Datenabrufs hängt natürlich von der Art der Speicherung ab, aber es geht um Folgendes: Die Daten sind unendlich vielfältig, weil die Eigenschaften des Hauptobjekts des Berichts - die Transaktionen - unendlich vielfältig sind, und der Zustand jeder Eigenschaft (der aktuelle Wert des Parameters) kann als Filter dienen, um nach Parallelen in der Geschichte der Werte anderer Parameter zu suchen. Mit anderen Worten, es gibt eine unendliche Vielfalt an Optionen für die Datenaggregation, und der Versuch, die Historie in vorbereiteten und strukturierten Komplexen zu verteilen und zu speichern, wird nicht zu einer Verringerung der Effizienz der Extraktion und der Geschwindigkeit der Aggregation führen? Das werden sie auf jeden Fall.
Die einzige universelle Methode zur Aufzeichnung und Speicherung von Daten, die ich sehen kann, ist die Erstellung paralleler Vektoren (z. B. Ressourcen), die jeweils eine Historie ihrer Parameterwerte enthalten. Da eine Transaktion an einen bestimmten Zeitpunkt gebunden ist, hat sie eine fortlaufende Nummer, und daher kombiniert jede Transaktion eine beliebige Anzahl von Eigenschaften, deren Werteverlauf in einer Anzahl von n Vektoren aufgezeichnet wird. Dies ist der Kern der von mir vorgeschlagenen Methode zur Organisation und Speicherung von Berichtsdaten. Etwas Universelleres kann ich mir nicht vorstellen.
Nun zur Datenaggregation. Natürlich sollte man die Parallelität von Vektoren nutzen, wann immer dies möglich ist, und wenn die Aufgabe komplizierter ist, sollte man die üblichen Suchzyklen verwenden. Wir brauchen dafür keine komplexen strukturierten Systeme, und die universelle Lösung besteht darin, die Hauptaggregatfunktion mit verschiedenen Methoden der Datenfilterung zu erstellen. Das heißt, - ein Arbeitsblock mit einem auffüllbaren Satz von Filtern. Alle.
//---------------------------
OLAP ist zweifelsohne eine gute Technik.
Aber meiner bescheidenen Meinung nach ist das Hauptmerkmal von OLAP die Integration. Mit Speichern und anderen Datenquellen. Dann erweitern sich die Analysemöglichkeiten dramatisch. Und innerhalb einer Anwendung mit eigenen Datensätzen ist nicht sehr komisch.
Ich hoffe, dass es in den nächsten Artikeln entsprechende Beispiele geben wird.
Ah-da! Der Artikel ist toll, der Code ist hervorragend, so etwas findet man hier selten

- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Neuer Artikel Anwendung von OLAP im Handel (Teil 1): Online-Analyse multidimensionaler Daten :
Der Artikel beschreibt, wie man einen Rahmen für die Online-Analyse von multidimensionalen Daten (OLAP) schafft, wie man diesen in MQL implementiert und wie man diese Analyse in der MetaTrader-Umgebung am Beispiel der Verarbeitung der Historie des Handelskontos anwendet.
Händler müssen oft riesige Datenmengen analysieren. Dazu gehören oft Zahlen, Kurse, Indikatorwerte und Handelsberichte. Aufgrund der Vielzahl von Parametern und Bedingungen, von denen diese Zahlen abhängen, betrachten wir sie in Teilen und betrachten den gesamten Prozess aus verschiedenen Perspektiven. Die gesamte Informationsmenge bildet eine Art virtuellen Hyperwürfel, in dem jeder Parameter seine eigene Dimension definiert, die senkrecht zum Rest steht. Solche Hyperwürfel können mit der gängigen OLAP ( Online Analytical Processing) Technologie verarbeitet und analysiert werden.
Das Wort "online" im Annäherungsnamen bezieht sich nicht auf das Internet, sondern bedeutet Schnelligkeit der Ergebnisse. Das Funktionsprinzip impliziert die Vorberechnung der Zellen des Hyperwürfels, woraufhin Sie schnell jeden beliebigen Querschnitt des Würfels in visueller Form extrahieren und betrachten können. Dies ist vergleichbar mit dem Optimierungsprozess in MetaTrader: Der Tester berechnet zunächst Handelsvarianten (die sehr lange dauern können, d.h. nicht zeitnah sind) und gibt dann einen Bericht aus, der die Ergebnisse in Verbindung mit den Eingabeparametern darstellt. Ab Build 1860 unterstützt die MetaTrader 5-Plattform dynamische Änderungen der betrachteten Optimierungsergebnisse durch Umschalten verschiedener Optimierungskriterien. Das ist nahe an der OLAP-Idee. Aber für eine vollständige Analyse benötigen wir die Möglichkeit, viele andere Bereiche des Hyperwürfels auszuwählen.
Wir werden versuchen, den OLAP-Ansatz im MetaTrader anzuwenden und die multidimensionale Analyse mit MQL-Tools zu implementieren. Bevor wir mit der Implementierung fortfahren, müssen wir die zu analysierenden Daten ermitteln. Dazu können Handelsberichte, Optimierungsergebnisse oder Indikatorwerte gehören. Die Auswahl an dieser Stelle ist nicht ganz so wichtig, da wir bestrebt sind, eine universelle objektorientierte Engine zu entwickeln, die auf alle Daten anwendbar ist. Aber wir müssen die Engine auf bestimmte Ergebnisse anwenden. Eine der gängigsten Aufgaben ist die Analyse des Handelsberichts. Wir werden diese Aufgabe berücksichtigen.
Autor: Stanislav Korotky