Wednesday 8 November 2017

Hadoop Handelssystem


Algorithmisches Trading System Architecture Bisher habe ich in diesem Blog über die konzeptionelle Architektur eines intelligenten algorithmischen Handelssystems sowie die funktionalen und nicht-funktionalen Anforderungen eines algorithmischen Produktionssystems geschrieben. Seitdem habe ich eine Systemarchitektur entworfen, von der ich glaube, dass sie diese architektonischen Anforderungen erfüllen kann. In diesem Beitrag werde ich beschreiben die Architektur nach den Richtlinien der ISO / IEC / IEEE 42010 Systeme und Software Engineering Architektur Beschreibung Standard. Nach dieser Norm muss eine Architekturbeschreibung enthalten: Mehrere standardisierte architektonische Ansichten (z. B. in UML) enthalten und die Rückverfolgbarkeit zwischen Entwurfsentscheidungen und architektonischen Anforderungen beibehalten Softwarearchitekturdefinition Es gibt noch keinen Konsens darüber, was eine Systemarchitektur ist. Im Rahmen dieses Artikels wird sie als die Infrastruktur definiert, innerhalb der Anwendungskomponenten, die funktionalen Anforderungen genügen, spezifiziert, implementiert und ausgeführt werden können. Funktionale Anforderungen sind die erwarteten Funktionen des Systems und seiner Komponenten. Nicht funktionale Anforderungen sind Maßnahmen, durch die die Qualität des Systems gemessen werden kann. Ein System, das seine funktionalen Anforderungen voll erfüllt, kann die Erwartungen nicht erfüllen, wenn nicht funktionale Anforderungen unbefriedigt bleiben. Um dieses Konzept zu veranschaulichen, betrachten Sie das folgende Szenario: ein algorithmisches Handelssystem, das Sie soeben gekauft / gebaut haben, macht hervorragende Handelsentscheidungen, ist aber völlig inoperabel mit den Organisationen Risikomanagement und Buchhaltungssysteme. Würde dieses System Ihre Erwartungen Konzeptionelle Architektur Eine konzeptionelle Ansicht beschreibt hohe Konzepte und Mechanismen erfüllen, die auf der höchsten Ebene der Granularität im System vorhanden sind. Auf dieser Ebene folgt das algorithmische Handelssystem einer ereignisgesteuerten Architektur (EDA), die über vier Schichten aufgebrochen ist, und zwei architektonische Aspekte. Für jede Schicht - und Aspektreferenz werden Architekturen und Muster verwendet. Architektonische Muster sind bewährte, generische Strukturen, um spezifische Anforderungen zu erfüllen. Architektonische Aspekte sind Querschnittsaufgaben, die sich über mehrere Komponenten erstrecken. Ereignisgetriebene Architektur - eine Architektur, die Ereignisse erzeugt, erkennt, konsumiert und reagiert. Ereignisse umfassen Echtzeitbewegungen, komplexe Ereignisse oder Trends und Handelsereignisse, z. B. Einreichung einer Bestellung. Dieses Diagramm zeigt die grundlegende Architektur der algorithmischen Handelssystem Referenzarchitekturen eine Analogie zu verwenden, eine Referenzarchitektur ist ähnlich wie die Pläne für eine tragende Wand. Dieses Blau-Druck kann für mehrfache Gebäudeentwürfe wiederverwendet werden, unabhängig davon, welches Gebäude errichtet wird, da es einen Satz von allgemein auftretenden Anforderungen erfüllt. Ähnlich definiert eine Referenzarchitektur eine Vorlage, die generische Strukturen und Mechanismen enthält, die verwendet werden können, um eine konkrete Softwarearchitektur zu konstruieren, die spezifischen Anforderungen genügt. Die Architektur für das algorithmische Handelssystem verwendet eine raumbasierte Architektur (SBA) und einen Model View Controller (MVC) als Referenzen. Gute Praktiken wie dem Operational Data Store (ODS), der Extrakt Transformieren und Laden (ETL) Muster und einem Data Warehouse (DW) werden ebenfalls verwendet. Modellansicht-Controller - ein Muster, das die Darstellung von Informationen von der Benutzerinteraktion mit ihr trennt. Raumbasierte Architektur - spezifiziert eine Infrastruktur, in der lose gekoppelte Verarbeitungseinheiten miteinander über einen gemeinsamen assoziativen Speicher mit dem Namen Space interagieren (siehe unten). Strukturansicht Die Strukturansicht einer Architektur zeigt die Komponenten und Unterkomponenten des algorithmischen Handelssystems. Es zeigt auch, wie diese Komponenten auf physische Infrastruktur eingesetzt werden. Die in dieser Ansicht verwendeten UML-Diagramme umfassen Komponentendiagramme und Bereitstellungsdiagramme. Im Folgenden finden Sie die Schichten für jeden in der SBA-Referenzarchitektur sowie zugehörige Komponentendiagramme Galerie der Verteilungsdiagramme des gesamten algorithmischen Handelssystem und den Verarbeitungseinheiten. Architectural Tactics Nach dem Software Engineering Institute ist eine architektonische Taktik ein Mittel zur Befriedigung einer Qualitätsanforderung durch Manipulation eines Aspekts eines Qualitätsattributmodells durch architektonische Designentscheidungen. Ein einfaches Beispiel, das in der algorithmischen Handelssystemarchitektur verwendet wird, ist, einen operativen Datenspeicher (ODS) mit einer kontinuierlichen Abfragekomponente zu manipulieren. Diese Komponente würde das ODS kontinuierlich analysieren, um komplexe Ereignisse zu identifizieren und zu extrahieren. Folgende Taktiken werden in der Architektur verwendet: Das Disruptormuster im Ereignis - und Auftragswarteschlange Gemeinsamer Speicher für die Ereignis - und Auftragswarteschlangen Ununterbrochene Abfragesprache (CQL) auf dem ODS Datenfilterung mit dem Filterentwurfsmuster auf eingehenden Daten Vermeidungsalgorithmen auf allen Eingehende und ausgehende Verbindungen Active Queue Management (AQM) und explizite Staubenachrichtigung Rohstoffrechenressourcen mit Upgradefähigkeit (skalierbar) Aktive Redundanz für alle Single Points of Fail Indexierung und optimierte Persistenzstrukturen im ODS Planen Sie regelmäßige Datensicherungs - und Bereinigungsskripts für ODS Transaktionshistorien auf alle Datenbanken Prüfsummen für alle Bestellungen Fehler Ereignisse mit Zeitstempel mit Anmerkungen versehen zu erkennen abgestanden Ereignisse zu überspringen bestellen Validierungsregeln zB Maximale Handelsmengen Automatisierte Händlerkomponenten verwenden eine Speicher-Datenbank für die Analyse Zwei-Stufen-Authentifizierung für Benutzerschnittstellen, die eine Verbindung zu den ATs herstellen Verschlüsselung auf Benutzerschnittstellen und Verbindungen zu den ATs Observer-Entwurfsmuster für das MVC zur Verwaltung von Ansichten Die obige Liste sind nur ein paar Design Entscheidungen, die ich bei der Gestaltung der Architektur identifiziert habe. Es ist nicht eine vollständige Liste der Taktiken. Da das System entwickelt wird, sollten zusätzliche Taktiken auf mehreren Ebenen der Granularität eingesetzt werden, um funktionale und nicht-funktionale Anforderungen zu erfüllen. Unten sind drei Diagramme, die das Disruptor-Designmuster, das Filterentwurfsmuster und die kontinuierliche Abfragekomponente beschreiben. Verhaltensansicht Diese Ansicht einer Architektur zeigt, wie die Komponenten und Schichten miteinander interagieren sollen. Dies ist hilfreich bei der Erstellung von Szenarien zum Testen von Architekturentwürfen und zum Verständnis des Systems von Ende zu Ende. Diese Ansicht besteht aus Sequenzdiagrammen und Aktivitätsdiagrammen. Aktivitätsdiagramme, die den internen Prozess der algorithmischen Handelssysteme zeigen und wie Händler mit dem algorithmischen Handelssystem interagieren sollen, sind nachfolgend dargestellt. Technologien und Rahmenbedingungen Der letzte Schritt beim Entwerfen einer Softwarearchitektur besteht darin, mögliche Technologien und Rahmenbedingungen zu identifizieren, die zur Verwirklichung der Architektur genutzt werden könnten. Grundsätzlich ist es sinnvoll, bestehende Technologien auszuschöpfen, sofern sie sowohl funktionale als auch nicht funktionale Anforderungen adäquat erfüllen. Ein Framework ist eine realisierte Referenzarchitektur, z. B. JBoss ist ein Framework, das die JEE-Referenzarchitektur realisiert. Die folgenden Technologien und Frameworks sind interessant und sollten bei der Implementierung eines algorithmischen Handelssystems berücksichtigt werden: CUDA - NVidia verfügt über eine Reihe von Produkten, die eine hochleistungsfähige Computational Finance Modellierung unterstützen. Man kann bis zu 50x Performance-Verbesserungen in der Ausführung von Monte Carlo Simulationen auf der GPU anstelle der CPU erreichen. Apache River - River ist ein Tool-Kit zur Entwicklung verteilter Systeme. Es wurde als Rahmen für den Aufbau von Anwendungen auf der Grundlage der SBA-Muster Apache Hadoop - für den Fall, dass pervasive Logging ist eine Anforderung, dann die Verwendung von Hadoop bietet eine interessante Lösung für die Big-Data-Problem. Hadoop kann in einer Clusterumgebung eingesetzt werden, die CUDA-Technologien unterstützt. AlgoTrader - eine Open-Source-algorithmische Handelsplattform. AlgoTrader könnte an Stelle der automatisierten Händlerkomponenten eingesetzt werden. FIX Engine - eine eigenständige Anwendung, die die Financial Information Exchange (FIX) - Protokolle einschließlich FIX, FAST und FIXatdl unterstützt. Obwohl es sich nicht um eine Technologie oder ein Framework handelt, sollten Komponenten mit einer API (Application Programming Interface) aufgebaut werden, um die Interoperabilität des Systems und seiner Komponenten zu verbessern. Fazit Die vorgeschlagene Architektur wurde entwickelt, um sehr allgemeine Anforderungen für algorithmische Handelssysteme zu erfüllen. Im Allgemeinen werden algorithmische Handelssysteme durch drei Faktoren kompliziert, die bei jeder Implementierung variieren: Abhängigkeiten von externen Unternehmen und Exchange-Systemen Herausfordernde nicht-funktionale Anforderungen und sich entwickelnde architektonische Zwänge Die vorgeschlagene Softwarearchitektur müsste daher im Einzelfall von Fall zu Fall angepasst werden Um spezifische organisatorische und regulatorische Anforderungen zu erfüllen sowie regionale Zwänge zu überwinden. Die algorithmische Handelssystemarchitektur sollte nur als Referenz für Einzelpersonen und Organisationen betrachtet werden, die ihre eigenen algorithmischen Handelssysteme entwerfen wollen. Für eine vollständige Kopie und Quellen verwendet, laden Sie bitte eine Kopie meines Berichts. Vielen you. Building Stock Trading-Strategien: 20 Schneller mit Hadoop Dieser Gastbeitrag von Sofia Parfenovich Data Scientist bei Altoros Systeme. Ein großer Datenspezialist und ein Hortonworks System Integrator Partner. Sofia erklärt, dass sie eine Kundenhandelslösung mithilfe von Hadoop (Hortonworks Data Platform) und durch die Gruppierung von Bestandsdaten optimiert hat. Automatisierte Handelslösungen werden häufig von Investoren, Banken, Fonds und anderen Börsenteilnehmern genutzt. Diese Systeme basieren auf komplexen mathematischen Algorithmen und können Hunderte von Faktoren berücksichtigen. Die heutigen Handelsplattformen können die Menschen über den richtigen Zeitpunkt für die Platzierung Kauf / Verkauf Orders oder können sogar einen Deal ohne menschliche Beteiligung. Aktienhandelsstrategien und Datenprobleme Handelsalgorithmen basieren häufig auf einem einzigen Satz von Regeln mit festen Parametern, die einfach zu implementieren sind, jedoch nicht in der Lage sind, alle Änderungen innerhalb des Marktes widerzuspiegeln und erheblichen Verlust bringen können. Eine Möglichkeit, ein System flexibler zu machen, besteht darin, Strategien in verschiedene Gruppen aufzuteilen, die auf den jeweiligen Marktbedingungen basieren. Heres ein Beispiel, wo dieses System implementiert wurde. Das Unternehmen hatte eine Lösung, die automatisch einen Pool von Handelsstrategien generierte, aber der Prozess der Auswahl der notwendigen Strategie war immer noch ein Thema. Die Daten wurden von den Handelsexperten manuell für einen bestimmten Zustand einer Börse gruppiert, die Wochen der Analyse dauerte. Dieser Teil des Systems musste automatisiert werden. Ein anderes Problem wurde durch eine verteilte Natur des Systems verursacht. Mehrere Berichte zum Aufbau von Strategien wurden auf separaten Maschinen aggregiert. Gesamtgröße dieser Informationen näherte sich 100 GB, so dass eine große Datenfrage. Darüber hinaus sollten die Strategien alle zwei Monate revidiert werden, um sich den veränderten Marktbedingungen anzupassen. Um mit so großen Datenmengen zurechtzukommen, nutzte die Kundenplattform eine Anzahl von Filtern, die die Anzahl der Parameter reduzierten. Als Ergebnis wurde die Gesamtgröße dieser aggregierten Berichte auf 510 GB verkleinert. Danach wurden die Daten gemäß den von den Handelsexperten vorgeschlagenen Annahmen in Gruppen aufgeteilt. So wurden die notwendigen Strategien aus kleineren Sets mit einer Größe von 0,51 GB ausgewählt. Jedoch waren die resultierenden Strategien nicht vielfältig genug und ließen sehr oft einige der wesentlichen Parameter weg. Der Kunde wollte mehr Informationen in die Analyse einbeziehen. Ziel war es, Entscheidungen präziser zu treffen und damit Gewinne zu erzielen. Lösen des großen Datenproblems mit Hadoop, Hortonworks Data Platform und k - Mitteln Die Aufgabe passt perfekt zu dem MapReduce-Prinzip (divide and distribute) und den Hadoop-Funktionen der Hortonworks Data Platform. Der Kunde stimmte dieser Option zu, da er keine zusätzliche Hardware oder Software benötigte. Die Berichte wurden auf HDFS hochgeladen. Um diese aggregierten Daten zu clustern, wurde der k-means-Algorithmus unter Verwendung der R-Sprache implementiert. Dieser Algorithmus gruppiert Objekte nach Koordinatennähe. Abbildung 1 zeigt, wie erzeugte Strategien durch zwei Parameter (Koordinaten) gekoppelt werden können, zum Beispiel die Wahrscheinlichkeit eines Gewinns und der Verlustquote. Jede Farbe gibt eine Gruppe von Strategien mit ähnlicher Wahrscheinlichkeit eines Gewinns und Verlustes an. In Wirklichkeit gibt es eine Fülle von Faktoren, die den Aktienmarkt zu beeinflussen, die diese Art von Clustering anspruchsvoller macht. Für unser System würde jede Handelsstrategie im ersten Lauf N-Koordinaten aufweisen (wenn statistisch relevante Daten analysiert werden) und M-Koordinaten im zweiten Lauf (wenn die Wirksamkeit einer Strategie analysiert wird). Abbildung 2 beschreibt, wie das Handelssystem durch die Verwendung von Hadoop (Hortonworks Data Platform) und den k - Methodenalgorithmus verbessert wurde. Unten ist das allgemeine Schema der Lösung: Zuerst sammelt das System Berichte mit Rohdaten. Danach werden diese Berichte auf HDFS übertragen. Ein mit der R-Sprache geschriebenes Skript startet die Vorverarbeitung der Daten. (Basierend auf dem MapReduce-Prinzip vereinigt es heterogene Informationen, die vom System gesammelt werden.) Auf dem ersten Clusteringlauf werden alle Strategien nach den Statistikkriterien sortiert (zum Beispiel das aktuelle Gebot, die Menge der Bestände und Hunderte von anderen Parametern) ). Auf dem zweiten Clustering-System führt das System eine qualitative Analyse durch: Es misst die Ergebnisse, die jede Strategie zeigt, und vergleicht die Strategie mit dem aktuellen Marktstand zu unterschiedlichen Zeitpunkten. Die Daten werden im entsprechenden Format erstellt. Wie in der Vorverarbeitungsstufe wird diese Aufgabe auch durch ein mit R auf dem MapReduce-Paradigma erzeugtes Skript durchgeführt. Die Ergebnisse werden von HDFS abgerufen und sind für die zukünftige Nutzung durch den Kunden bereit. Analysieren des Ergebnisses: Schnelleres Erstellen und Erstellen von Strategien Drei Hauptvorteile wurden durch Optimierung mit Hadoop, R-Skripten, Clustering und k - Mitteln erzielt: Das System erstellt und wählt die am besten geeignete Strategie 20 schneller als zuvor aus. Diese Verbesserung allein spart dem Kunden etwa eine Woche jedes Mal, wenn das Team die Analyse durchführt. Die verbesserte Plattform verdoppelte die Anzahl der Strategiegruppen. Durch diese Diversifizierung wurde die Auswahl flexibler und prägnanter, sodass der Umsatz der Kunden um 12 erhöht werden konnte. Zuletzt können die Strategien jetzt öfter aktualisiert werden und können mehr Parameter in die Analyse einbeziehen. Als Ergebnis gibt es mehr Strategien, die der Kunde verkaufen kann, wodurch ein zusätzlicher Umsatz Kanal. Bisher waren diese Errungenschaften nicht machbar, da das Hinzufügen eines Parameters zu dem System die Anzahl der Berichte und die Zeit, die erforderlich war, um sie zu verarbeiten, erhöhen würde. Die aktuelle Hadoop-basierte Architektur berücksichtigt die ständig wachsenden Mengen an Marktinformationen und ermöglicht die Verarbeitung von 10x größeren Sätzen von Daten ohne zusätzliche Investitionen. Es wäre auch interessant zu sehen, wie viel Verbesserung der Kunde mit einer der HadoopGPU-Implementierungen oder mit YARN s Echtzeit-Fähigkeiten von Hadoop 2.0 zur Verfügung gestellt erreichen könnte. Also, warten auf Erfolgsgeschichten von genauen Zahlen unterstützt. Über den Autor: Sofia Parfenovich ist Data Scientist bei Altoros Systems, einem großen Datenspezialisten und Plattform-as-a-Service Enabler. Sofia ist daran interessiert, Assoziationsregeln für den Abbau großer Datenmengen mit Hadoop und anderen MapReduce-Tools zu erstellen. Sie verfügt über starke Erfahrung in der Zeitreihenprognose, beim Aufbau von Handelsstrategien und verschiedenen Datenanalysen. Altoros Systems ist ein Partner von Hortonworks System Integrator. Das Unternehmen bietet Technologie-Dienstleistungen rund um Hadoop und PaaS an Software-Anbieter, IaaS-Anbieter und Informations-schwere Unternehmen. Altoros verfügt über eine nachgewiesene Erfolgsbilanz für Technologieführer wie RightScale, Couchbase, NuoDB, Joyent, Cisco usw. Für weitere Informationen besuchen Sie bitte Altoros. Kategorien: Wie Data Science und Predictive Analytics AML Compliance im Banking amp Zahlungen umwandeln .. (2/2) Der erste Blog in dieser zwei Teil-Serie (Deter Financial Crime durch die Schaffung eines effektiven AML-Programm) beschrieben, wie Geldwäsche (ML) Aktivitäten eingesetzt Durch räuberische Akteure (zB Drogenkartelle, korrupte Öffentlichkeit Ampere terroristische Organisationen) im Laufe der Jahre anspruchsvoller geworden sind. Globale und regionale Banken unterliegen trotz riesiger thellip Digital Foundations die Bedeutung von Customer Journey Mapping Der erste Beitrag in dieser dreiteiligen Serie zu Digital Foundations vamsitalkstech / p2517 führte das Konzept des Kunden 360 oder Single View of Customer (SVC) ein. Wir diskutierten spezifische Vorteile sowohl von einem betriebswirtschaftlichen Standpunkt aus, die von SVC aktiviert werden. Dieser zweite Post in der Serie stellt das Konzept einer Kundenreise vor. Der dritte Verstärker finalhellip Fünf Minuten mit. Eric Thorsen auf europäischen Einzelhändler-Treueprogrammen Wie viele Einzelhandel-Loyalitätskarten haben Sie persönlich, Ive nur treu zu einem Programm konsequent in den letzten 10 Jahren gewesen (Boots Advantage Card, fantastisches Punkte-System), während die neuen Kinder auf dem Block in meinem Geldbeutel gehören Waitrose und John Lewis, aber darüber hinaus, ich entweder verlieren oder vergessen über sie. Ilellip Apache, Hadoop, Falke, Atlas, Tez, Sqoop, Flume, Kafka, Schwein, Hive, HBase, Akkumulo, Sturm, Solr, Spark, Ranger, Knox, Ambari, ZooKeeper, Oozie, Metron und die Hadoop Elefanten und Apache Projektlogos Sind eingetragene Marken oder Marken der Apache Software Foundation in den USA oder anderen Ländern.

No comments:

Post a Comment