Wednesday 14 December 2016

Trading System Uml Diagramme

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 Ihren Erwartungen entsprechen Konzeptionelle Architektur Eine konzeptionelle Sicht beschreibt hochrangige Konzepte und Mechanismen, die im System auf höchster Granularität existieren. 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 veranschaulicht die konzeptionelle Architektur des algorithmischen Handelssystems Referenzarchitekturen Um eine Analogie zu verwenden, ähnelt eine Referenzarchitektur den Blaupausen für eine tragende Wand. Dieses Blau-Druck kann für mehrfache Gebäudeentwürfe wiederverwendet werden, unabhängig davon, welches Gebäude gebaut 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 Vorgehensweisen wie der Betriebsdaten-Speicher (ODS), das Extrakt-Transformations - und Belastungsmuster (ETL) und ein 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 eine Übersicht der Implementierungsdiagramme des algorithmischen Handelssystems und der Verarbeitungseinheiten in der SBA-Referenzarchitektur sowie zugehörige Komponentendiagramme für die einzelnen Schichten. 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 Transaktionshistorie auf allen Datenbanken Prüfsummen für alle Aufträge, um Fehler zu erkennen Annotieren von Ereignissen mit Zeitstempeln, um veraltete Ereignisse zu überspringen Bestellen von 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 ist 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 muss 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 Bezugspunkt 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. Thank you. UML Bereitstellungsdiagramm. Design Elements UML Das Implementierungsdiagramm beschreibt die Hardware, die in Systemimplementierungen und den Ausführungsumgebungen und Artefakten verwendet wird, die auf der Hardware implementiert werden. ConceptDraw hat 393 Vektor-Schablonen in den 13 Bibliotheken, die Ihnen helfen, mit Software für die Gestaltung Ihrer eigenen UML-Diagramme zu starten. Sie können die entsprechenden Schablonen der UML-Notation aus der UML-Bereitstellungsbibliothek verwenden. Dieses Beispiel wurde in der ConceptDraw PRO-Diagramm - und Vektorzeichnungssoftware unter Verwendung der UML-Deployment-Diagramm-Bibliothek der Rapid-UML-Wikipedia erstellt. Das Deployment-Flußdiagramm-Beispiel quotTrading-Prozess-Diagrammquot war eine Lösung aus dem Business Processes-Bereich von ConceptDraw Solution Park. UML Use Case Diagram Beispiel Social Networking Webseiten Projekt UML Diagramme Social Networking Sites Projekt. Dieses Beispiel wurde in der ConceptDraw PRO-Diagramm - und Vektorzeichnungssoftware unter Verwendung der UML-Anwendungsfalldiagramm-Bibliothek der Rapid-UML-Lösung aus dem Bereich Softwareentwicklung des ConceptDraw Solution Parks erstellt. Dieses Beispiel zeigt das Facebook-Sozio-Gesundheitssystem und wird bei der Projektion und Erstellung der Social-Networking-Sites verwendet. Der akzeptierte offene Standard, der in der Softwareentwicklung und im Systemdesign verwendet wird, wird bei der Modellierung von objektorientierten Systemen und Geschäftsprozessen als Unified Modeling Language (UML) bezeichnet. UML wurde für die Definition, Visualisierung, Design und Dokumentation Software-Systeme erstellt. Es ist nicht eine Programmiersprache, sondern auf der Basis von UML-Modell kann Code generiert werden. UML verwendet generischen Satz von grafischen Notationen für die Erstellung eines abstrakten Modells des Systems namens UML-Modell. Die UML-Notation erlaubt es, Anforderungen, Subsysteme, Struktur - und Verhaltensmuster, logische und physikalische Elemente visuell darzustellen. UML definiert 13 Arten von Diagrammen: Class (Package), Use Case, Sequence, Object, Collaboration, Component, Timing, State Machine, Composite Struktur, Aktivität und Bereitstellung. Alle diese Arten von UML Diagrammen können schnell und einfach erstellt werden mit leistungsstarken ConceptDraw PRO-Software erweitert mit speziellen Rapid UML-Lösung von Software Development Bereich von ConceptDraw Solution Park. Ein Beispielszenario wird dargestellt, um zu zeigen, wie ein gemeinsames Issue-Tracking-System funktionieren würde: (1) Ein Kundendiensttechniker empfängt ein Telefongespräch, eine E-Mail oder eine andere Kommunikation von einem Kunden über ein Problem. Einige Anwendungen bieten integriertes Messagingsystem und automatische Fehlerberichterstattung aus Ausnahmebehandlungsblöcken. (2) Der Techniker verifiziert, dass das Problem real ist und nicht nur wahrgenommen wird. Der Techniker stellt auch sicher, dass vom Kunden genügend Informationen über das Problem erhalten werden. Diese Informationen umfassen im Allgemeinen das Umfeld des Kunden, wann und wie das Problem auftritt, und alle anderen relevanten Umstände. (3) Der Techniker schafft das Problem im System, wobei alle relevanten Daten, wie vom Kunden angegeben, eingegeben werden. (4) Da die Arbeiten zu diesem Thema durchgeführt werden, wird das System durch den Techniker mit neuen Daten aktualisiert. Jeder Versuch, das Problem zu beheben, sollte im Emissionssystem vermerkt werden. Der Kartenstatus wird höchstwahrscheinlich von offen bis anstehend geändert. (5) Nachdem das Problem vollständig behandelt wurde, wird es im Problemverfolgungssystem als gelöst markiert. Wenn das Problem nicht vollständig behoben ist, wird das Ticket wieder geöffnet, sobald der Techniker neue Informationen vom Kunden erhält. Ein Laufbuchautomatisierungsprozess, der bewährte Verfahren für diese Workflows implementiert und die Effektivität der IT-Mitarbeiter erhöht, wird sehr häufig. Problemverfolgungssystem. Wikipedia Das UML-Anwendungsfalldiagramm-Beispiel Ticketverarbeitungssystem wurde mit der ConceptDraw PRO-Diagramm - und Vektorzeichnungssoftware erstellt, die mit der Rapid UML-Lösung aus dem Bereich Softwareentwicklung von ConceptDraw Solution Park erweitert wurde. UML-Use-Case-Diagramm Algorithmischer Handel, der auch als automatisierter Handel, Black-Box-Handel oder Algo-Handel bezeichnet wird, ist die Verwendung elektronischer Plattformen für die Eingabe von Handelsaufträgen mit einem Algorithmus, der vorprogrammierte Handelsanweisungen ausführt, deren Variablen Timing, Preis oder Menge des Auftrages, oder in vielen Fällen die Einleitung der Bestellung durch einen Roboter, ohne menschliches Eingreifen. Algorithmischer Handel wird häufig von Investmentbanken, Pensionskassen, Investmentfonds und anderen Buy-Side-Anlegern (institutionellen Anlegern) genutzt, um große Trades in mehrere kleinere Trades zu verteilen, um Marktauswirkungen und - risiken zu bewältigen. Verkaufen Nebenhändler, wie Market Maker und einige Hedge-Fonds, bieten Liquidität auf den Markt, Generierung und Ausführung von Aufträgen automatisch. Eine besondere Klasse des algorithmischen Handels ist der Hochfrequenzhandel (HFT), der häufig in Zeiten hoher Volatilität am Markt rentabel ist. In den vergangenen Jahren haben Unternehmen wie Algorates HFT-Strategien eingesetzt, die auch in Zeiten, in denen die Märkte einen starken Rückgang verzeichneten, hohe Gewinne verzeichneten. Algorithmischer Handel. Wikipedia Das UML-Anwendungsfalldiagramm-Beispiel Trading-Systemnutzungsszenarien wurden mit der ConceptDraw PRO-Diagramm - und Vektorzeichnungssoftware erstellt, die mit der Rapid UML-Lösung aus dem Bereich Softwareentwicklung von ConceptDraw Solution Park erweitert wurde. UML-Anwendungsfalldiagramm Anwendungsfalldiagramme werden bei der Entwicklung von Software und Systemen zur Definition von funktionalen Systemanforderungen oder System von Systemen verwendet. Das Anwendungsfalldiagramm stellt die Konsek tion von Objektaktionen (Benutzer oder Systeme) dar, die ausgeführt werden, um das definitive Ergebnis zu erreichen. Dieses Beispiel wurde in der ConceptDraw PRO-Diagramm - und Vektorzeichnungssoftware unter Verwendung der UML-Anwendungsfalldiagramm-Bibliothek der Rapid-UML-Lösung aus dem Bereich Softwareentwicklung des ConceptDraw Solution Parks erstellt. Dieses Beispiel zeigt die Arten der Benutzerinteraktionen mit dem System und wird bei der Registrierung und beim Arbeiten mit dem Datenbanksystem verwendet. Dienstleistungen UML-Diagramm. Geldautomaten. Dieses Beispiel wurde in der ConceptDraw PRO-Diagramm - und Vektorzeichnungssoftware unter Verwendung der UML-Anwendungsfalldiagramm-Bibliothek der Rapid-UML-Lösung aus dem Bereich Softwareentwicklung des ConceptDraw Solution Parks erstellt. Dieses Beispiel zeigt das Schema der Wartung unter Verwendung der Geldautomaten (Automated Teller Machines) und wird bei der Arbeit von ATM-Bankensystemen bei der Durchführung der Bankgeschäfte verwendet. Dieses Beispiel des Bank-ATM-UML-Aktivitätsdiagramms wurde auf der Basis des UML-Use-Case-Diagramms des Geldautomaten aus dem Kurs Thinking in Java, 2. Auflage, Revision 9 von Bruce Eckel, veröffentlicht auf der Website der Informatik - und Elektrotechnikabteilung, erstellt Die Universität von Maryland, Baltimore (UMBC). Wenn Sie beispielsweise einen Autoticker entwerfen, ist der Anwendungsfall für einen bestimmten Aspekt der Funktionalität des Systems in der Lage, zu beschreiben, was der Auto-Teller in jeder möglichen Situation macht. Jede dieser Situationen wird als Szenario bezeichnet, und ein Anwendungsfall kann als eine Sammlung von Szenarien betrachtet werden. Sie können sich ein Szenario als eine Frage, die mit beginnt: Was macht das System tun, wenn. Zum Beispiel Was macht der Auto-Teller tun, wenn ein Kunde hat nur hinterlegt einen Scheck innerhalb der letzten 24 Stunden, und theres nicht genug auf dem Konto, ohne dass die Überprüfung gelöscht haben, um eine gewünschte Entzug Anwendung Falldiagramme sind absichtlich einfach, Sie zu verhindern Von der Einbindung in Systemimplementierung Details vorzeitig. Jede Stockperson repräsentiert einen Schauspieler, der typischerweise ein Mensch oder eine andere Art von freier Agentin ist. (Dies können auch andere Computersysteme sein, wie es bei ATM der Fall ist.) Die Box repräsentiert die Grenze Ihres Systems. Die Ellipsen stellen die Anwendungsfälle dar, die Beschreibungen wertvoller Arbeiten sind, die mit dem System durchgeführt werden können. Die Linien zwischen den Akteuren und den Anwendungsfällen stellen die Interaktionen dar. Es spielt keine Rolle, wie das System tatsächlich implementiert ist, solange es für den Benutzer so aussieht. Ctt. umbule. edu/courses/331/resources/tij/text/TIJ213.gif Dieses UML - Anwendungsfalldiagrammbeispiel wurde unter Verwendung der ConceptDraw PRO - Diagramm - und Vektorzeichnungssoftware erstellt, die mit der ATM - UML - Diagrammlösung erweitert wurde Dem Bereich Softwareentwicklung von ConceptDraw Solution Park. Bank ATM UML-Sequenzdiagramm Die Unified Modeling Language (UML) ist eine universell einsetzbare Modelliersprache, die in den Bereichen Softwareentwicklung, Softwaretechnik, Bildung, Wissenschaft, Industrie und Wirtschaft weit verbreitet ist. 1997 wurde die UML als Standard von der OMG (Object Management Group) genehmigt und im Jahr 2005 als ISO-Norm von der International Organization for Standardization veröffentlicht. UML ist weit und erfolgreich für die Optimierung der Prozess der Software-Systementwicklung und Business-System-Analyse angewendet. Es werden 14 Arten von UML-Diagrammen verwendet, 7 davon repräsentieren strukturelle Informationen, 7 verschiedene Typen von Verhaltensweisen und Aspekte von Interaktionen. Das Design eines beliebigen automatisierten Prozesses ist mit ConceptDraw PRO und einer einzigartigen Rapid UML-Lösung aus dem Bereich Software-Entwicklung einfach, mit zahlreichen UML-Beispielen, Schablonen und Vektor-Schablonen-Bibliotheken zum Zeichnen aller Typen von UML 1.x - und UML 2.x-Diagrammen. Die Verwendung von vordefinierten UML-Diagrammbeispielen und - vorlagen ermöglicht das schnelle Erstellen eigener UML-Diagramme in der ConceptDraw PRO-Software. Use Case Diagrams beschreibt die Funktionalität eines Systems in Bezug auf die Akteure, deren Ziele als Use Cases dargestellt, und jegliche Abhängigkeiten zwischen diesen Use Cases. UML Use Case Diagram Taxi Service - Dieses Beispiel wurde in der ConceptDraw PRO Diagram - mier - und Vektorzeichnungssoftware unter Verwendung der UML Use Case Diagram-Bibliothek der Rapid UML-Lösung aus dem Bereich Softwareentwicklung des ConceptDraw Solution Park erstellt. Dieses Beispiel zeigt die Arbeit der Taxi-Service und wird von Taxi-Stationen, von Flughäfen, in der Tourismus-und Lieferdienst verwendet. Zwei Arten von Diagrammen werden in UML verwendet: Strukturdiagramme und Verhaltensdiagramme. Verhaltensdiagramme stellen die Prozesse dar, die in einer modellierten Umgebung ablaufen. Strukturdiagramme stellen die Elemente dar, aus denen das System besteht. Verwenden Sie Falldiagramme. IDEF3 Standard ist für die Beschreibung und weitere Analyse der technologischen Prozesse eines Unternehmens bestimmt. Mit dem IDEF3-Standard können Szenarien der technologischen Prozesse untersucht und modelliert werden.


No comments:

Post a Comment