Friday, 14 April 2017

Building Trading System Java

W el c o m e Willkommen im Heim des offenen Java-Handelssystems Das Open Java Trading System (OJTS) ist eine gemeinsame Infrastruktur zur Entwicklung von Aktienhandels - systemen. Es besteht aus vier Teilen: das Sammeln von Rohdaten über das Internet die Erkennung von Handelssignalen ein Visualisierungsmodul und Module für die Verbindung zu den programmatischen Schnittstellen von Handelsplattformen wie Banken. Ziel der Projekte ist die Bereitstellung einer eigenständigen, reinen Java (plattformunabhängigen) gemeinsamen Infrastruktur für Entwickler von Handelssystemen. Einige der Aspekte, die behandelt werden sollten, sind die Bereitstellung eines gemeinsamen SQL92-konformen Datenbankschemas für die Speicherung von Finanzdaten, gemeinsamen Java-Schnittstellen für den Austausch von Daten zwischen verschiedenen Modulen, die Visualisierung von Rohdaten und Handelssignalen sowie einige andere gemeinsame Aspekte, die benötigt werden, um zu schaffen Ein abschließendes Handelssystem. Wegen meines Jobs und meiner Familie finde ich nicht die Zeit, OJTS länger zu verbessern. Ich fahre fort, den Verbindungen Abschnitt unten zu aktualisieren, der Sie zu den aktiveren Java-Quellprojekten in diesem Bereich, aber führt. In der Tat als Folge meines Interesses an der Dynamik der Aktienmärkte begann ich eine Reise in die tieferen Einzelheiten der Volkswirtschaft, um die Wechselkurse zu verstehen. Dieses Thema führt mich schließlich zu einem tieferen Studium des Geldes an sich als der metrischen Einheit, die wir in der Wirtschaft verwenden, um Wert, Erfolg oder Nutzen zu messen. Dieses Thema erwies sich als äußerst interessant, aber zugleich war es sehr schwer, Informationen darüber zu finden, wie unser Geldsystem funktioniert. Gehen Sie herum und fragen Sie, woher das Geld kommt, wer es schafft und was seinen Wert bestimmt. Sie werden feststellen, dass auch die Menschen, die einen Master-Abschluss oder PhD. In der Ökonomie nicht wissen, diese Details. Oh, ja, sie werden in einigen kryptischen Fachbegriffe beantworten, aber sie werden nicht in der Lage sein, ein einfaches Diagramm zu zeichnen, das den Prozess umreißt. H. G. Wells wird berichtet, zu haben gesagt haben: Von Währung zu schreiben ist allgemein als eine anstößige, ja fast eine unanständige Praxis anerkannt. Die Redakteure werden den Schriftsteller fast weinerlich bitten, nicht über Geld zu schreiben, nicht weil es ein uninteressantes Thema ist, sondern weil es immer ein zutiefst beunruhigend war. Ich schlage vor, jede Person, die in einer demokratischen Gesellschaft zu lesen, über dieses Thema. Es beeinflusst unser Leben jeden Tag in einem Ausmaß, das nicht übertrieben werden kann Meiner Meinung nach sollte jeder Bürger eines demokratischen Landes auf dieser Welt wissen, wo unser Geld herkommt. Höchstwahrscheinlich kamen Sie zu dieser Web site, um nach Werkzeugen zu suchen, die Ihnen helfen, Ihre Geldmenge zu erhöhen. Um zu verstehen, die metrische Einheit Geld (egal ob Dollar oder Euro) wird ein wichtiger Bestandteil in Ihrem Toolkit für Geld zu verdienen. Wenn Sie wenig Zeit haben und nur sich leisten können, ein einzelnes Buch über dieses Thema zu lesen, dann schlage ich vor, dass Sie Reichtum, virtuellen Reichtum und Schuld durch Frederick Soddy lesen. Ich konnte eine gebrauchte Kopie über Amazon für 23.48 kaufen, aber es gibt auch eine Online-Version. Sie benötigen das DjVu-Plugin, um es zu lesen. Dieses Buch wurde ursprünglich im Jahr 1929 veröffentlicht, aber noch beschreibt die tatsächlichen Fakten sehr gut. Auch wenn ich nicht mit allen Schlußfolgerungen von Frederick Soddy einverstanden bin, ist seine Arbeit erfreulich erregend und führt Sie dazu, die richtigen Fragen zu stellen. N e w s Releases, Bugfixes und aktualisierte Dokumentation Ankündigung der Aussetzung der aktiven Entwicklung und Hinzufügung von Informationen über unsere Geldsysteme (Dollar / Euro). Hinzugefügt einen Links Abschnitt zu anderen interessanten Java-Trading-System-Projekte. Ich untersuche, wie OJTS kompatibler zu anderen Java-Trading-System-Bemühungen zu machen. Investition und Handelssystem Dokumentation Projekt auf ITSdoc. org gefunden werden. Auf der ITSdoc. org steht ein neues Wiki zur Verfügung, das sich auf die Verteilung von Wissen im Bereich der Investitions - und Handelssysteme konzentriert. Die Idee hinter ITSdoc. org ist, eine Kooperationsplattform ähnlich wikipedia zu haben, die der Gemeinschaft hilft, Wissen zu teilen. OpenJavaTradingSystem v0.13 veröffentlicht. Gestern habe ich die Version 0.13 der OpenJavaTradingSystem-Bibliothek veröffentlicht. Zu den neuen Features gehören: Datenabruf für Aktien, Fonds und Währungen von OnVista. Umsetzung der Währungsumrechnung und - umwandlungen. Portfolios werden implementiert und Sie können mit Portfolios genauso arbeiten wie mit einzelnen Sicherheitspapieren. Ein allgemeiner Rahmen für die Anwendung von Algorithmen auf Börsen-Zeitreihen wurde hinzugefügt. Wechselnd von der interaktiven Shell SISC / Scheme zu ABCL / CommonLisp und seinem Editor namens J. Hinzufügen eines allgemeinen Daten-Caching-Mechanismus zum Zwischenspeichern von Daten, die bereits über das Web im Dateisystem abgerufen wurden. Plus viele weitere kleinere Verbesserungen Wenn Sie sich für diese neue Version interessieren, sollten Sie am Quickstart / screenshot Abschnitt beginnen. Das Handbuch ist noch nicht aktualisiert, aber es kann Ihnen dennoch einige wertvolle Hintergrundinformationen geben, wenn Sie die Bibliothek in Ihrem Projekt verwenden möchten. Die Dokumentation sollte bald aktualisiert werden. Zurzeit gibt es nicht viel Entwicklung getan, weil ich meine Kenntnisse über bayesische Netzwerke zu aktualisieren. Siehe zum Beispiel die Liste der Bücher auf meiner Website. Zwei interessante Projekte sind WEKA und BNJ. Bald werde ich die Entwicklung fortsetzen und ich werde damit beginnen, die erste Intelligenz in das System zu integrieren. Heute habe ich die erste Version in den Dateien Abschnitt des Sourceforge Download-Bereich. Außerdem habe ich das Handbuch aktualisiert, um die interaktive Nutzung des Projekts über die SISC-Schema-Ebene zu dokumentieren. Für die ungeduldigen hier ist ein Quickstart / Screenshot Abschnitt, um Sie zu gehen. D o c u m e n t a t i o n Dokumente, die die Einbauten des Projekts beschreiben. Java Data Objects and Interface Dokumentation gtgtHTML gtgtPDF Verwendungsdokumentation gtgtHTML gtgtPDF Investition und Handelssystem Dokumentation Projekt gtgtITSdoc. org T echnologie Third Party Building Blocks, die in diesem Projekt verwendet werden HSQL Database Engine (Lizenz: hsqldblic. txt) Die HSQLDB ist das Datenbankmodul, das mit der So dass Sie sofort mit dem OJTS arbeiten können, ohne eine Datenbank von Drittanbietern installieren zu müssen. Aber wenn Sie planen, eine andere SQL92-kompatible Datenbank zu verwenden, dann ist dies eine Konfigurationsoption. Castor (Lizenz: Die Exolab-Lizenz) Castor ist ein Open-Source-Datenbindungsrahmen für Javatm. Sein kürzester Pfad zwischen Java-Objekten, XML-Dokumenten und relationalen Tabellen. Castor bietet Java-to-XML-Bindung, Java-to-SQL-Persistenz und vieles mehr. Castor Doclet (Lizenz: GNU LGPL v2.1) Java Doclet, um sowohl Mapping-und DDL-Dateien für Castor JDO und Castor XML zu generieren. TestMaker (Lizenz: TestMaker Open-Source-Lizenz) Aus dem TestMaker-Projekt wird nur die Implementierung der Protokolle wie HTTP oder HTTPS verwendet, um Daten aus dem Web zu sammeln. JCookie (Lizenz: GNU LGPL v2.1) Die jCookie-Bibliothek ist erforderlich, damit die TestMaker-Bibliotheken funktionieren. Htmlparser (Lizenz: GNU LGPL v2.1) Die htmlparser-Bibliothek wird verwendet, um die Daten aus den Web-Ressourcen zu extrahieren. ABCL / CommonLisp (Lizenz: GNU GPL v2) Mit ABCL (Armed Bear Common Lisp) wird das algorithmische Herz des Projekts in der Programmiersprache ANSI Common Lisp implementiert. JFreeChart (Lizenz: GNU LGPL v2.1) JFreeChart dient der Visualisierung von Finanzdaten als Charts. JSci (Lizenz: GNU LGPL v2.1) JSci - Eine wissenschaftliche API für Java. Joda Time (Lizenz: Eigene OpenSource-Lizenz) Joda Time ersetzt die ursprünglichen JDK-Datums - und Zeitklassen. L i n k s Links zu anderen Projekten Die JavaTraders Google-Gruppe kann der beste Eintrag für Sie sein, um sich über andere Java-basierte Handelssysteme und Tools zu informieren. L izenz Nutzungsbestimmungen Der Code des Projekts ist unter den Bedingungen der LGPL lizenziert und alle Unterlagen, die Sie in diesem Projekt finden, sind unter den Bedingungen der FDL. Trading Systems: Constructing A System 13 lizenziert Grundlegende Komponenten von Handelssystemen, die Kriterien, die sie erfüllen müssen, und einige der vielen empirischen Entscheidungen, die ein Systemdesigner treffen muss. In diesem Abschnitt werden wir untersuchen, den Prozess des Aufbaus eines Handelssystems, die Überlegungen, die gemacht werden müssen, und einige wichtige Punkte zu erinnern. Der Six-Step-Systemaufbau 1. Setup - Um mit dem Aufbau eines Handelssystems zu beginnen, benötigen Sie mehrere Dinge: Data - Weil der Systemdesigner umfangreiche Backtests durchführen muss. Vergangenheit ist wichtig für den Aufbau eines Handelssystems. Solche Daten können in die Handelssystem-Entwicklungssoftware oder als separater Daten-Feed integriert werden. Live-Daten werden oft für eine monatliche Gebühr zur Verfügung gestellt, während ältere Daten kostenlos erhalten werden können. Software - Obwohl es möglich ist, ein Handelssystem ohne Software zu entwickeln, ist es höchst unpraktisch. Seit den späten 90er Jahren ist Software ein integraler Bestandteil des Baus von Handelssystemen. Einige allgemeine Merkmale ermöglichen dem Händler, die folgenden Schritte auszuführen: Automatische Platzierung von Trades - Dies erfordert oft eine Genehmigung vom Broker s Ende, da eine ständige Verbindung zwischen Ihrer Software und dem Brokerage vorhanden sein muss. Trades müssen sofort und zu genauen Preisen ausgeführt werden, um die Konformität zu gewährleisten. Um Ihre Software Ort Trades für Sie, alles, was Sie tun müssen, ist die Eingabe der Kontonummer und Passwort, und alles andere erfolgt automatisch. Bitte beachten Sie, dass die Verwendung dieser Funktion strikt optional ist. Code ein Handelssystem - Diese Software-Funktion implementiert eine proprietäre Programmiersprache, die Ihnen erlaubt, Regeln leicht zu erstellen. MetaTrader verwendet beispielsweise MQL (MetaQuotes Language). Heres ein Beispiel für seinen Code zu verkaufen, wenn freie Marge weniger als 5.000 ist: Wenn FreeMargin lt 5000, dann beenden Häufig, nur das Lesen des Handbuchs und Experimentieren sollten Sie auf die Grundlagen der Sprache abrufen, die Ihre Software verwendet. Backtest Ihre Strategie - Systementwicklung ohne Backtesting ist wie Tennisspielen ohne Schläger. System-Entwicklungssoftware enthält oft eine einfache Backtesting-Anwendung, die Ihnen erlaubt, eine Datenquelle, Eingangskonto Informationen und Backtest für jede Menge Zeit mit dem Klicken einer Maus zu definieren. Hier ein Beispiel aus MetaTrader: Nachdem der Backtest ausgeführt wurde, wird ein Bericht erstellt, der die Besonderheiten der Ergebnisse umreißt. Dieser Bericht umfasst in der Regel Gewinn, Anzahl der un / erfolgreichen Trades, aufeinander folgenden Tage nach unten, Anzahl der Trades, und viele andere Dinge, die hilfreich sein können, wenn Sie versuchen, festzustellen, wie das Problem zu beheben oder zu verbessern. Schließlich erzeugt die Software üblicherweise ein Diagramm, das das Wachstum der Investition während des gesamten getesteten Zeitraums zeigt. 2. Design - Das Design ist das Konzept hinter Ihrem System, die Art und Weise, wie die Parameter verwendet werden, um ein Ergebnis oder Verlust zu generieren. Sie implementieren diese Regeln und Parameter durch Programmierung. Manchmal kann diese Programmierung automatisch über eine grafische Benutzeroberfläche erfolgen. Dadurch können Sie Regeln erstellen, ohne eine Programmiersprache zu lernen. Hier ist ein Beispiel für ein gleitendes Durchschnitts-Crossover-System: Wenn SMA (20) CrossOver EMA (13) dann geben, wenn SMA (20) CrossUnder EMA (13) dann Regeln wie diese, die in Code gesetzt werden, erlauben die Software automatisch Generieren Ein-und Ausgänge an den Punkten, wenn die Regeln anwendbar sind. Hier ist, was die Design-Schnittstelle sieht auf MetaTrader: Das System wird erstellt, indem Sie einfach die Regeln in das Fenster und speichern Sie sie. Referenzen für die verschiedenen verfügbaren Funktionen (zB Oszillatoren und dergleichen) finden Sie, indem Sie auf das Buchsymbol klicken. Die meisten Software wird eine ähnliche Referenz entweder im Programm selbst oder auf ihrer Website zur Verfügung. Nachdem Sie die gewünschten Regeln erstellt und das System kodiert haben, speichern Sie die Datei einfach. Dann können Sie es verwenden, indem Sie es auf dem Hauptbildschirm. 3. Entscheidungsfindung - Es gibt viele Entscheidungen an diesem Punkt getroffen werden: Welchen Markt möchte ich in 13 handeln Welche Zeitspanne sollte ich verwenden 13 Welche Preisreihe sollte ich 13 Welche Teilmenge von Aktien sollte ich zum Testen zu halten In Dass Handelssysteme in vielen Märkten konsequent einen Gewinn erzielen sollten. Indem Sie die Zeitperiode und die Preisreihe zu viel besonders anfertigen, können Sie die Resultate verfärben und uncharacteristic results.4 produzieren. Praxis - Backtesting und Papierhandel sind entscheidend für die erfolgreiche Entwicklung eines Handelssystems: Führen Sie mehrere Backtests zu unterschiedlichen Zeiträumen durch und stellen Sie sicher, dass die Ergebnisse konsistent und zufriedenstellend sind. Papierhandel das System (verwenden imaginären Geld, sondern zeichnen die Geschäfte und Ergebnisse), und wieder auf der Suche nach konsistenten Rentabilität. Carefully auf Fehler im Programm oder unbeabsichtigte Trades zu überprüfen. Dies kann auf fehlerhafte Programmierung oder das Nichtvorhersehen bestimmter Umstände zurückzuführen sein, die unerwünschte Auswirkungen haben. 5. Wiederholen - Wiederholung ist erforderlich. Halten Sie die Arbeit an dem System, bis Sie konsequent einen Gewinn in den meisten Märkten und Bedingungen. Es gibt immer unvorhergesehene Ereignisse, die auftreten, sobald ein System in Betrieb geht. Hier sind einige Faktoren, die oft zu verzerrten Ergebnissen führen: Transaktionskosten - Stellen Sie sicher, dass Sie die reale Provision verwenden. Und einige zusätzliche, um ungenaue Fills Rechnung zu tragen (Differenz zwischen Bid - und Ask-Preisen). Mit anderen Worten, vermeiden Schlupf (Um zu überprüfen, was dies ist und wie es auftritt, siehe vorherigen Abschnitt dieses Tutorials.) Watchfulness - Dont ignorieren, verlieren Trades ein Auge auf alle Trades. Optimization - Dont über-Optimierung des Systems. Mit anderen Worten, nicht maßgeschneiderte das System auf ein sehr spezifisches Marktumfeld versuchen, in einer möglichst breiten Umgebung wie möglich rentabel sein. Risiko - niemals ignorieren oder vergessen Sie das Risiko. Es ist sehr wichtig, Wege zu haben, um Verluste zu begrenzen (andernfalls als Stopp-Verluste bekannt) und Wege zur Sperrung von Gewinnen (Take Profits). 6. Handel - Probieren Sie es aus, aber erwarten Sie unbeabsichtigte Ergebnisse. Achten Sie darauf, nicht-automatisierten Handel verwenden, bis Sie sicher sind, in der System-Performance und Konsistenz. Es dauert eine lange Zeit, um ein erfolgreiches Handelssystem zu entwickeln, und bevor Sie es perfekt, müssen Sie einige Leerverkäufe Verluste erleben, um Fehler zu erkennen: Back-Tests können nicht perfekt darstellen Live-Markt Bedingungen und Papierhandel kann ungenau sein. Wenn Ihr System Geld verliert, gehen Sie zurück zum Reißbrett und sehen, wo es schief gelaufen ist (siehe Schritt 5). Fazit Diese sechs Schritte geben Ihnen einen Überblick über den gesamten Prozess des Aufbaues eines Handelssystems. Im nächsten Abschnitt werden wir auf diesem Wissen aufbauen und einen tiefergehenden Einblick in die Fehlerbehebung und Modifikation nehmen. Trading Systems: Troubleshooting und OptimierungSoftware für den Bau eines Market Trading Systems Wenn es einen Wettbewerb zwischen C und Java dann Java gewonnen hatte. Leider haben viele Leute, die Software für Markt-Trading-Systeme und - Modelle entwickeln, nicht die Nachrichten bekommen und immer noch C. C. wird immer die Sprache der Wahl für die enge Klasse von Software-Anwendungen, die in der Nähe des Metalls des Computersystems sind . Diese Anwendungen umfassen Gerätetreiber, Betriebssysteme und leistungsstarke Datenbanksysteme. Out Seite dieser schmalen Klasse, Java ist derzeit die einzige vernünftige Wahl für die Anwendung Umsetzung. Der Grund, dass Java die Sprache der Wahl ist, hat weniger mit der Sprache selbst zu tun als mit der massiven Software-Basis, die für Java beendet wird. Java ermöglicht es dem Anwendungsentwickler, den größten Teil der wiederverwendbaren Software zu nutzen, der jemals implementiert wurde. Seit Jahrzehnten haben die Menschen in der Informatik Literatur über tragbare, wiederverwendbare Software geschrieben. In Java ist dies endlich realisiert worden. Diese Seite bietet Links zu Ressourcen für den Aufbau eines Intra-Day-Handelssystems in Java. Ein solches Handelssystem besteht aus den folgenden Komponenten: Ein Java-Applikationsserver (z. B. Tomcat) basierte Intra-Day-Handelssystem. Ein Intraday-Daten-Feed für Markttransaktionsdaten. Eine Datenbank zum Aufzeichnen von Handelsinformationen. Eine webbasierte GUI zur Steuerung und Information über das Handelssystem. Eine Infrastruktur zur Unterstützung von Tests (Back-Tests) von Handelsalgorithmen mit historischen Intra-Day-Marktdaten. Inhaltsverzeichnis Ian Kaplan Letzte Aktualisierung, August 2008 zurück zu A Java Intra-Day Traeding System, Quantitative Finance und andere Themen


No comments:

Post a Comment