Diskussion zum Artikel "Anwendung von OLAP im Handel (Teil 1): Online-Analyse multidimensionaler Daten" - Seite 2

 

Die einfachsten Methoden der Aggregation von in Vektoren geschriebenen Daten:

1. Entlang aller Eigenschaftsvektoren einer Transaktion senkrecht zu ihrer Richtung gehen. Es ist möglich, schnell alle Daten einer bestimmten Transaktion zu aggregieren. In diesem Fall wird eine einfache Schleife verwendet.

2. Wenn Sie sich im ersten Zyklus entlang der Richtung der Vektoren und im zweiten Zyklus senkrecht zur Richtung der Vektoren bewegen, können Sie alle Daten aller Transaktionen sammeln.

Fazit: Mit der Parallel-Senkrecht-Bewegung können Sie beliebige Transaktionsauswahlfilter verwenden.


Jeder Wert einer beliebigen Eigenschaft kann als Suchfilter dienen. Ein Symbol zum Beispiel ist eine Transaktionseigenschaft. Ein bestimmtes Symbol ist ein bestimmter Wert einer Transaktionseigenschaft und kann ein Filter für die Datenaggregation sein. Ein Los ist ebenfalls eine Transaktionseigenschaft. Ein bestimmter Wert des Loses kann ebenfalls ein Filter sein. Komplexe Filter sind Kombinationen von bestimmten Werten bestimmter Eigenschaften. Bei einer universellen Aggregationsmethode kann es keine Beschränkung der Komplexität und Größe eines Filters geben. Daher besteht die Hauptaufgabe nicht darin, das Parsen von Daten zu organisieren (das immer parallel-perpendikular erfolgt), sondern einen komplizierten benutzerdefinierten Filter in ein Argument einer Aggregatfunktion zu verwandeln.

 
Реter Konow:

...Die Hauptaufgabe besteht also nicht in der Organisation der Datenanalyse (die immer parallel-perpendikular erfolgt), sondern darin, einen raffiniert komplexen benutzerdefinierten Filter in ein Argument einer Aggregatfunktion zu verwandeln.

Wie verwandelt man einen komplexen Filter (einen Satz von Datenauswahlbedingungen), der nicht nur bestimmte Werte von Transaktionseigenschaften, sondern auch Bereiche dieser Werte enthält, in ein Funktionsargument?

1. Eigenschaftsvektoren (die die Historie der Parameterwerte speichern) müssen indiziert werden. Jede Transaktionseigenschaft sollte eine laufende Nummer haben. Anhand dieser Nummer wird die erforderliche Ressource abgefragt und die Daten werden von ihr abgerufen.

2. Jeder Filter ist ein spezifischer Wert einer bestimmten Transaktionseigenschaft oder ein Bereich von Werten.

Um einen Filter zu erstellen, muss der Benutzer also die Indizes der Eigenschaften der Vektoren angeben, aus denen die Schleife gebildet werden soll, und ihre spezifischen Werte oder Wertebereiche spezifizieren. Diese Informationen können in ein reguläres Array geschrieben und an die Aggregatfunktion übergeben werden. Sie extrahiert die erforderlichen Vektoren aus den Ressourcen und durchläuft deren Inhalt in einer parallel-senkrechten Schleife unter Verwendung eines Filters aus dem ihr übergebenen Array.

Dies ist eine recht einfache und klare Aufgabe.

 

An den Autor des Artikels: Wie unterscheidet sich OLAP grundlegend von einem Array von Klassen?

In der Tat ist ein Vektor ein Wert von Werten oder ein Komplex von Werten, die einen Punkt charakterisieren. Aber jeder Punkt kann durch eine Klasse ausgedrückt werden. In diesem Fall können alle seine Eigenschaften in einen Vektor geschrieben werden und umgekehrt:

class TradeDeal
{
   Symbol = EURUSD;
   TimeHold = 1 h,13 m,55 s;
   Profit = 21.52$;
   MAE = 1.243;
}; => {EURUSD, {1 h,13 m,55 s}, 21.52$, 1.243 };

D.h. eine Instanz einer OOP-Klasse ist im Wesentlichen ein Vektor in einem mehrdimensionalen Raum oder ein Punkt, der seine Werte auf eine Menge von Dimensionen projiziert. Daher besteht jede Auswahl nach Parametern in einer gewöhnlichen Durchquerung einer generischen Sammlung solcher Klassen und der Auswahl geeigneter Instanzen.

 
Vasiliy Sokolov:

An den Autor des Artikels: Wie unterscheidet sich OLAP grundlegend von einem Array von Klassen?

In der Tat ist ein Vektor ein Wert von Werten oder ein Komplex von Werten, die einen Punkt charakterisieren. Aber jeder Punkt kann durch eine Klasse ausgedrückt werden. In diesem Fall können alle seine Eigenschaften in einen Vektor geschrieben werden und umgekehrt:

D.h. eine Instanz einer OOP-Klasse ist im Wesentlichen ein Vektor in einem mehrdimensionalen Raum oder ein Punkt, der seine Werte auf eine Menge von Dimensionen projiziert. Daher besteht jede Auswahl nach Parametern in einer gewöhnlichen Durchquerung einer generischen Sammlung solcher Klassen und der Auswahl von Instanzen, die für die Bedingungen geeignet sind.

Dies ist in etwa das, was wir getan haben. Nur brauchen wir zusätzlich zu den Klassen-Datensätzen noch Klassen zum Lesen von Quellen, Klassen-Iteratoren auf Datensätzen, Klassen von Aggregationsfunktionen, Klassen zur Gewinnung von Ergebnissen und zur Visualisierung (wird im 2. Teil behandelt). All dies zusammen ergibt OLAP.

 
Maxim Dmitrievsky:

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 vielen auf den Lippen, ich habe es nur geäußert )).

Stimmt, darüber habe ich auch schon lange nachgedacht.

 
Aleksandr Masterskikh:

Absolut richtig, darüber habe ich auch schon lange nachgedacht.

Schreiben Sie es einfach auf.
 
Artyom Trishkin:
Schreiben Sie einfach.

Artem, du verstehst nicht, die Leute brauchen den "Dough"-Button:) Und hier schreiben sie über verschiedene OLAP... Wann wird es eine Beschreibung des Buttons geben...

 
Vasiliy Sokolov:

Artem, du verstehst nicht, die Leute brauchen den "Geld"-Button:) Und hier schreiben sie über verschiedene OLAP... Wann gibt es eine Beschreibung des Buttons...

Der schwierigste Artikel über eine solche Schaltfläche ;)
[Gelöscht]  
Vasiliy Sokolov:

Artem, du verstehst nicht, die Leute brauchen den "Geld"-Button:) Und hier schreiben sie über verschiedene OLAP... Wann wird es eine Beschreibung des Buttons geben...

Wozu, die Leute brauchen doch nur schöne Buttons und Worte.

 
Artyom Trishkin:
Schreiben Sie einfach.

Ich habe nur geschrieben, dass in letzter Zeit Artikel über die Programmierung von sekundären Dingen (Dienste für die Verarbeitung von vorgefertigten Handelsergebnissen usw.), die nichts mit der Analyse der Marktdynamik zu tun haben, in den Vordergrund gerückt sind, und nicht über den Handel.

Natürlich ist das auch notwendig, aber die Hauptaufgabe ist der Handel selbst, die Suche nach Algorithmen für den Markteintritt (und die Programmierung dieser Algorithmen).