Friday 20 January 2017

Clojure Handelssystem

Java Security News 18. Oktober 2016: Java 8 Update 111 wurde veröffentlicht. Es ist die neue Sicherheitsgrundlage und soll am 17. Januar 2017 ablaufen. 19. Juli 2016: Java 8 Update 101 wurde veröffentlicht. Es ist die neue Sicherheitsgrundlage und soll am 19. Oktober 2016 auslaufen. 19. April 2016: Java 8 Update 91 wurde veröffentlicht. 23. März 2016: Java 8 Update 77 wurde veröffentlicht. Es ist die neue Sicherheitsgrundlage und läuft am 19. April 2016 aus. 5. Februar 2016: Java 8 Update 73 und Update 74 werden freigegeben. Die Sicherheitsgrundlage bleibt Update 71. Beide Versionen laufen am 19. April 2016 ab. 28. Januar 2016: Ich habe die Zukunft gesehen und es enthält nicht Java, das in einem Webbrowser läuft. Oracle schadet Webbrowsern, weil es nicht mehr den alten NPAPI-Plug-In-Standard unterstützt. Warum Oracle nicht Java auf eine andere Plug-In-Schnittstelle verschieben kann, wird nicht diskutiert. Als Ersatz für Java-Applets schlägt Oracle Java Web Start apps vor. Dies sind vollgeblasene Anwendungen, geschrieben in Java, die in einen Java-Cache auf Ihrem Computer heruntergeladen und von dort aus laufen, außerhalb jedes Web-Browser. Java Web Start Apps können sich automatisch selbst aktualisieren und die Ausführung in einer Sandbox standardmäßig ausführen. Benutzeraktion ist erforderlich, damit sie aus dem Sandkasten ausbrechen. Verschiedene Java Web Start-Anwendungen können gleichzeitig ausgeführt werden und verschiedene Java-Versionen verwenden. Die Sicherheits-Probleme mit Java waren immer an die Web-Browser-Schnittstelle gebunden, die Sprache selbst war nie ein Sicherheitsproblem. Mehr . 19. Januar 2016: Java 8 Update 71 wird veröffentlicht. Es behebt kritische Sicherheitslücken, wie üblich, und ist jetzt die Sicherheits-Baseline. Update 71 wird voraussichtlich am 19. April 2016 ablaufen. Ebenfalls veröffentlicht wurde Update 72. beschrieben von Oracle als Quota-Patch-Set-Update inklusive aller 8u71 plus zusätzlichen Featuresquot. Dann auch. Gibt es eine BPR (Bundled Patch Release) und eine öffentliche Ausgabe von Update 72. 16. November 2015: Java 8 Update 66 wird veröffentlicht. Obwohl die Release Notes sagen, dass diese Version Fixes für Sicherheitslücken enthält, bleibt die Sicherheits-Baseline jedoch auf Update 65. Update 66 wird am 19. Januar 2016 ablaufen. 20. Oktober 2015: Java 8 Update 65 wird veröffentlicht. Es behebt eine Reihe von Bugs und ist die neue Sicherheit Grundlinie. Es soll am 19. Januar 2016 auslaufen. Undated: Java und Google Chrome Browser von Oracle. Beginnend mit Chrome Version 45, veröffentlicht im Sept. 2015, werden Java-Applets nicht mehr unterstützt, da sie eine alte Plugin-Schnittstelle namens NPAPI verwenden. Java Web startet Apps weiterhin gut funktionieren. IE und Safari unterstützen immer noch NPAPI, so dass Java-Applets mit diesen Browsern arbeiten. 29. September 2015: Wie Deinstallieren von Java auf Mac OS X von Lowell Heddings von HowToGeek 7. September 2015: Oracle schneidet Java-Execs von Barb Darrow in Fortune 18. August 2015: Java 8 Update 60 ist freigegeben. 14. Juli 2015: Java 8 Update 51 wird veröffentlicht. 6. Mai 2015: Nur eine Erinnerung: Java 7 ist tot. Oracle wird keine Bugfixes mehr freigeben. April 14, 2015: Drei neue Java-Versionen wurden heute veröffentlicht: Java 7 Update 79, Java 7 Update 80 und Java 8 Update 45. Diese Versionen beheben 14 Sicherheitsfehler. Zitieren von Oracle: quotAlle dieser Sicherheitslücken können ohne Authentifizierung remote verwertet werden, d. H. Über ein Netzwerk ohne die Notwendigkeit eines Benutzernamens und eines Kennworts ausgenutzt werden. April 14, 2015: Chrome-Version 42 wird Ihre Java-Kaffee nach unten gießen: Plugin standardmäßig von Shaun Nichols im Register blockiert. Chrome Version 42 blockiert das Java-Plugin standardmäßig, da es eine alte veraltete Plugin-API verwendet. Zur Zeit können Sie Chrome anpassen, um Java auszuführen, aber das wird im September 2015 beendet werden. Über Java (letzte Änderungen: 16. Oktober 2013 Jan 25,2013 Jan 15,2013 Oct 2012 Java wird unter Windows, OS X und Linux wird in iOS oder Chrome OS nicht unterstützt Java ist sehr viel in Android involviert, aber nicht in einer Weise, die für Endbenutzer sichtbar ist Java wird sowohl online als auch offline in Windows, OS X und Linux verwendet Java-Anwendungen, die von Anwendungen verwendet werden, die in Ihrem Betriebssystem installiert sind Beispiele für diese Anwendungen sind unten in der Müssen Sie Java benötigen Java-Anwendungen, die in der Regel als Applets, eingebettet in eine Webseite Das Thema Java, das in einem Webbrowser und einer installierten Anwendung verwendet wird, wurde von Steve Gibson am 16. Januar 2013 von seinem Security Now Podcast (eine Suche nach Jared) adressiert. Eine Komponente von Java muss installiert werden Auf einem Computer, bevor Java-Programme ausgeführt werden können, entweder online oder offline. Diese Komponente hat zwei Namen. Es wurde ursprünglich als Java Virtual Machine (JVM) bezeichnet, aber jetzt ist der häufigere Begriff JRE (Java Runtime Environment). Manchmal ist es nur als Java, was eine große falsche Bezeichnung ist, da es viele Teile des Java-Ökosystems. Die neueste Version von Java ist Version 7. Es kommt von Oracle und wird unter Windows, OS X und Linux unterstützt. Oracle gab bis Ausgabe Bug-Fixes für Java-Version 6 in der Mitte des Jahres 2013 (kostenlos, dass Sie Oracle für Java 6 Bug-Fixes bezahlen können). Apple weiterhin Bug-Fixes für Java 6 auf Snow Leopard, Löwe und Mountain Lion Fragen. Unter Windows kann die Java-Laufzeit (JRE) vorinstalliert sein oder auch nicht, die Entscheidung bleibt dem Hardwarehersteller überlassen. Ein Java-Version 6 Laufzeit wurde von Apple auf OS X Leopard und Snow Leopard vorinstalliert, aber beginnend mit Lion, beendet Apple vorinstalliert Java. Java 6 kann auf Lion und Mountain Lion installiert werden, es werden jedoch keine Applets ausgeführt. Java 7 kann auf Lion und Mountain Lion installiert werden, um Applets auszuführen. Java 7 kann nicht auf Snow Leopard installiert werden. Lion und Mountain können sowohl Java 6 und Java 7 gleichzeitig installiert haben. Die Java-Laufzeit (JRE) unter Windows kommt von Oracle (zuvor von Sun). Auf OS X liefert Apple die JRE für Java Version 6, während Oracle die JRE für Java Version 7 liefert. Oracle ist der offizielle Anbieter der JRE für Linux, aber es gibt auch andere Quellen. Microsoft verwendet, um ihre eigenen JRE auf Windows zu halten, aber das fiel auf der Strecke vor langer Zeit. In den alten Tagen hatte Netscape ihre eigene JRE wie IBM und andere. Nur weil eine Java-Laufzeit installiert ist, bedeutet das nicht, dass ein Webbrowser sie tatsächlich benutzt. Es gibt drei mögliche Gründe: Die Verwendung von Java kann in einem Browser deaktiviert werden. Die einzige Ausnahme ist hier der Internet Explorer, der trotz allem, was Sie online lesen können, nicht in der Lage ist, seine Verbindung zu Java vollständig zu trennen. Ab Java 7 Update 10 kann die Verwendung von Java online von allen installierten Webbrowsern mit einem neuen Kontrollkästchen im Sicherheitsteil der Java-Systemsteuerung deaktiviert werden. Bisher war meine Erfahrung, dass, während dies funktioniert, Webbrowser falsch melden, dass Java überhaupt nicht installiert ist. Der Webbrowser kann architektonisch nicht in der Lage sein, Java auszuführen. Ein Beispiel hierfür ist Chrome auf OS X Lion und Mountain, wenn Java 7 installiert ist (es ist ein 32 Bit vs. 64-Bit-Problem). Ein weiteres Beispiel ist die Fliesenweltversion von Internet Explorer 10 unter Windows 8, die keine Plug-ins unterstützt. Apple kann es nicht zulassen. Auf OS X-Systemen (Snow Leopard, Lion und Mountain Lion) wurde die XProtect-Funktion von Apple verwendet, um zu verhindern, dass Java in Safari läuft (nicht sicher von anderen Browsern, Ive lesen widersprüchliche Informationen). Um dies in Lion und Mountain Lion zu sehen, gehen Sie in den Bereich Systemeinstellungen - Sicherheit - Erweitert. Es sollte ein Kontrollkästchen für die automatische Aktualisierung der Liste der sicheren Downloads geben. Derzeit hat Java einen schlechten Ruf für einen endlosen Strom von Sicherheitslücken. Aber vor diesem, Apple und Microsoft nicht wie Java, weil es ihre Betriebssysteme weniger wichtig gemacht. Ein Java-Programm kann theoretisch ebenso gut auf Windows, OS X und Linux laufen. Und das ist nur für den Anfang. Solange es ein JRE für ein Betriebssystem gibt, können Java-Programme auf diesem System laufen. Dies eröffnet auch andere Umgebungen wie IBM Mainframes und Unix. Die populäre Phrase, in den frühen Tagen von Java war einmal schreiben, laufen irgendwo. Aber es ging alles schief, lange bevor Sicherheitslücken die Haupt-Java-Geschichte wurde. Wie es im Laufe der Jahre gespielt, Flash schlagen Java auf dem Markt auf der Client-Seite (Ihrem Computer). Flash diente den gleichen Cross-Plattform-Anforderungen, die Java für beabsichtigt war. Es gab ärgerliche Unterschiede zwischen Java-Laufzeiten von verschiedenen Anbietern, die zu der sarkastischen Phrase einmal schreiben, debuggen überall. Es kann sein, dass Flash gewann einfach, weil es nur eine Quelle (Adobe jetzt, Macromedia zunächst) für seine Laufzeitumgebung. Auf der Serverseite jedoch ist Java immer beliebt. Java-Programme werden für die Ausführung in der JVMJRE vorbereitet, indem sie in etwas übersetzt werden, das Java-Bytecode genannt wird. Die Java-Laufzeitumgebung kümmert sich nicht wirklich um die Java-Programmiersprache oder um sie, sie benötigt Java-Bytecode als Eingabe. Dies, zusammen mit verschiedenen Vorteile für die Verwendung einer JVM, hat dazu geführt, dass andere Programmiersprachen auch in Java-Bytecode übersetzt werden, so dass sie in einer Java Virtual Machine ausgeführt werden können. Im September 2013 berichtete Wired über zwei populäre Sprachen, Clojure und Scala. Eine Version von Ruby bekannt als JRuby läuft auch in einer JVM. Wired berichtet, dass Twitter läuft völlig innerhalb JVMs meist mit Software in Scala geschrieben, sondern auch einige in Java geschrieben. LinkedIn ist auch verheiratet mit JVMs und verwendet eine Mischung aus Java und Scala. Jetzt, da Sicherheitsfehler das große Problem mit Java sind, ist die sicherste beste Praxis, Java zu deinstallieren und zu sehen, wenn etwas bricht. Ich sage dies, weil, soweit ich weiß, gibt es keine Inventar-Funktion, die Berichte über Java-Nutzung systemweite. Da alle Sicherheitsaspekte mit Java-Applets eingebettet sind, die in Webseiten eingebettet sind, sollte jemand, der nur Java für installierte Anwendungen benötigt, seine Verwendung in allen Browsern deaktivieren, indem er eine Sicherheitsfunktion verwendet, die erstmals in Java 7 Update 10 eingeführt wurde (siehe Oraclequots-Anweisungen). Jemand, der Java-Applets ausführen muss, sollte normalerweise einen Webbrowser verwenden, der Java deaktiviert hat und einen Java-fähigen zweiten Browser ausschließlich auf den Websites, die Java benötigen, verwendet. Wenn Sie nicht sicher sind, welche Websites Java verwenden, ist der Google Chrome Browser Ihr Freund, da er vor dem Ausführen von Java-Applets warnt. Die Versionsseite dieser Website überprüft, dass ein Browser Java-Applets in Webseiten ausführen kann, indem ein sehr einfaches Applet ausgeführt wird, das die Java-Version anzeigt. Es hat auch eine Geschichte von Java-Releases und Anweisungen für die Deaktivierung von Java in sortierten Browsern. Der Quellcode für das Applet befindet sich auf der Seite About. Java-Applets können optional digital signiert werden. Diejenigen, die nicht sind, begannen die Erzeugung einer neuen Pop-up-Warnung mit der Einführung von Java 7 Update 11. Das Version Applet auf dieser Website ist nicht signiert. Weder sind die von Oracle, die testen, ob Java arbeitet (hier und hier). Schließlich können Sie sehen, Oracle erwähnen die Java-Sicherheits-Baseline. Dies bezieht sich auf die neueste Java-Version, die keine Sicherheitslücken enthält. Dies ist nicht unbedingt die neueste Version. Es gibt eine andere Sicherheitsbaseline-Edition für Java 6 und 7. Um zu veranschaulichen, dass ab Mitte Januar 2013 Update 37 die Sicherheitsbaseline-Edition für Java 6 war. Windows-Benutzer hatten Zugriff auf Update 38, das Fehlerbehebungen enthielt, aber keine sicherheitsrelevanten Informationen enthielten Fehlerbehebung. Apple hat nicht ein Update 38 für den Mac, sie maxed out bei Update 37. Brauchen Sie Java Im April 2012, Ed Bott adressed diese durch Auflistung einige Anwendungen und Websites, die Java erfordern. Sehen Sie, wie groß ein Sicherheitsrisiko ist Java können Sie wirklich mit ihm beenden. Einige Auslassungen von dem Artikel sind GoToMyPC - von Citrix, arbeitet besser mit Java, obwohl es nicht erforderlich ist Crashplan verwendet Java in seiner Windows-, OS X - und Linux-Software. Java ist in ihrer App enthalten. GoToMeeting und GoToWebinar, auch von Citrix, erfordern Java Die Wall Street Journal-Website, wsj, nutzt Java für dynamische Diagramme Das Online-New York Times Kreuzworträtsel verwendet Java im Scorecard-Bereich der Website, um die Spielgeschichte der Kreuzworträtselbenutzer zu verfolgen. Java wird auch für die SET und Sudoku Puzzles verwendet. Box. net unter Windows verwendet Java zum Hochladen von Ordnern bei der Verwendung von Firefox und Internet Explorer. Nicht jedoch mit Chrome. ThinkFree Büro Online Cyberduck. Ein Open-Source-Datei-Browser und Datei-Transfer-Programm für OS X und Windows jEdit ein Texteditor für Programmierer. JEdit ist kostenlos, Open Source und läuft auf OS X, Windows, OS2, Unix und VMS (das war die ganze Idee für Java nach allem). FreeMind mind Mapping-Software PortMapper ein Tool für die Verwaltung der Portweiterleitung über UPnP Frances Online-Voting-System Scottrade Angry IP-Scanner. Eine kostenlose Port-Scan-Programm Das australische Steueramt benötigt Java auf der Website von kleinen Unternehmen verwendet, um ihre Steuern zu bezahlen ScanNow von Rapid7 sucht ein Netzwerk für Geräte anfällig für UPnP-Fehler (nur Windows) Yahoo SiteBuilder (ein Sicherheitsproblem) Banken in Europa. Ich habe viele Kommentare über Banken in Europa gelesen, die Java auf ihren Webseiten erfordern. Ein Beispiel ist die Banque Internationale Luxembourg, die ein System namens LuxTrust nutzt (danke Oliver für den Link) CommSecIRESS eine Echtzeit-Handelsplattform für australische Aktien, ETOs, ETFs und vieles mehr. ProjectLibre ist ein Open-Source-Ersatz für Microsoft Project Sharefile verwendet Java, wenn Benutzer ganze Ordner hochladen müssen. AeroFS verwendet Java und auf Windows-Systemen wird es mit einer dedizierten Kopie von OpenJDK ausgeliefert. Spielseiten pogo und gamesville verwenden Java DataFerrett für Volkszählung Daten auf dataferrett. census. gov Pingtest. net erfordert Java für Paketverlust Tests Leo Laporte ist ein Comcast-Kunde. Auf der Okt 16,2013 Ausgabe von Sicherheit jetzt sagte er, dass er gezwungen war, ein Java-basiertes Chat-Programm verwenden, um mit Comcast umzugehen, wenn er sich bewegte. LuxSci Webmail (nur für einige erweiterte Funktionen) Libre Office verwendet Java für einige Funktionen, sondern Funktionen ohne es. Auf der anderen Seite sind Websites, die weg von Java gegangen sind: Die time. gov Website für offizielle US-Zeit ersetzt Java mit HTML5 Der Secunia Online Software Inspector wurde eingestellt. Minecraft verwendet, um Java, aber nicht mehr erfordern. Siehe Minecraft braucht Java nicht mehr installiert. Es wird nun mit einer eigenen eingebetteten Java-Instanz versendet. Terminologie (überarbeitet am 15. Januar 2013) Anfangs wurden Java-Programme, die in Webseiten eingebettet waren, als Applets bezeichnet. Das ist der Begriff, den ich auf dieser Website, weil es vor langer Zeit erstellt wurde. Jetzt aber sind die Dinge komplizierter. Entsprechend Oracle. Java-Programme, die in einem Browser ausgeführt werden, enthalten Plugin-Applets, Java Web Start-Anwendungen, eingebettete JavaFX-Anwendungen und Zugriff auf die nativen Implementierungs-Toolkit-Plugins. Windows-Benutzer können den Begriff Applet finden, der verwendet wird, um die kleinen Anwendungen in der Systemsteuerung zu beschreiben (Energieoptionen, Mausoptionen, Verwaltung usw.). Diese Control Panel-Dinger haben nichts mit Java zu tun, außer Java, die als Java-Systemsteuerung bezeichnet wird. Java-Applets können digital signiert werden. Diejenigen, die nicht sind, werden als unsigniert, nicht vertrauenswürdig und sandboxed. JavaScript ist separat und unterscheidet sich von Java. Keine Beziehung überhaupt. Website erstellt und gepflegt von Michael Horowitz mh at javatester. org site stats Java und Javascript sind Marken von Oracle in den USA und anderen Ländern. Diese Seite ist von Oracle unabhängig. Seite: javatester. org Letzte Aktualisierung: 19. Oktober 2016Update: Ich aktualisiert den Code so funktioniert es mit Oandas neue API. Holen Sie sich hier Zeit, über Broker zu sprechen, wie man einen Handel programmgesteuert und vor allem, wie man nicht betrogen zu bekommen. Ein Broker ist nichts anderes als ein Unternehmen, das Sie handeln (kaufen oder verkaufen) Vermögenswerte auf einem Markt durch ihre Plattform können. Was ist sehr wichtig für algotrading ist: Der Makler bietet eine API, um für uns zu platzieren Bestellungen können Sie ein Demo-Konto, um Ihre Staging-Umgebung und das Experiment laufen Die Ausbreitung ist so klein wie möglich In unserem Fall interessieren wir uns nicht wirklich zu verbreiten Wie wir nicht tun High Frequency Trading in absehbarer Zeit. Obwohl Makler geregelt sind, gab es Zwischenfälle in den letzten paar Jahren, wurden Makler gefaltet aufgrund bestimmter Bedingungen. Seien Sie sehr vorsichtig, wenn es keine Rezensionen des Brokers im Internet (oder die meisten von ihnen sind schlecht) Wenn der Broker bietet Ihnen einige verrückte Hebelwirkung (wie 1: 200) Wenn der Broker scheint in einem sehr seltsamen Land Was könnte passieren Ist, dass Sie beginnen, etwas Geld und Sie arent in der Lage, sie herausziehen. Ernst. Super stressige Situation. Aber lass uns zu einer glücklicheren Note wechseln, die ein Konto eröffnet und unseren ersten programmatischen Handel einbringt. Whooha Ich verwende Oanda als Broker (ich bin nicht mit ihnen verbunden) und sie bieten eine ziemlich anständige API, Bibliotheken auf Github und ein kostenloses Demo-Konto. Nachdem Sie sich bei Ihrem Demo-Konto angemeldet haben, gehen Sie zu "API-Zugriff verwalten". Dort finden Sie Ihren API-Schlüssel, den wir in unserem System verwenden, um Trades zu platzieren. Stellen Sie sicher, dass Sie diese Schaltfläche nicht teilen. Der Code dafür ist und alle anderen Beiträge ist auf Github und Sie können es installieren und führen Sie es ganz einfach. Update: Oanda veröffentlicht eine neue (Kickass) Ausführungs-Engine namens v20 und sie haben eine neue (verbesserte) API veröffentlicht. Dieser Beitrag wurde aktualisiert, um die neue API zu verwenden, aber wenn (aus irgendeinem Grund) Sie den alten Code überprüfen möchten, ist es hier genau richtig. Du hast Glück, dass du eine Verbindung zu Oanda brauchst, eine conf Datei - die du mit einem Skript erzeugen kannst, das Oanda hier zur Verfügung stellt oder du kannst es einfach selber erstellen. Warum sollten Sie wollen, dass Zunächst einmal, wenn es um Anmeldeinformationen geht (und mein Geld), ich bevorzuge, alles zu wissen, was los ist. Und ich nicht wie mit PyYAML installieren, nur um eine conf-Datei zu lesen. Fühlen Sie sich frei, jede Methode zu verwenden. Bereiten Sie sich darauf vor, erstaunt zu sein. Der Code ist geradlinig. Wir initialisieren die API und können nun eine Bestellung aufgeben (kaufen Sie 5000 Einheiten von EURUSD) Überprüfen Sie den aktuellen Preis ist so einfach Super einfach. Mach dir keine Sorgen darüber, was EURUSD ist oder wie viele Einheiten, die wir kaufen oder was eine Marktordnung ist. Für jetzt haben wir unser erstes Geschäft von unserem Laptop gelegt und wir werden unsere eigene API bauen, um Trades zu platzieren. Aufregende Sachen Sie können die Oandas-Dokumentation hier lesen, um zu sehen, was Sie sonst noch mit ihrer API tun können, und finden Sie die Python-Bibliothek hier. Tausende von Beispielen sind von Oandas github hier verfügbar. Kommen als nächstes, die Verbindung zu einem echten LIVE algotrading System, läuft von meinem RaspberryPI zu Hause. Youll in der Lage sein, das (fast) endgültige Programm laufen und gut sprechen mehr über Forex und Strategien zu sehen. Wenn Sie mehr Feedback haben, ping mich bei jonromero oder melden Sie sich für den Newsletter. Rechtlicher Rahmen. Dies ist ein Engineering-Tutorial, wie man eine algotrading-Plattform für Experimente und Spaß zu bauen. Anregungen hier sind keine finanziellen Ratschläge. Wenn Sie irgendwelche (oder alle) Geld verlieren, weil Sie irgendwelche Trading-Tipps befolgt haben oder dieses System in der Produktion eingesetzt haben, können Sie dieses zufällige Blog (andor) nicht beschuldigen. Genießen Sie auf eigene Gefahr. Dies ist mehr ein wie Sie Ihre eigene Strategie zu verkaufen - die Ethereum-Ausgabe und nicht ein Geld verdienen schnell Blog-Post. Es ist auch ein echtes Beispiel mit echten Renditen (und realen Produktionsfehlern, die mir Geld kosten), wo man sehen kann, wie man Chancen identifiziert, warum Algotrading genial ist und warum Risikomanagement Ihren Arsch retten kann. Ich bekomme diese Frage fast auf einer täglichen Basis. Wie kann ich eine gute Strategie finden Wie kann ich meine eigenen bauen Ich brauche einen Doktortitel in Mathematik Statistiken Newsflash: Wenn ich eine Strategie schreiben kann, kann jeder eine Strategie schreiben. Vertrauen Sie mir darauf. Der einzige Trick ist, für eine einfache zu suchen. Update: Dieser Beitrag wurde mindestens fünfmal umgeschrieben (wie das DAO Drama eskaliert) und es ist das perfekte Beispiel für eine Strategie, die einen vollen Kreis. Ich fing an, mit Ethereum frühzeitig zu engagieren, da ich die Ausführung Ihrer Algorithmen auf dem Blockchain-Ding wirklich mochte. Als TheDAO herauskam, las ich alles darüber und liebte die Idee. Sie brauchen nicht zu verstehen, was Ethereum, theDAO, Blockchain ist an diesem Punkt (ich verspreche, ich werde auf eine andere Post ramble). Die gleichen Ideen gelten für Forex, Aktien sogar Pokemon Kugeln. Mein vier Schritt - Hauptmann offensichtlich - System ich persönlich, haben eine spezifische Weise, die ich arbeite. Schritt eins . Identifizieren Sie eine Idee. Meine Idee in diesem Fall ist, dass es ein paar Börsen bieten Ethereum und DAO Token. Was, wenn es eine Arbitrage zwischen diesen Schritt zwei gab. Manuelles Testen der Idee. Wenn etwas irgendwie funktioniert, bin ich auf etwas. Alles, was ich tun musste, ist, führen Sie alle Schritte manuell und notieren Sie alle Gebühren, Konditionen oder alles, was dokumentiert werden sollte. Schritt drei . Automatisieren Dieser Algorithmus ist kein Hochfrequenz-Handelsalgorithmus. Es gibt eine beträchtliche Menge an Zeit Risiko (die Sie beseitigen können, wie auch später sehen), aber was ich getan habe, konnte manuell durchgeführt werden. Das Problem ist, dass ich alle Zeit vor meinem Computer verbringen musste, ob es eine Arbitrage-Bedingung gibt und wenn es war, musste ich schnell und ohne Durcheinander handeln. Oh, und ich musste fünf meiner Freunde rekrutieren, um das zu skalieren. Lange Geschichte kurz, verbrachte ich Presidents Day schriftlich ein einfaches Programm, das alle meine manuellen Schritte wiederholen wird. Das Programm würde abstürzen und es war nicht mehr als 100 Zeilen Code. Dies ist die Datenerhebung Stadium, wo ich sehe, wenn es einen Vorteil, dass Algorithmen kann mir geben. Vorteile können sein: Etwas, das automatisiert und ausgeführt werden 1000 mal pro Sekunde oder 1000 mal parallel Etwas, das schneller als ich denken kann Etwas, das keine Gefühle hat, um mein System zu beschädigen Wenn es mindestens eine oder mehrere Bedingungen erfüllt, werde ich Den Algo zu bauen und neu zu schreiben. Schritt vier. Alles in Ich scherze und youll sehen in ein wenig, warum Risikomanagement ist super wichtig in diesem Geschäft. Lets diskutieren ein wenig über das, was diese Arbitrage war. Die Idee ist: Ich frage mich, ob Kraken und Shapeshift unterschiedliche Preise für die gleichen Vermögenswerte haben. Dies ist eine klassische Arbitrage Fall (Kraken und Shapeshift sind Börsen). Ich konnte DAO für ETH auf Kraken austauschen, ETH auf Shapeshift übertragen, ETH für DAO austauschen und nach Kraken zurückschicken und aufgrund von Preisinkonsistenzen würde ich am Ende mit mehr DAO anfangen, als ich anfing. Riskfreies Geld, die beste Art von Geld . Sie können Geld verdienen, solange ETHDAO von Kraken DAOETH von ShapeShift gt 1 (Gebühren Gas). Sehr einfache Formel, rechts Jeder Zyklus war eine 2 bis 10 Rückkehr meiner Hauptstadt. Nach einer Weile fing ich an, die Grenzen von Shapeshift zu schlagen, und ich musste das parallel laufen lassen. Die Frage ist, was würden Sie tun, wenn Sie einen Algorithmus, dass Sie 10 von Ihrem Geld alle 20 Minuten macht hatte. Das dümmste, was Sie tun können, ist Tonnen von Geld hinein. Wenn Sie nicht vertraut sind mit dem griechischen Wort Hybris. Betrachten Sie sich glücklich. Hybris ist, wenn Sie denken, dass Sie unbesiegbar sind, besser als Götter. Und dies ist die größte NO NO können Sie im Handel tun. Nach ein paar Wochen wurde theDAO gehackt. 160 Millionen Dollar wurden gestohlen (oder sollte ich sagen gefroren) und niemand wusste, was passieren würde. Für mich geschah dies, 10 Minuten vor dem Einsteigen in ein Flugzeug nach New York zu fliegen. Hybris Oder wie die Leute in den USA sagen: Fuck. Ich war intelligent (glücklich) genug, um gute Risikomanagementgewohnheiten zu haben (danke Forex). Ich nie, überhaupt, jemals riskieren mehr, dass 2 meines Kapitals, auch wenn es die beste Art von Deal scheint. Wir hoffen jedoch, dass sie bei Ihrer Reiseplanung weiterhilft. Original auf Englisch Language Weaver Bewerten Sie diese Übersetzung: Vielen Dank für Ihre Bewertung Mangelhaft Gut Diese ganze Erfahrung ist eine Erinnerung, dass es immer Dinge, die Sie nicht vorhersagen können. Dinge, die man nicht kontrollieren kann. Dies war ein systematisches Risiko, und ich konnte es nicht mehr sehen. Pushing-Buttons und Gebäude-Algorithmen ist nicht genug. Richtiges Risikomanagement und wissen, wann Sie eine kalte Pille nehmen müssen, ist, was Sie im Spiel halten kann. Auf der nächsten Post, werde ich den ganzen Algorithmus und gehen Zeile für Zeile. Ich plane auch ein wenig mehr über theDAO und Ethereum zu diskutieren. Wenn Sie keine dieser verpassen möchten und erhalten Sie weitere Informationen, fühlen Sie sich frei, um sich für den Newsletter, wo ich rede über Fintech, Algorithmen und die Märkte. By the way, wenn Sie Ihre eigenen cryptocurrency machen wollen und erfahren Sie mehr über Ethereum, habe ich einen großen Beitrag mit dem Code hier gepostet. Kommen als nächstes: Eintauchen in das ETHDAO-Programm Wenn Sie mehr Feedback haben, pingen Sie mich bei jonromero oder melden Sie sich für den Newsletter an. Rechtlicher Rahmen. Dies ist ein Engineering-Tutorial, wie man eine algotrading-Plattform für Experimente und Spaß zu bauen. Anregungen hier sind keine finanziellen Ratschläge. Wenn Sie irgendwelche (oder alle) Sie Geld verlieren, weil Sie irgendwelche Trading-Tipps befolgt haben oder dieses System in der Produktion eingesetzt, können Sie nicht schuld dieses zufällige Blog (andor me). Genießen Sie auf eigene Gefahr. Maschinelles Lernen und Handel ist ein sehr interessantes Thema. Es ist auch ein Thema, wo Sie verbringen können Tonnen Zeit schreiben Code und Lesen von Papieren und dann ein Kind kann Sie schlagen, während Sie spielen Mario Kart. In den nexts Beiträge, werden wir sprechen über: Optimieren Sie Ein-und Ausgänge. Dieses und nur dieses konnte eine Tonne Unterschied in Ihrer Bankrolle bilden. Berechnen Sie die Positionsgröße (falls Sie das Kelly-Kriterium nicht mögen) Finden Sie mögliche Korrelation zwischen den verschiedenen Paaren (Paarhandel). Ich liebe die EURUSD vs GBPJPY Korrelation Berechnen Unterstützung Amp-Widerstand Linien Aber was ist Machine Learning Machine Lernalgorithmen sind Algorithmen, wo eine Maschine kann identifizieren Muster in Ihren Daten. Yeap, es ist so einfach. Zum Beispiel, finden Sie alle Tiere in diesem Foto und ziehen Sie eine Schachtel um sie herum. Auch dieses Tier nennen. Verrückt weiß ich. Für den Handel, wie Sie sich vorstellen können, ist es ziemlich ähnlich: Um für eine Maschine zu lernen, müssen Sie es lehren, was richtig oder falsch (betreutes Lernen) oder geben Sie ihm eine große Datenmenge und lassen Sie es wild (unbeaufsichtigt). Für die Identifizierung von Objekten ist dies geradlinig, aber was über den Handel sah ich sich um zu sehen, ob es eine Maschine Lernprogramm, das SR-Linien identifizieren kann, aber ohne Erfolg. So entschied ich mich, das erste Maschinenlernprogramm in Python zu schreiben, das Support - und Widerstandslinien in Python identifiziert. Eine andere erste Hooray Aber wie kann ein Algorithmus diese Bereiche identifizieren Hoooooow Damen und Herren (und Roboter), lassen Sie mich Ihnen MeanShift vorstellen. Ein unüberwarteter Algorithmus, der vor allem für die Bilderkennung verwendet wird und ist ziemlich trivial zu Setup und laufen (aber auch sehr langsam). Die Idee ist, dass dieser Algorithmus lässt mich meine Daten (Forex-Zecken) in Bereiche und dann kann ich die Kanten als Unterstützung und Widerstand Linien. Coole Idee, aber es funktioniert Wir analysieren rund 12 Millionen Datenpunkte von EURUSD im Jahr 2014 und ein paar Monate im Jahr 2015. Die Widerstandslinien werden automagisch durch einen maschinellen Lernalgorithmus platziert. Was ist wirklich cool (und gespenstisch) ist, dass der Algorithmus ziemlich viel nagelt es. NÄGT es hart. Es wird wirklich spooky, wenn wir den Algorithmus verwenden, um Mikrostrukturen zu identifizieren und starten Scalping. Das System ist in der Lage, jede Art von Zeitdaten Daten (Aktien, Forex, Gold, was auch immer) zu verarbeiten, und es wird eine html interaktive Diagramm (wie das Diagramm oben) mit Ihren Daten und der Maschine generiert SL. Der Code ist hier so verrückt. Nun können Sie durch den Code. Nachdem Sie Ihre Daten haben, müssen Sie sie lesen und reinigen. Bereiten Sie sich für einige Pandas Magie. Wir löschen die leeren Werte (Wochenenden) und dann die Daten auf 24 Stunden Leuchter (ohcl). Dies macht es viel einfacher zu plotten. Die gruppierten Daten sind die Daten, die in den ml-Algorithmus eingegeben werden. Dann bereiten wir die Daten vor, die wir im Algo verwenden werden. Am nächsten Beitrag, besprechen Sie, wie diese Arbeit noch besser zu machen, diskutieren einige sehr interessante Ergebnisse (kann der Algorithmus tatsächlich vorhersagen, über die Zukunft) und starten Sie es in unserem eigenen Handel. Wenn Sie den nächsten Artikel zu überprüfen und lesen Sie mehr über Handel und Investitionen mit Algorithmen, melden Sie sich für den Newsletter. Coming up next: Machine Learning Gone Wild - Mit dem Code Wenn Sie mehr Feedback haben, ping mich bei jonromero oder melden Sie sich für den Newsletter. Rechtlicher Rahmen. Dies ist ein Engineering-Tutorial, wie man eine algotrading-Plattform für Experimente und Spaß zu bauen. Anregungen hier sind keine finanziellen Ratschläge. Wenn Sie irgendwelche (oder alle) Sie Geld verlieren, weil Sie irgendwelche Trading-Tipps befolgt haben oder dieses System in der Produktion eingesetzt, können Sie nicht schuld dieses zufällige Blog (andor me). Genießen Sie auf eigene Gefahr. Update: Die Machine Learning Post wird episch, aber es dauert so viel Zeit, um den Code darstellbar. Bär mit mir, kühle Sachen kommen (wie Sie auf dem Rundschreiben gelesen haben) Haftungsausschluss: DIES IST NICHT TAX BERATUNG. Was ist wirklich überraschend ist, dass die Mehrheit der Anfragen im Newsletter sind: Verwenden Sie Tools, um Trading Machine Learning, um Trades zu optimieren Steuern Steuern Die ersten beiden kann ich verstehen. Jeder will ein besserer Trader sein. Ich verstehe es. Aber Steuern STEUERN Das ist dein Glückstag. Forex Steuern sind super einfach. Ernst. In der Standardeinstellung (das heißt Abschnitt 988) werden alle Verluste Ihre Einkommensteuern ohne die 3k-Grenze pro Jahr ausgleichen. Dies ist viel besser als Aktienhandel, wo Verluste Ihre Kapitalgewinne ausgleichen. Aber was passiert mit Gewinnen, WARUM PFLEGEN SIE, WARUM Die Mehrheit der Forex-Händler verlieren Geld (ich nenne es bezahlt Studiengebühren) das erste Jahr (e), so dass Sie besser dran halten es einfach, bis Sie eine bewährte und konsequente Strategie haben. Having said that, wenn Sie tatsächlich einen Gewinn zu machen, werden Sie mit dem kurzfristigen Kapitalgewinn besteuert (manchmal bis zu 40). Die Lösungen, wenn Sie anfangen, Geld zu verdienen sind: Opting aus Abschnitt 988 und erhalten besteuert nach Abschnitt 1256, wo 60 Gewinne als langfristige Kapitalgewinne besteuert werden und 40 als kurzfristig (aber jetzt Verluste können nicht Ihr Einkommen ausgleichen). Dies ist sehr gut, wenn Sie Geld verdienen, sehr schlecht, wenn Sie nicht. Starten Sie eine LLC Für Menschen, die gerade erst begonnen Experimentieren mit Forex und algotrading, schlage ich immer vor, sie bleiben mit Abschnitt 988 (der Standard) und wenn sie beginnen, etwas Geld (konsequent) oder sie gehen wollen Vollzeit, sprechen Sie mit mir :) Im Ernst, es gibt so viele Dinge, die Sie beginnen anders zu tun, wenn Sie von der Hobby-Bühne gehen, um das zweite Einkommen zu Vollzeit-Job, dass es keinen Grund, dies zu über-Optimierung. Coming up next: Machine Learning Gone Wild Wenn Sie mehr Feedback haben, ping mich bei jonromero oder melden Sie sich für den Newsletter. Rechtlicher Rahmen. Dies ist ein Engineering-Tutorial, wie man eine algotrading-Plattform für Experimente und Spaß zu bauen. Anregungen hier sind keine finanziellen Ratschläge. Wenn Sie irgendwelche (oder alle) Sie Geld verlieren, weil Sie irgendwelche Trading-Tipps befolgt haben oder dieses System in der Produktion eingesetzt, können Sie nicht schuld dieses zufällige Blog (andor me). Genießen Sie auf eigene Gefahr. Letztes Mal sprachen wir über die For-Looper Backtester (wie ich sie gerne nennen). Jetzt ist es an der Zeit, einen Code zu sehen Wir haben gesagt, dass wir so etwas haben: python für jedes Element von readhistoricaldata (): applystrategy () howourstrategydid () Süße, lädt unsere Strategie, lädt einige historische Daten, führt unseren Algorithmus aus und druckt einige Ergebnisse Ich ziehe es vor, meine Strategien in einem JSON Format zu haben, das den Namen der Strategie und einige Spezifikt. Enthält (wie, wieviele Zacken für stoploss oder takeprofit usw.). Auf diese Weise, wenn auch mit einem Ereignis-basierten Backtester starten, können wir die Strategie durch eine Maschine lernen Algorithmus und versuchen, es zu optimieren. Nächste Zeile lädt unsere Daten in. Ich weiß, dass Leute dont wie Pickle und es andere Möglichkeiten, Daten zu laden (und wir werden über BColz an einem gewissen Punkt sprechen), aber für jetzt, nur nackt mit mir. Die folgende Zeile ist selbsterklärend. We pass the historical data to our algo and we get back some stats to print. Lets focus on the algorithm a little bit and we can discuss plotting etc at a later point. The magic of the simple backtesting system Prepare to be amazed by how ridiculously easy to do this. Short comings What happens with this type of backtesting is that 1. youll probably make mistakes when you want to using the exact same algorithm 2. You wont be able to write a very complex strategy (at least that easy) 3. Very difficult to scale (compared to event-based) 4. You need to have your simulation and execution in the same language BUT remember that this is the BEST and fastest way to start out and figure out how all these things work. Coming up next, using other well-known backtesters in Python and adding graphs to our own If you have more feedback, ping me at jonromero or signup to the newsletter. Legal outro. This is an engineering tutorial on how to build an algotrading platform for experimentation and FUN. Any suggestions here are not financial advices. If you lose any (or all) you money because you followed any trading advices or deployed this system in production, you cannot blame this random blog (andor me). Enjoy at your own risk. What is a good algotrading system without some neat strategies to deploy Below there is a list of strategies that I found online (or sent to me by traders that are on the newsletter ). I plan to update the list as I keep coming across to new ideas. The concept is that as we keep diving more and more into our algotrading system, I will show you how to code and deploy these strategies. I know for sure that most of them work with minimal changes. Worst case scenario, youll have a system to test out your assumptions. Here is the list (and please send me any other strategy that you think it should be included): Coming up next, sharing and discussing my simplest (but most successful) backtester If you have more feedback, ping me at jonromero or signup to the newsletter. Legal outro. This is an engineering tutorial on how to build an algotrading platform for experimentation and FUN. Any suggestions here are not financial advices. If you lose any (or all) you money because you followed any trading advices or deployed this system in production, you cannot blame this random blog (andor me). Enjoy at your own risk. Building a backtest system is actually pretty easy. Easy to screw up I mean. Even though there are tons of excellent libraries out there (and well go through them at some point), I always like doing this on my own in order to fine-tune it. From all the backtesting systems I have seen, we can assume that there are two categories: The for-loopers The Event generators Today, well talk about for-loopers. The for-loopers are my favorite type of backtesters. They are trivial to write and super fun to expand but they have some vital flows and sadly the majority of backtesters out there is for-loopers (ps: I need to find a better name for this). How for-loopers work Using a for loop (as you might have guessed). It is something like this: Very simple right This is how one backtesting system works, that runs a momentum strategy: So, what is the problem Very difficult to scale (horizontally) Needs lots of work to keep your applystrategy() working on backtesting and production You need to have everything in the same programming language Lets dive into these, one by one. Scalability . I was experimenting a couple a weeks ago with a hill-climbing algorithm to optimize one of my strategies. It is still running. After two weeks. And I build uber-scalable systems for a living. Why is it still running You can use multiprocessing. Disco. producerconsumer (using ZeroMQ ) or just threads to speed this up but some problems are not embarrassing parallel (yes, this is an actual term, not one of my made-up words). The amount of work to scale a backtester like this (especially when you want to do same machine learning on top of it) is huge. You can do it but it is the wrong way. Production and backtesting in sync This. The times I have been bitten by this. I can recall the lost trades where I was hm, why I entered this trade or my old time favorite WHY TRAILING STOP WAS APPLIED NOW. Story time: I had an idea in order to optimize my strategy, to run a backtester to see what would happen if I could put a trailing stop AFTER the trade was profitable in order to always secure profits. Backtesting worked like a charm at a 13 increase of earnings and production lost every single trade . I figured it out after my algo lost 3400 in a couple of hours (a very expensive lesson). Keeping the applystrategy in sync is very difficult and becomes almost impossible when you want to do it in a distributed fashion. And you dont want to have two version of your strategy that are almost identical. Unless you have 3400 to spare. Using different languages I love Python. And Erlang. And Clojure. And J. And C. And R. And Ruby (no actually I hate Ruby). I want to be able to leverage the strength of other languages in my system. I want to try out strategies in R where there are very well-tested libraries and there is a huge community behind it. I want to have Erlang to scale my code and C to crunch data. If you want to be succesful (not only in trading), you need to be able to use all the available resources without prejudices. I have learnt tons of stuff from hanging out with R developers regarding how you can delta hedge bonds and visualize them or why Sharpe ratio can be a lie. Every language has a different crowd and you want as many people pouring ideas into your system. If you try to have applystrategy in different language then good luck with (2). Are you convinced now Well, I am not trying to convince you as for-loopers is a great way to run your initial tests. It is how I started and for many strategies I dont send them down to the pipeline. A better way (so you can sleep at night) is the event generators. Coming up next, sharing and discussing my simplest (but most successful) backtester If you have more feedback, ping me at jonromero or signup to the newsletter. Legal outro. This is an engineering tutorial on how to build an algotrading platform for experimentation and FUN. Any suggestions here are not financial advices. If you lose any (or all) you money because you followed any trading advices or deployed this system in production, you cannot blame this random blog (andor me). Enjoy at your own risk. Before running any live algotrading system, it is a good practice to backtest (that means run a simulation) our algorithms. Have in mind that this doesnt mean that if your system is killing it for the last 5 yearsmonthsdays it will make a profit but it is a good indicator that you might be on to something. There are four things that we need to take into consideration when we do our backtesting: The quality of the data How to load them efficiently How to built our backtesting system Try to have our backtesting and our live system share as much code as we can Today, we are going to focus on (1) and (2). For Forex data, I am using GainCapital. Their data are in the form of ticks. For a free source it is good enough. I used to use Oandas historical data service but it seems that they moved it to a premium product. Too bad. Make sure that you use GainCapitals data only for experimentation. For any other kind of paid historical data (ETFs, stocks, options stc), I am using eoddata (they also have some forex historical data but I havent used them). Lets download data for a week and experiment a little bit. The link to the data is ratedata. gaincapital20151120NovemberEURUSDWeek1.zip for the first week of November 2015. First we need to unzip the file. python gtunzip EURUSDWeek1.zip and youll get a 25MB file named EURUSDWeek1.csv. These are data for one week for one currency pair. You can imagine the amount of data you need to process for all currencies for the last five years (hint: a lot). But dont worry, we are going optimize this. For now, lets open the file and inspect. the things that we care about is the RateDateTime, RateBid and RateAsk. As you can understade each line has a timestamp and the how much was the price to buy or sell. Formats downloaded by other services are pretty similar. There are many ways to load these data into Python but the most preferable when it comes to data slicing and manipulating is using Pandas. We can always use the csv library to load data (and it might be faster) but we need to do some optimizations and processing first that as you will see it is pretty easy with pandas. Another great tool to load TONS of GBs pretty efficiently and very fast is using Bcolz. covered in a much later post (or you can read a preview if you have signed up in the newsletter . Manipulating data using Pandas The data we downloaded are in ticks. Unless we are building an UHFT (ultra high frequency trading) algorithm, it is much more efficient (memory, storage and processing-wise) to group these ticks into seconds (or minutes or hours depending on your strategy). This will make our download scale down from 25MB to just 35KB which translate to HUGE performance and memory benefits. Lets group all these data in 15 minutes. How Time to fall in love with resample. The resampled the dataset looks like this: This is called OHLC (Open High Low Close) bar for every 15 minutes . You can see now that the ticks are grouped in 15 minute segments and you have the highest and lowest point that the price reached during these 15 minutes and also the openclose for buy and sell. Pure gold Not only you have all the information you need but now it is extremely fast to load it. You just need to save the data: and then you can reuse this 35kb file. We can write a simple momentum algorithm that checks if there was a huge movement the last 15 minutes and if that was the case, lets buy. We will dive into this in a later post. You can see the code as always on github . If you have more feedback, ping me at jonromero or signup to the newsletter. Legal outro. This is an engineering tutorial on how to build an algotrading platform for experimentation and FUN. Any suggestions here are not financial advices. If you lose any (or all) you money because you followed any trading advices or deployed this system in production, you cannot blame this random blog (andor me). Enjoy at your own risk. Before building any algotrading systems, you need to know how to trade manually. What that actually means is that you need to lose money on your own before blaming the machine. So einfach ist das. So, lets talk about Foreign Exchange or Forex as the cool guys call it. First of all, why do we choose Forex for algotrading Why dont we become millionaires trading like everybody else Why not just buy Tesla, Amazon, Google, Facebook, Twitter and hope for the best (PS: please read the legal outro at the end of this blog post before buying any stocks). Easy answer. You cannot win (or lose) money fast enough by buying stocks. Forex has a nice (or terrible, depending on which side of the coin you are) thing called leverage . Leverage can be 1:10, 1:50, 1:100, 1:200, 1:1000 depending on how suicidal you are or how sketchy your broker is (dont worry, well talk about brokers in the next post). Wir sehen ein Beispiel. We want to place a trade of 1k. The logical thing is that in order to buy something that costs 1k, you need to have in your account 1k, right Nope. You can always get a loan. Oooooooor: Enter leverage. If we have a 1:100 leverage, we can place a trade and control 1k with just 10. For those that failed at math (dont be ashamed, I am one of you), 10 x 100 (leverage) 1,000. That means you can trade big and win big Actually 100 times more big . The catch is that you can actually go 100 times more small . Lets have another example. I just got my bonus (1k) and I want to play on Forex. Without any leverage, I can buy 1,000 Forex units that cost 1 (by the way, there are no Forex units but well talk about this later). How many units can I buy with 1:50 leverage If you answer if 100,000, you did something wrong. The answer is 50,000 (1,000 x 50 leverage). Hier hast du es. One of the reasons that we are doing Forex, is because you can lose win big. Well get back to leverage when we start placing trades. There are three more exciting reasons actually that are even more awesome (dare to say awesomer). Forex (almost) never sleeps. The markets are open ALL DAY, six days per week. To be more exact, there is not one market but four and they are overlapping providing the all day effect. Forex is very volatile and there are tons of money moving around (more than 5 trillion per day ). Crazy right No fees on trades. You dont pay 10 per trade like you are doing with stocks. Here you pay the spread which is just a fraction of a cent (again, well talk about this in another post). All these reasons (leverage, all-day, volatility, fees) make Forex the most exciting platform to build and deploy your algorithms. Coming up next, Forex brokers. How not to be scammed before even writing a line of code. If you have more feedback, ping me at jonromero or signup to the newsletter. Legal outro. This is an engineering tutorial on how to build an algotrading platform for experimentation and FUN. Any suggestions here are not financial advices. If you lose any (or all) you money because you followed any trading advices or deployed this system in production, you cannot blame this random blog (andor me). Enjoy at your own risk. Das ist es. Every week, I get at least 10 DMs on twitter asking on how to experiment with algotrading, Forex and portfolio analysis and Ive decided that its time to do something about it. Update: Find the posts here . So, I am planning to cover the basics of how to build your own trading platform, write your own strategies and go on vacations while electrons are making you money. Or zeroing your account. Either way, it is going to be fun The majority of the examples are going to be in Python even though there might be parts in Erlang and Ill try to keep it as easy as it can be. Lets talk now about what the final product will look like. We are building a system where you will be able to: Simulate your strategy (this is called backtesting ) Execute your strategy without supervision Alert you via smsemail for trades and errors Be scalable and trivial to deploy new updates Being able to run even from your home (from a raspberrypi for example) I assume this is going to be a total of 20 chapters, give or take. That is a system similar to the one that I am running the last year and includes a UI, sms alerts, backtesting pipeline, continuous delivery and all the cool stuff that us geeks love. All code will be on github and if everything goes well, Ill wrap it up in a book for everyone to enjoy. I have like three chapters almost done, so if you want early access just ping me at - jonromero . These are all the post that have been written up until now. I may addremove post as I get more feedback. I love Forex because: It has enormous amount of data (volume) These data are coming extremely fast (velocity) You need to consider multiple resources when you are building your strategy (variety) My definition of BigData is that you have volume-velocity-variety information and you need to react on it right now (realtime). It is one of the main reasons why I dont like Hadoop (ok, the other is because I dont like Java:). Forex is the best place if you want to start playing with BigData. You have (at least) one data channel, hitting you with data, you need to keep running algorithms on this stream (sometimes doing correlations up to a week) and you need be able to respond very fast. If a garbage collector kicks in or if you need to grab data from a database (even if this DB is in memory - long live Redis) then you will have issues. Thats the reason why most of the trading databases have all their data in the same memory space and have custom languages doing the analysis (like Kdb ). That was the inspiration for LDB. Millions of data sources (mobile phones), hitting your database and calculatingupdating for each one of the requests thousands of counters and running all sorts of algorithms. Per request. In realtime. But lets face it. The vast majority of userscompanies will never have millions (or even thousands) of requests hitting their servers. Thats why I started a new opensource database with codename: HybrisDB. HDB has the following characteristics: Simple to install (no moving parts) Simple to use (pre-defined dashboards) It will be perfect for the 99 of userscompanies but not for the 1 like Facebook or Google (sacrificing Enterprise features) The concept is to have a dashboard, to watch indicators going onoff and then (maybe) connect to a system to place an order. Sounds like an interesting cool hobby project and I still try to decide between using Erlang or Clojure for this. Ping me on twitter if you have any ideas One of my new years resolution was study one of your habits each month and I decided to focus on what activities I am spending my online time. So, I installed RescueTime which is a very cool app that sits on the background and creates reports about which apps and sites you are using the most. And no, it is not sending that info to NSA (you are not that important). Even though I spent most of my time working, writing and communicating, I also spent around 2 hours on average on Facebook (gasp). No biggie. What I hated was that for the majority of times I was scrollingrefreshing for new updates. Like opening your refrigirator every two minutes even though you know it is empty Damn you habits So, spending 2 hours every day (sometimes more) on Facebook, means 60 hours per month or 7 working days . 7 freaking working days each month. 7 days, each day with 8 full hours, to sleep, go out, exercise, write a book, learn something new. What I did was installing StayFocused. a free plugin for your browser that doesnt let you spent more than 10 minutes on specific sites everyday. Und rate was. The I am just using facebook to communicate is such a lame excuse as I had no problem communicating with my friends, even by using facebook for 10 minutes. Now, give it a shot and tell me what you built in your spare time


No comments:

Post a Comment