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 ISOIECIEEE 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 gerade gekauft haben, macht ausgezeichnete 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 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 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 Tauschsystemen Herausforderung an nicht funktionale Anforderungen und Entwicklung von architektonischen Zwängen 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 Dank. Systemarchitektur Die Architektur von AlgoTrader setzt sich aus den folgenden Komponenten zusammen. Der AlgoTrader Server stellt die Infrastruktur für alle darauf laufenden Strategien zur Verfügung. Der AlgoTrader Server verfügt über die zentrale Esper Complex Event Processing (CEP) Engine. Er ist verantwortlich für alle Domänenmodellobjekte und deren Persistenz in der Datenbank. Für die Verarbeitung von Live - und historischen Marktdaten stehen unterschiedliche Marktdatenadapter zur Verfügung. Auf der anderen Seite stehen Adapter für verschiedene Execution-Broker und Börsen zur Verfügung, die für die Abgabe von Aufträgen und die Ausführung von Hinweisen verantwortlich sind. Der AlgoTrader Server bietet darüber hinaus Geschäftskomponenten für Portfolio-Management, Performance-Messung, Risikomanagement, Money Management, Options-Pricing, Abstimmung, Forex-Hedging und Parameteroptimierung. Auf dem AlgoTrader Server können beliebig viele Strategien eingesetzt werden. AlgoTrader hat eine ereignisgetriebene Architektur, die eine dedizierte Esper CEP-Engine pro Strategie nutzt. Eine Strategie kann eine beliebige Anzahl von SQL-ähnlichen Esper-Anweisungen für die zeitbasierte Marktdatenanalyse und Signalerzeugung bereitstellen. Esper-Anweisungen können beliebig viele prozedurale Aktionen aufrufen, z. B. die Platzierung einer Position oder die Schließung einer Position, die in Java codiert sind. Die Kombination von Esper-Anweisungen und Java-Code bietet einen best-of-both-worlds-Ansatz. Zur Verwaltung und Überwachung des Systems existieren vier verschiedene GUI-Clients. Das neue AlgoTrader HTML5 Frontend bietet handelsbezogene Funktionen wie Charting, Order, Positionen amp Marktdaten. Der AlgoTrader Eclipse-Client ist die Standard-Strategieentwicklungsumgebung. Der EsperHQ-Client verwaltet den Esper CEP-Motor. Der Grails-Client ist ein generischer Client für die Referenzdatenverwaltung. Für produktive Installationen und Bereitstellung verwendet AlgoTrader Docker. Einführung AlgoTrader 3.0 8211 Der leistungsstärkste AlgoTrader Yet Apr-07-2016 AlgoTrader 3.0 wurde veröffentlicht. Diese Version enthält das neue HTML5 Frontend, One-Click-Implementierung mit Docker, drei neue Execution-Algorithmen und einen Excel-basierten Back-Test-Bericht AlgoTrader One-Click-Installation von Docker vorstellen Mar-15-2016 AlgoTrader 3.0 führt One-Click-Tradingstrategie-Installationen ein Docker BILANZ Artikel zum Thema Hochfrequenzhandel Feb-02-2016 AlgoTrader GmbH Geschäftsführer Andy Flury im Interview mit der BILANZ zum Thema Hochfrequenzhandel AlgoTrader Lizenzbestimmungen DIE BEDINGUNGEN DIESER ENDBENUTZERLIZENZVEREINBARUNG (8220AGREEMENT8221) BENUTZEN SIE DIE NUTZUNG DER SOFTWARE, WENN SIE UND DIE LIZENZVERTRAG HABEN EINE SEPARATE SCHRIFTLICHE LIZENZVEREINBARUNG FÜR DIE VERWENDUNG DER SOFTWARE AUSGEFÜHRT. Der Lizenzgeber ist bereit, die Software nur für Sie zu lizenzieren, wenn Sie alle Bedingungen dieser Vereinbarung akzeptieren. Mit der Unterzeichnung dieses Vertrags oder durch Herunterladen, Installieren oder Verwenden der Software haben Sie angegeben, dass Sie diese Vereinbarung verstehen und alle ihre Bedingungen akzeptieren. Wenn Sie nicht alle Bedingungen dieser Vereinbarung akzeptieren, ist der Lizenzgeber nicht bereit, die Software für Sie zu lizenzieren, und Sie dürfen die Software nicht herunterladen, installieren oder verwenden. 1. GRANT DER LIZENZ a. Evaluation Verwendung und Entwicklung Use License. Der Lizenzgeber gewährt Ihnen eine persönliche, nicht exklusive, nicht übertragbare Lizenz, ohne das Recht, die Software für die Dauer dieses Vertrages ausschließlich für die Nutzung der Software zu nutzen Evaluation Verwendung und Entwicklung Verwendung. Drittanbieter-Softwareprodukte oder - module, die vom Lizenzgeber bereitgestellt werden, dürfen ausschließlich mit der Software verwendet werden und unterliegen der Zustimmung zu den von Dritten zur Verfügung gestellten Bedingungen. Wenn die Lizenz endet, müssen Sie die Software nicht mehr verwenden und alle Instanzen deinstallieren. Alle Rechte, die Ihnen hierin nicht ausdrücklich eingeräumt werden, bleiben vom Lizenzgeber vorbehalten. Der Entwickler darf die Software oder jegliche abgeleitete Arbeit (einschließlich der eigenen internen Geschäftszwecke von Developer8217) nicht kommerziell nutzen. Das Kopieren und Weiterverteilen der Software - oder Entwickleranwendung in irgendeiner Form an Ihre direkten oder indirekten Kunden ist verboten. B. Produktion Nutzungslizenz. Vorbehaltlich der Einhaltung der Bedingungen dieses Vertrages einschließlich der Zahlung der anwendbaren Lizenzgebühr gewährt Ihnen der Lizenzgeber für die Dauer dieses Vertrags eine nicht ausschließliche und nicht übertragbare Lizenz ohne das Recht zur Unterlizenzierung für die Dauer dieses Vertrags : (A) die Software ausschließlich für eigene interne geschäftliche Zwecke zu verwenden und zu reproduzieren (8220Production Use8221) und (b) eine angemessene Anzahl von Kopien der Software nur für Sicherungszwecke zu erstellen. Diese Lizenz beschränkt sich auf die spezifische Anzahl von CPUs (falls von der CPU lizenziert) oder Instanzen von Java Virtual Machines (falls Lizenzen von Virtual Machine), für die Sie eine Lizenzgebühr bezahlt haben. Die Verwendung der Software auf einer größeren Anzahl von CPUs oder Instanzen von Java Virtual Machines erfordert die Zahlung einer zusätzlichen Lizenzgebühr. Von dem Lizenzgeber gelieferte Softwareprodukte oder Module des Drittanbieters dürfen ausschließlich mit der Software verwendet werden. C. Keine anderen Rechte. Ihre Rechte an der Software und die Nutzung der Software beschränken sich auf die in diesem Abschnitt ausdrücklich gewährten Rechte. Sie dürfen die Software nicht weiter nutzen. Mit Ausnahme der in diesem Abschnitt ausdrücklich genehmigten Lizenz gewährt Ihnen der Lizenzgeber keine weiteren Rechte oder Lizenzen, implizit, estoppel oder anderweitig. ALLE RECHTE, DIE NICHT AUSDRÜCKLICH GEWÄHRT WERDEN, SIND DURCH DEN LIZENZNEHMER ODER SEINEN LIEFERANTEN VORBEHALTEN. 2. EINSCHRÄNKUNGEN Soweit nicht ausdrücklich in Ziffer 1 vorgesehen, sind Sie nicht berechtigt: (a) zu modifizieren, zu übersetzen, zu disassemblieren, abgeleitete Werke der Software zu erstellen oder die Software zu kopieren, (b) zu vermieten, zu verleihen, zu übertragen, Software in irgendeiner Form an eine Person (c) die Bereitstellung, Offenlegung, Weitergabe oder Bereitstellung oder Nutzung der Software durch Dritte (d) Veröffentlichung von Benchmark - oder Leistungstests, die auf der Software oder einem Teil davon oder ( E) entfernen Sie alle proprietären Hinweise, Etiketten oder Markierungen auf der Software. Sie werden die Software nicht auf Einzelpersonen oder auf OEM-Basis (Original Equipment Manufacturer) verteilen. 3. EIGENTUM Die zwischen den Parteien vereinbarte Software ist und bleibt das alleinige und ausschließliche Eigentum des Lizenzgebers, einschließlich aller Rechte an geistigem Eigentum. ein. Für den Fall, dass Sie die Software unter der Lizenz gemäß Abschnitt 1 (a) verwenden, bleibt dieses Abkommen für die Dauer der Evaluierungs - oder Entwicklungsperiode gültig. B. Für den Fall, dass Sie die Software unter der Lizenz gemäß Abschnitt 1 (b) verwenden, bleibt diese Vereinbarung in Kraft entweder (a) für eine Laufzeit von einem Jahr, wenn sie als Jahresabonnement erworben wird oder (b) unbefristete Lizenz. Eine Jahresabonnementlizenz verlängert sich automatisch um ein Jahr, wenn sie nicht mit einem Monat vorher gekündigt wird. Diese Vereinbarung wird ohne vorherige Ankündigung automatisch gekündigt, wenn Sie eine Bestimmung dieser Vereinbarung verletzen. Bei Kündigung müssen Sie die Software unverzüglich verlassen und alle Kopien der Software in Ihrem Besitz oder Ihrer Kontrolle zerstören. 5. UNTERSTÜTZUNGSDIENSTLEISTUNGEN Wenn Sie diese Lizenz einschließlich Support-Services erworben haben, umfassen diese Wartungsfreigaben (Updates und Upgrades), telefonische Unterstützung sowie E-Mail - oder Web-Support. ein. Der Lizenzgeber wird kommerziell vernünftige Anstrengungen unternehmen, um ein Update bereitzustellen, das entworfen ist, um einen gemeldeten Fehler zu lösen oder zu umgehen. Wenn ein solcher Fehler in einer Wartungsfreigabe behoben wurde, muss der Lizenznehmer die entsprechende Wartungsfreigabe installieren und implementieren, andernfalls kann die Aktualisierung in Form eines vorläufigen Fixes, einer Prozedur oder einer Routine bereitgestellt werden, bis eine Wartungsfreigabe mit dem permanenten Update verwendet wird ist verfügbar. B. Während der Lizenzvertragslaufzeit stellt der Lizenzgeber dem Lizenznehmer Wartungsfreigaben zur Verfügung, wenn der Lizenzgeber diese Wartungsfreigaben im Allgemeinen für seine Kunden verfügbar macht. Wenn eine Frage auftaucht, ob ein Produktangebot ein Upgrade oder ein neues Produkt oder eine neue Funktion ist, ist die Meinung von Licensor8217 maßgebend, vorausgesetzt der Lizenzgeber behandelt das Produktangebot als neues Produkt oder Feature für seine Endkunden. C. Die Licensor8217s Verpflichtung Support Services zur Verfügung zu stellen konditioniert auf die folgenden: (a) Der Lizenznehmer macht angemessene Anstrengungen, die Fehler nach Rücksprache mit dem Lizenzgeber (b) der Lizenznehmer zur Korrektur der Lizenzgeber mit ausreichenden Informationen und Ressourcen zur Verfügung stellt, die Fehler entweder an der Licensor8217s Website zu korrigieren oder per Remote-Zugriff auf Licensee8217s Website sowie Zugang zum Personal, Hardware und zusätzliche Software bei der Entdeckung der Fehler beteiligt (c) der Lizenznehmer zeitnah installiert alle Wartungsversionen und (d) der Lizenznehmer beschafft, installiert und wartet alle Geräte, die Kommunikation Schnittstellen und sonstiger Hardware, die für den Betrieb des Produkts erforderlich sind. D. Der Lizenzgeber ist nicht verpflichtet, Support Services in den folgenden Situationen zur Verfügung zu stellen: (a) das Produkt geändert wurde, verändert oder beschädigt werden (es sei denn, unter der direkten Aufsicht des Lizenzgeber) (b) der Fehler durch Licensee8217s Fahrlässigkeit verursacht wird, Hardware-Defekt (C) der Fehler durch Software verursacht wird, die nicht durch den Lizenzgeber lizenziert wurde (d) Der Lizenznehmer hat keine Wartungsfreigabe (en) installiert und implementiert, sodass das Produkt eine Version ist, die von der Lizenzgeber oder (e) Der Lizenznehmer hat die Lizenzgebühren oder Support Services Gebühren nicht bezahlt. Darüber hinaus ist der Lizenzgeber nicht verpflichtet, Support-Services für Software-Code von dem Client selbst auf der Grundlage des Produkts geschrieben zu stellen. D. h. Der Lizenzgeber behält sich das Recht vor, die Support Services einzustellen, falls der Lizenzgeber nach alleinigem Ermessen feststellt, dass die fortgesetzte Unterstützung eines Produkts nicht mehr wirtschaftlich praktikabel ist. Der Lizenzgeber wird dem Lizenznehmer mindestens drei (3) Monate vor der schriftlichen Kündigung einer solchen Unterbrechung der Support Services gewähren und alle nicht aufgelaufenen Support Services Gebühren zurückerstatten, die der Lizenznehmer in Bezug auf das betroffene Produkt vorausbezahlt haben kann. Der Lizenzgeber ist nicht verpflichtet, jegliche Version des Produkts oder der zugrundeliegenden Plattform von Drittanbietern (einschließlich aber nicht beschränkt auf Software, JVM, Betriebssystem oder Hardware), für die das Produkt unterstützt wird, zu unterstützen oder zu unterhalten, außer (i) der jeweils aktuellen Version des Produkt und zugrunde liegende Plattform von Drittanbietern und (ii) die beiden unmittelbar vorangegangenen Versionen des Produkts und des Betriebssystems für einen Zeitraum von sechs (6) Monaten nach ihrer ersten Überlassung. Der Lizenzgeber behält sich das Recht vor, die Leistung der Support Services auszusetzen, wenn der Lizenznehmer innerhalb von dreißig (30) Tagen nach Fälligkeit dieses Betrags keinen Betrag zahlt, der dem Lizenzgeber gemäß dem Vertrag zu zahlen ist. 6. GARANTIE a. Der Lizenzgeber garantiert, dass die Software in der Lage ist, in Übereinstimmung mit den funktionalen Spezifikationen in der zutreffenden Dokumentation für einen Zeitraum von 90 Tagen nach dem Datum, an dem Sie die Software installieren, in allen wesentlichen Belangen durchzuführen. Im Falle einer Verletzung dieser Gewährleistung hat der Lizenzgeber nach eigenem Ermessen die Software zu korrigieren oder die Software kostenlos zu ersetzen. Das Vorstehende ist Ihre alleinige und ausschließliche Rechtsbehelfe und die Licensor8217s alleinige Haftung für einen Verstoß gegen diese Garantien. Die vorstehend beschriebenen Garantien erfolgen ausschließlich für Sie und für Sie. Die Garantien gelten nur, wenn (a) die Software ordnungsgemäß installiert und verwendet wurde und die Bedienungsanleitung (c) die neuesten Aktualisierungen auf die Software angewendet wurde und (c) keine Änderungen, Ergänzungen oder Änderungen vorgenommen wurden Von anderen Personen als dem Lizenzgeber oder dem bevollmächtigten Vertreter des Lizenzgebers vorgenommen worden ist. 7. HAFTUNGSAUSSCHLUSS Sofern nicht gemäß § 6 VORGESEHEN (a), DER LIZENZGEBER AUSDRÜCKLICH ALLE GARANTIEN, AUSDRÜCKLICH ODER IMPLIZIT, EINSCHLIESSLICH DER IMPLIZIERTEN GARANTIEN DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NONINFRINGEMENT UND GARANTIEN IN DIE SICH VON austeilt NATÜRLICH ODER NUTZUNG DES HANDELS. KEINE RATSCHLÄGE ODER INFORMATIONEN, OB EINE MÜNDLICHE ODER SCHRIFTLICHE HINWEISE, DIE VON DEM LIZENZNEHMER ODER ANDEREN ANDEREN INHALTEN WERDEN, WIRD JEDE GARANTIE, DIE NICHT AUSDRÜCKLICH IN DIESER VEREINBARUNG GESETZT WURDEN. Der Lizenzgeber übernimmt keine Gewähr, dass das Softwareprodukt Ihren Anforderungen entspricht oder unter Ihren speziellen Nutzungsbedingungen funktioniert. Der Lizenzgeber übernimmt keine Gewähr dafür, dass der Betrieb des Softwareprodukts sicher, fehlerfrei oder unterbrechungsfrei ist. SIE MÜSSEN BESTIMMEN, WENN DAS SOFTWAREPRODUKT IHRE ANFORDERUNGEN FÜR SICHERHEIT UND UNUNTERBRECHUNGSFÄHIGKEIT ENTHÄLT. SIE BEHALTEN SOLLTE VERANTWORTLICHKEIT UND ALLE HAFTUNG FÜR JEGLICHE VERLUSTE, DIE DURCH FEHLER DES SOFTWAREPRODUKTS ZUR ERFÜLLUNG IHRER ANFORDERUNGEN ERHÖHEN. DER LIZENZGEBER NICHT, unter keinen Umständen, BE Verantwortung oder Haftung für den Verlust von Daten auf jedem Computer ODER INFORMATIONEN Speichergerät. 8. HAFTUNGSAUSSCHLUSS DIE LICENSOR8217S HAFTUNG FÜR SIE VON ALLE KLAGE und unter allen THEORIES Haftungs WERDEN begrenzt und wird die Lizenzgebühr von Ihnen an die LIZENZGEBER FÜR DIE SOFTWARE BEZAHLT NICHT ÜBERSCHREITEN. IN KEINEM FALL WIRD DIE LIZENZ HAFTUNG FÜR BESONDERE, ZUFÄLLIGE, EXEMPLARISCHE, STRAF oder Folgeschäden (einschließlich entgangener Nutzung, Daten, GESCHÄFT ODER GEWINNE) ODER FÜR DIE KOSTEN DER ERSATZPRODUKTEN BESCHAFFUNG AUS ODER IN VERBINDUNG MIT DIESER VEREINBARUNG ODER DER VERWENDUNG ODER DER LEISTUNG DER SOFTWARE, OB EINE SOLCHE HAFTUNG ENTSTEHT VON ANSPRÜCHEN AUF DER GRUNDLAGE VERTRAG, GARANTIE, SCHULD (EINSCHLIESSLICH NACHLÄSSIGKEIT), dessen Vertreter oder nicht und OB DIE LIZENZGEBER ÜBER DIE MÖGLICHKEIT SOLCHER VERLUSTE WURDE ODER BESCHÄDIGUNG. Die vorgenannten Beschränkungen bestehen und GILT AUCH WENN EIN RECHTSMITTELS IN DIESER VEREINBARUNG angegeben wird IHREN ZWECK HABEN VERFEHLT. FALLS die zuständige Gerichtsbarkeit DIE FÄHIGKEIT LICENSOR8217S LIMITS ALLE GARANTIEN ZU LEHNEN WIRD DIESE HAFTUNGSAUSSCHLUSS GILT Bis zur äußersten Grenze zulässig ist. 9. ALLGEMEINES Sollte eine Bestimmung dieses Vertrages für ungültig oder undurchsetzbar gehalten werden, bleibt der Rest dieses Vertrages in Kraft und Wirkung. Soweit ausdrückliche oder stillschweigende Beschränkungen nach geltendem Recht nicht zulässig sind, bleiben diese ausdrücklichen oder stillschweigenden Beschränkungen in dem durch diese anwendbaren Gesetze maximal zulässigen Umfang gültig. Diese Vereinbarung ist die vollständige und ausschließliche Vereinbarung zwischen den Parteien in Bezug auf den Gegenstand dieser Vereinbarung und ersetzt und ersetzt alle früheren Vereinbarungen, Mitteilungen und Vereinbarungen (sowohl schriftlich als auch mündlich) zu diesem Thema. Die Vertragspartner sind unabhängige Vertragspartner und haben weder die Befugnis, den anderen Vertragspartner zu binden oder anderweitige Verpflichtungen einzugehen. Keiner der beiden Parteien, die ihre Rechte aus diesem Abkommen ausüben oder vollstrecken, wird als Verzicht auf diese Rechte fungieren. Alle in einer Bestellung oder einem anderen Bestelldokument enthaltenen Bedingungen, die mit den Bedingungen dieses Vertrages unvereinbar oder ergänzend sind, werden vom Lizenzgeber zurückgewiesen und gelten als null und nicht mehr. Diese Vereinbarung wird in Übereinstimmung mit den Gesetzen der Schweiz interpretiert und ausgelegt, und zwar ohne Rücksicht auf Kollisionsnormen. Die Parteien vereinbaren hiermit die ausschließliche Zuständigkeit und Gerichtsstand der in Zürich, Schweiz ansässigen Gerichte zur Beilegung von Streitigkeiten aus oder im Zusammenhang mit diesem Vertrag. 10. BEGRIFFSBESTIMMUNGEN 8220Beurteilung Use8221 bedeutet, dass die Software ausschließlich zur Bewertung und Erprobung für neue Anwendungen, die für Ihre Produktion bestimmt sind, verwendet wird. 8220Produktion Use8221 bedeutet, dass die Software nur für interne geschäftliche Zwecke verwendet wird. Die Verwendung des Produkts umfasst nicht das Recht, die Software für die Unterlizenzierung, den Wiederverkauf oder die Verbreitung zu vervielfältigen, einschließlich, ohne darauf beschränkt zu sein, die Nutzung der Software als Teil eines ASP-, VAR-, OEM-, Distributor - oder Wiederverkäufervertrages. 8220Software8221 bedeutet die Software Licensor8217s und alle ihre Komponenten, Dokumentation und Beispiele, die vom Lizenzgeber enthalten sind. 8220Error8221 bedeutet entweder (a) ein Versagen des Produkts, mit den in den Unterlagen enthaltenen Spezifikationen übereinzustimmen, was dazu führt, dass das Produkt nicht verwendet oder beschränkt werden kann, und (b) ein Problem, das neue Verfahren und Klarstellungen erfordert , Zusätzliche Informationen und Anfragen für Produktverbesserungen. 8220Maintenance Release8221 bedeutet Upgrades und Updates für das Produkt, das in Abschnitt 5 8220Update8221 bedeutet gemäß der Definition in den Standard-Support-Services für Lizenznehmer zur Verfügung gestellt werden, entweder eine Software-Änderung oder Ergänzung, dass, wenn an dem Produkt oder hinzugefügt, wird der Fehler korrigiert oder ein Verfahren oder Routine, die, wenn sie im regulären Betrieb des Produkts beobachtet werden, die praktische nachteilige Wirkung des Fehlers auf den Lizenznehmer beseitigen. 8220Upgrade8221 bedeutet eine Überarbeitung des Produkts, das der Lizenzgeber seinen Endbenutzern in der Regel während des Support Services Term veröffentlicht, um neue Funktionen hinzuzufügen oder die Kapazität des Produkts zu erhöhen. Upgrade umfasst nicht die Freigabe eines neuen Produkts oder hinzugefügte Features, für die es eine separate charge. Architecture eines Interactive Brokers Based Trading System Diese Seite behandelt die Interactive Brokers Java API für Software-Modell gehandelt Handel. Interactive Brokers (IB) scheint attraktiv, weil sie robuste Unterstützung für Java zu haben scheinen. Von Anfang an hat IB ihre Handelsschnittstelle entwickelt, um kundenspezifische Software-Handelsplattformen zu unterstützen. Sie sind zu einem beträchtlichen Vermittler gewachsen, der ein bedeutendes Handelsvolumen stützt. Für ausreichend finanzierte Konten unterstützen sie auch 4 bis 1 Hebelwirkung. Interactive Brokers Professional Services Support Ihre professionellen Dienstleistungen Gebührenfreie Support-Linie ist: 866-694-2757 Interactive Brokers API Benutzerhandbuch Mindestkontogröße Die Börsen (NASDAQ und NYSE) erfordern ein Mindestguthaben von 25.000 (US) für ein Konto, das Computer unterstützen kann Handel und mehrere Transaktionen pro Tag. Wenn dieser Saldo nicht gepflegt wird, müssen die Börsen den Handel beenden. In der Praxis bedeutet dies, dass Computer-Handel erfordert mindestens 35K (US) und wahrscheinlich etwas näher an 50K als Minimum. Die Anbindung an IB IB unterstützt den Handel über das Internet. Dies bedeutet, dass Handelstransaktionen Opfer von Internet-Konnektivität und Routing sein können. Durch Speakeasy (Ians ISP) dauert eine Rundreisepakettransaktion zu IB etwa 93 ms. Beachten Sie, dass dies die Paketlatenz ist. Mehrere Pakettransaktionen können hervorragend sein. Aber die Basislatenz über meine ADSL-Verbindung bedeutet, dass eine Handelsplattform, die auf meinem Linux-System läuft, maximal 50 Ordertransaktionen eine Sekunde ausgeben kann, die das IB-Maximum für die Java-API ist. Ich habe nur eine 1,2 Mbit ADSL-Leitung, so könnte die Beschränkung auf meinem Ende sein. Es ist nicht klar, was die Beschränkung auf der IB, wenn es eine große Pfeife auf dem Trading-System Seite war. Doch unabhängig davon, wie groß das Rohr, Routing über das Internet ist, durch Design, nicht-deterministisch. IB unterstützt auch dedizierte T1 Linien Unterstützung, entweder durch Radianz oder Savvis. BT Radianz ist der führende Anbieter für sichere, zuverlässige und skalierbare Konnektivität zur globalen Finanzwelt. Die gemeinsame Marktinfrastruktur des Unternehmens ist eine neutrale Plattform, die schlüsselfertigen Zugang zu einer breiten Palette von Pre-Trade-, Trade - und Post-Trade-Anwendungen von führenden Content - und Dienstanbietern über die Kette der geradlinigen Verarbeitung (STP) bietet. SAVVIS, Inc. (NASDAQ: SVVS) ist ein globaler IT-Dienstleister, der die Branche bei der Bereitstellung sicherer, zuverlässiger und skalierbarer Hosting-, Netzwerk - und Anwendungsdienste unterstützt. Der strategische Ansatz von SAVVIS vereint die Nutzung der Virtualisierungstechnologie, eines Dienstleistungsmodells sowie automatisierte Software-Management - und Provisioning-Systeme. SAVVIS-Lösungen ermöglichen es dem Kunden, sich auf sein Kerngeschäft zu konzentrieren, während SAVVIS die Qualität seiner IT-Infrastruktur sicherstellt. Mit einer IT-Services-Plattform, die sich auf 45 Länder erstreckt, gehört SAVVIS zu den weltweit größten Anbietern von IP-Computing-Diensten. IB unterstützt auch eine direkt geleaste T1-Linie in das IB-Rechenzentrum. IB-Anschlussmöglichkeiten: Transaktionsrate IB Transaktion entweder durch die TWS (Handels-Software), die API (in diesem Fall Java) oder durch CTCI FIX. Ein einzelnes Konto (Benutzername und Passwort) ist auf 50 Nachrichten pro Sekunde beschränkt (siehe Seite). Die Beziehung zwischen Meldungen und Auftragsvorgängen ist nicht klar. Der IBGateway-Client ermöglicht FIX CTCI-Verbindungen zu IB über das Internet. Es ist eine Software, die als Brücke zwischen Ihrem FIX-Motor und IB fungiert. Mit der CTCI FIX-Schnittstelle beträgt die Grenze 150 Meldungen pro Sekunde. Dies erfordert eine FIX-Engine (normalerweise als Client bezeichnet), um die API für das FIX-Protokoll bereitzustellen. Das FIX-Protokoll scheint äußerst komplex und anscheinend nicht jedes Broker-System oder Exchange unterstützt es in genau der gleichen Weise. Die Implementierung einer Client-API für dieses Protokoll wäre zeitaufwändig und teuer. Glücklicherweise können Java-FIX-Motoren aus verschiedenen Quellen erworben werden, einschließlich: IB API-basierte Anwendungen Für die Verbindung zu IB muss die TWS-Anwendung (Handels-Workstation) zuerst ausgeführt werden. Eine Java-API-Anwendung kann eine Verbindung zu einem TWS-Prozess herstellen. Die Verbindung erfolgt über eine Netzwerkverbindung. Wenn die TWS und die API-Anwendung auf demselben System ausgeführt wird, wird diese Netzwerkverbindung über localhost erfolgen. Dies ist ziemlich umständlich, da die Ausführung von Handelsprogrammen erfordert, dass TWS zuerst ausgeführt wird, um eine Sitzung (über Benutzername und Kennwort) herzustellen. IB Diskussionsforen Unabhängige Brokers gehostet Diskussionsrunde. Dieses Board ist bemerkenswert ehrlich (z. B. IB scheint nicht zu bearbeiten, die Warzen von den Benutzern berichtet). Die IB Message Board kann mit der Benutzer-ID und Passwort. Yahoo IB Message Board IB Tick Data Feed Die IB API unterstützt einen Tick-Daten-Feed. Jeder Bestand muss angefordert werden und es gibt eine einzige Schnittstelle in der API, die die Tickdaten empfängt. Dieser Datenstrom muss für jeden Bestandteil in einen Strom demultiplexiert werden. IB bietet keinen echten Marktdaten-Feed, sondern einen konsolidierten Daten-Feed mit etwa einem Wert pro 250 ms. Für viele Handelsanwendungen reicht das aus. Bessere Datenfeeds sind verfügbar. Aber sie sind teuer, zumindest für eine professionelle Qualität zu ernähren.
Comments
Post a Comment