Wednesday, 18 October 2017

Forex Python Api


Um historische Daten aus der API zu erhalten, muss ein Benutzer Level 1 Marktdatenabonnements für diesen Vertrag haben. Historische Daten sind in TWS-Charts für viele Arten von Instrumenten verfügbar, ohne Marktdaten-Abonnements zu haben, werden aber der API nicht zur Verfügung stehen, es sei denn, alle Anforderungen an Live-Marktdaten sind erfüllt. Wenn Sie historische Daten aus der TWS abrufen, beachten Sie die Historical Data Limitations. Anfordern historischer Daten Historische Daten werden aus der TWS über die Funktion IBApi. EClient. reqHistoricalData erhalten. Jede Anfrage benötigt: Eine eindeutige Kennung, die zur Identifizierung der eingehenden Daten dient. Die IBApi. Contract Sie interessiert sind. Die Anfragen Enddatum und Uhrzeit. Die Zeitspanne (oder Valid Duration String Einheiten), um von den Anfragen endet Ende und Uhrzeit zurückzukehren. Die Daten-Granularität oder Gültige Bar-Größen Die Art der abzurufenden Daten. Siehe Historische Datentypen (whatToShow) Ob Daten, die nur innerhalb der regulären Handelszeiten (RTH) generiert wurden, abrufen oder nicht, das Format, in dem das eingehende Balkendatum dargestellt werden soll. Beachten Sie, dass für Tagesleisten nur das Format yyyyMMdd verfügbar ist. Zum Beispiel, eine Anfrage mit einem Enddatum und Zeit von 20160127 23:59:59, eine Dauer von 3 D und eine Bar Größe von 1 Stunde wird drei Tage im Wert von 1 Stunde Bars Daten, in denen die letzte Bar wird Seien Sie der nächstgelegene bis 20160127 23:59:59. String queryTime DateTime. Now. AddMonths (-6).ToString (quotyyyMMdd HH: mm: ssquot) client. reqHistoricalData (4001, ContractSamples. EurGbpFx (), queryTime, quot1 Mquot. Quot1 dayquot. QuotMIDPOINTquot 1, 1, null) Client. reqHistoricalData (4002, ContractSamples. EuropeanStock (), queryTime, quot10 Dquot. "1" 1, 1, null) Kalender cal Calendar. getInstance () SimpleDateFormat form new SimpleDateFormat (quotyyyMMdd HH: mm: ssquot) String formatiertes Formular. Format (cal. getTime ()) client. reqHistoricalData (4001, ContractSamples. EurGbpFx (), formatiert, quot1 Mquot .11. 10-Quartett (1) 1) 1) 1) 1 2 1 2 3 4 5 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 7 9 (), QueryTime, quot1 Mquot. Quot1 dayquot. MIDPOINTquot. 1, 1, Nichts) client. reqHistoricalData (4002, ContractSamples. EuropeanStock (), queryTime, quot10 Dquot. "1, 1, Nichts) char queryTime 80 std :: strftime (queryTime, 80, quotYmd H: M : Quint. dr. dr. dr. dr. dr. dbdddddddddddddddddddddddddddddddddddddddddddddddddddddddddd , 1, 1, TagValueListSPtr ()) 1 160 queryTime (datetime. datetime. today () - 2 160 datetime. timedelta (days180)) strftime (quotYmd H: M: Squot) 3 160 String queryTime DateTime. Now. AddMonths (-6).ToString (quotyyyMMdd HH: mm: ssquot) 4 160 self. reqHistoricalData (4101, ContractSamples. USStockAtSmart (), queryTime, 5 160 quot1 Mquot. Quot1 dayquot. MIDPOINTquot 1, 1 , 6 160 self. reqHistoricalData (4001, ContractSamples. EurGbpFx (), queryTime, 7 160 quot1 Mquot. Quot1 dayquot. QuotMIDPOINTquot 1, 1,) 8 160 self. reqHistoricalData (4002, ContractSamples. EuropeanStock (), queryTime, 9 160 quot10 Dquot. Quot1 minquot QuotTRADESquot. 1, 1,) Abfrage des Anfangs der historischen Daten Um den frühesten verfügbaren Datenpunkt für ein bestimmtes Instrument und einen Datentyp zu finden, befindet sich eine Funktion in der API ab v973.02 und v963 von TWSIBG, IBApi :: EClient :: reqHeadTimestamp client. reqHeadTimestamp (14001, ContractSamples. USStock (), quotTRADESquot 1, 1) client. reqHeadTimestamp (4003, ContractSamples. USStock (), quotTRADESquot 1, 1) client. reqHeadTimestamp (14001, ContractSamples. USStock (), quotTRADESquot 1, 1 ) MpClient-gtreqHeadTimestamp (14001, ContractSamples :: EurGbpFx (), quotMIDPOINTquot 1, 1) 1 160 self. reqHeadTimeStamp (4103, ContractSamples. USStockAtSmart (), quotTRADESquot 0, 1) Der resultierende Kopfzeitstempel wird an die Funktion IBApi zurückgegeben :: client :: headTimestamp public class EWrapperImpl. EWrapper public void headTimestamp (int reqId, string headTimestamp) Console. WriteLine (quotHead Zeitstempel) Anforderungs-ID:, Kopf Zeitstempel: ReqId, headTimestamp) public class EWrapperImpl implementiert EWrapper public void headTimestamp (int reqId, String headTimestamp) System. Out. println (quotAnz Zeitstempel, Req Id: ReqId quot, headTimestamp: headTimestamp) Öffentliche Klasse EWrapperImpl Public Sub headTimestamp (requestId As Integer, timeStamp As String) implementiert IBApi. EWrapper. headTimestamp Console. WriteLine (quotHead Zeitstempel Request Id :, Kopfzeitstempel: AnforderungId, timeStamp) Klasse TestCppClient. Öffentlicher EWrapper void TestCppClient :: headTimestamp (int reqId, const std :: stringamp headTimestamp) printf (quotHead Zeitstempel ReqId: d - Kopf Zeitstempel: s, nquot. ReqId, headTimestamp. cstr ()) 1 160 Klasse TestWrapper (Wrapper. EWrapper): 1 160 def headTimestamp (self, reqId: int, headTimestamp: str): 2 160 print (quotHeadTimestamp: quot reqId, quot. HeadTimestamp) Erhalt historischer Daten Die historischen Daten werden über den IBApi :: EWrapper ausgeliefert :: historicData-Methode in Form von Leuchtern. Sobald alle Leuchter empfangen worden sind, wird die IBApi. EWrapper. historicalDataEnd Marker die öffentliche Klasse EWrapperImpl gesendet. EWrapper public virtuelle void historicData (int reqId, string date, double open, double high, double low, double close, int volume, int count, double WAP, bool hasGaps) Console. WriteLine (quotHistoricalData. Quot reqId quot - Datum: Datum Klicken Sie auf "Öffnen", "Öffnen", "Hoch", "Hoch", "Niedrig", "Niedrig", "Niedrig" Virtuelles void historicDataEnd (int reqId, string startDate, string endDate) Console. WriteLine (quotHistoricalDataEnd - quot reqId quot von quot startDate quot to quot endDate) public class EWrapperImpl implementiert EWrapper public void historicData (int reqId, String date, double open, double high , Double low, double close, int volume, int count, doppelte WAP, boolean hasGaps) System. out. println (quotHistoricalData. Quot quot quot - Datum: quot date quot, Open: quot offen, High: quot high quot, niedrig : "Niedrig", "Schließen", "Schließen", "Schließen", "Zitat", "WAP": "WAP": "HasGaps": "HasGaps".println (quotHistoricalDataEnd. ReqId Als Integer, Datum Als String, öffnen Sie als Double, high As Double, low As Double, schließen Sie als Double, Volume As Integer, Zähl als Integer, WAP als Double, hasGaps als Boolean) implementiert IBApi. EWrapper. historicalData Console. WriteLine (quotHistoricalData - ReqId am amp reqId amp quot Datumsdatum amp date amp quot offener amp offener amp quot High quot amp high amp quot Niedriger Quell-Verstärker-Verstärker-Verstärker-Verstärker-Verstärker-Verstärker-Verstärker-Verstärker-Verstärker-Verstärker-Verstärker-Verstärker-Verstärker-Verstärkungsfaktoren - ReqId amp quot Start Start amp start amp quot End beendet amp end amp quotquot) class TestCppClient. Public EWrapper void TestCppClient :: historicData (TickerId reqId, const std :: stringamp date, double open, double high, double low, double schließen, int volume, int barCount, double WAP, int hasGaps) printf (quotHistoricalData ReqId: ld - Datum: s, Offen: g, Hoch: g, Niedrig: g, Schließen: g, Volumen: d, Anzahl: d, WAP: g, HasGaps: dnquot, reqId, date. cstr (), offen, hoch, niedrig, Close, volume, barCount, WAP, hasGaps) void TestCppClient :: historicDataEnd (int reqId, std :: string startDateStr, std :: string endDateStr) std :: cout ltlt quotHistoricalDataEnd. ReqId: ltlt reqId ltlt quot - Startdatum: ltlt startDateStr ltlt quot, Enddatum: ltlt endDateStr ltlt std :: endl 1 160 Klasse TestWrapper (wrapper. EWrapper): 1 160 def historicData (self, reqId: TickerId, date : Str, offen: float, high: float, 2 160 low: float, schließen: float, volume: int, barCount: int, 3 160 WAP: float, hasGaps: int): 4 160 super () historische Daten (reqId, Datum, offen, hoch, niedrig, schließen, Volumen, 5 160 barCount, WAP, hasGaps) 6 160 print (quotHistoricalData. Quotal, quot Datum: Datum, quotOpen: offen, 7 160 quotHigh: high , Quatrisch, fehlerhaft, fehlerhaft, fehlerlos, fehlerhaft, fehlerhaft, fehlerhaft, dgl. Start: str, end: str): 2 160 super () historischDatenEnd (reqId, start, end) 3 160 print (quotHistoricalDataEnd quot. ReqId, quotfromquot. Start, quottoquot Ende) Gültige Dauer String Einheiten Gültige Bargrößen Historische Datentypen (WhatToShow) Verfügbare Daten pro ProduktUpdate: Ich habe den Code aktualisiert, damit es mit Oandas neue API funktioniert. Holen Sie es hier Zeit, um über Makler zu sprechen, wie man einen Handel programmgesteuert und vor allem, wie man nicht betrogen wird. Ein Makler ist nichts weiter als ein Unternehmen, das es Ihnen ermöglicht, Vermögenswerte auf einem Markt durch ihre Plattform zu handeln (zu kaufen oder zu verkaufen). Was ist sehr wichtig für algotrading ist: Der Broker bietet eine API, um für uns zu bestellen Bestellungen können Sie ein Demo-Konto, um Ihre Inszenierung Umwelt und experimentieren Die Ausbreitung ist so klein wie möglich In unserem Fall sind wir nicht wirklich über Spread zu kümmern Wie wir es nicht tun werden High Frequency Trading zu jeder Zeit bald. Obwohl Makler reglementiert sind, gab es in den vergangenen Jahren Vorfälle, wurden Makler aufgrund bestimmter Bedingungen gefaltet. Seien Sie sehr vorsichtig, wenn es keine Bewertungen des Maklers im Internet gibt (oder die meisten von ihnen sind schlecht) Wenn der Broker Ihnen einige verrückte Hebelwirkung (wie 1: 200) bietet Wenn der Makler in einem sehr fremden Land zu sein scheint Was könnte passieren Ist, dass Sie anfangen, etwas Geld zu machen und Sie arent in der Lage, sie heraus zu ziehen. Ernst. Super stressige Situation. Aber wir können zu einer glücklicheren Notiz wechseln, die ein Konto eröffnet und unseren ersten programmatischen Handel platziert. Whooha Ich benutze 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 in Ihrem Demo-Konto angemeldet haben, gehen Sie zum Verwalten des API-Zugriffs. Dort finden Sie Ihren API-Schlüssel, den wir in unserem System nutzen werden, um Trades zu platzieren. MACHEN SIE SICHER, DASS SIE DIESEN SCHLÜSSEL DURCHGEFÜHREN Der Code dafür ist und alle anderen Beiträge ist auf github und du kannst es installieren und es ziemlich leicht laufen lassen. Update: Oanda hat eine neue (Kickass) Execution Engine namens v20 veröffentlicht und sie haben eine neue (verbesserte) API veröffentlicht. Dieser Beitrag wurde aktualisiert, um die neue API zu verwenden, aber wenn (aus irgendeinem Grund) du den alten Code überprüfen möchtest, ist es hier genau richtig. Sie haben Glück, dass Sie eine Verbindung zu Oanda herstellen, die eine conf-Datei benötigt - die Sie mit einem Skript generieren können, das Oanda hier bereitstellt oder einfach nur selbst erstellen kann. Warum wolltest du das zuerst, wenn es um Anmeldeinformationen geht (und mein Geld), ich bevorzuge alles, was los ist. Und ich mag es nicht, PyYamL zu installieren, nur um eine conf-Datei zu lesen. Fühlen Sie sich frei, jede Methode zu verwenden. Jetzt bereite dich darauf vor, erstaunt zu sein. Der Code ist einfach. Wir initialisieren die API: und jetzt können wir eine Bestellung aufgeben (5000 Einheiten EURUSD kaufen) Prüfen Sie den aktuellen Preis ist so einfach Super einfach. Mach dir keine Sorgen darüber, was EURUSD ist oder wie viele Einheiten wir kaufen oder was ein Markt bestellen ist. Denn jetzt haben wir unseren ersten Handel aus unserem Laptop gelegt und wir werden unsere eigene API bauen, um Trades zu platzieren. Spannende Sachen Sie können die Oandas-Dokumentation hier lesen, um zu sehen, was Sie sonst noch mit ihrer API machen können und finden Sie hier die Python-Bibliothek. Hier finden Sie Beispiele von Oandas github. Als nächstes kommen wir an eine echte LIVE Algotrading System, die von meinem RaspberryPI zu Hause läuft. Youll in der Lage sein zu sehen, die (fast) endgültige Programm läuft und gut reden mehr über Forex und Strategien. Wenn du mehr Feedback hast, kommst du mich bei jonromero oder melde dich zum Newsletter an. Gesetzliche Outro Dies ist ein Ingenieur-Tutorial, wie man eine Algotrading-Plattform für Experimente und FUN baut. Irgendwelche Vorschläge hier sind keine finanziellen Ratschläge. Wenn du irgendwelche (oder alle) das Geld verlierst, weil du irgendwelche Handelsberatungen verfolgst oder dieses System in der Produktion einsetzest, kannst du diesen zufälligen Blog nicht beschuldigen (andor me). Genießen Sie auf eigene Gefahr. Dies ist mehr von einem Wie Sie Ihre eigene Algotrading-Strategie zu bauen - die Ethereum-Edition und nicht ein Geld verdienen schnell Blog-Post. Es ist auch ein echtes Beispiel mit echten Renditen (und echte Produktionsfehler, die mir Geld kosten), wo man sehen kann, wie man Chancen identifiziert, warum Algotrading ist genial und warum das Risikomanagement Ihren Arsch retten kann. Ich bekomme diese Frage fast täglich. Wie kann ich eine gute Strategie finden Wie kann ich meine eigenen bauen Ich brauche einen PhD in Mathematik haben Statistiken Newsflash: Wenn ich eine Strategie schreiben kann, kann jeder eine Strategie schreiben. Vertraue mir darauf. Der einzige Trick ist, nach einem einfachen 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 ganzen Kreis macht. Ich fing an, mich früher mit Ethereum zu beschäftigen, da ich die Algorithmen auf dem Blockchain-Ding wirklich mochte. Als TheDAO herauskam, las ich alles darüber und liebte die Idee. Sie müssen nicht verstehen, was Ethereum, theDAO, Blockchain ist an diesem Punkt (ich verspreche, dass ich auf einem anderen Post wandern werde). Die gleichen Ideen gelten für Forex, Stocks sogar Pokemon Bälle. Mein vier Schritt - Kapitän offensichtlich - System habe ich persönlich einen bestimmten Weg, den ich arbeite. Schritt eins . Identifizieren Sie eine Idee. Meine Idee in diesem Fall ist, dass es ein paar Austausch mit Ethereum und DAO-Token gibt. Was, wenn es zwischen diesen beiden Schritt eine Arbitrage gab. Die Idee manuell testen Wenn irgend etwas irgendwie funktioniert, bin ich auf etwas. Alles, was ich tun musste, ist, alle Schritte manuell auszuführen und notieren Sie alle Gebühren, Bedingungen oder alles, was dokumentiert werden sollte. Schritt drei . Automatisieren Dieser Algorithmus ist kein Hochfrequenz-Handelsalgorithmus. Es gibt eine beträchtliche Menge an Zeitrisiko (was man auch beseitigen kann), aber was ich getan habe, konnte man manuell machen. Das Problem ist, dass ich die ganze Zeit vor meinem Computer verbringen musste, ob es eine Arbitrage-Bedingung gibt und wenn es war, musste ich schnell handeln und ohne zu verwirren. Oh, und ich musste fünf meiner Freunde rekrutieren, um das zu skalieren. Lange Geschichte kurz, verbrachte ich Präsidenten Tag schreiben ein einfaches Programm, das alle meine manuellen Schritte wiedergeben wird. Das Programm würde abstürzen und es war nicht mehr so ​​100 Zeilen Code. Dies ist die Datenerhebung, wo ich sehe, ob es einen Vorteil gibt, dass Algorithmen mir geben können. Vorteile können sein: Etwas, das automatisiert wird und 1000 mal pro Sekunde oder 1000 Mal parallel läuft Etwas, das schneller denkt, als ich kann Etwas, das keine Gefühle hat, um mein System zu beschädigen Wenn es mindestens eine oder mehrere Bedingungen erfüllt ist, werde ich Beginnen, den Algo zu bauen und neu zu schreiben. Schritt vier. Alles in Ich bin Scherz und youll sehen in ein wenig, warum Risikomanagement ist super wichtig in diesem Geschäft. Lets diskutieren ein wenig darüber, was diese Arbitrage war. Die Idee ist: Ich frage mich, ob Kraken und Shapeshift unterschiedliche Preise für das gleiche Vermögen haben. Dies ist ein klassischer Arbitrage-Fall (Kraken und Shapeshift sind Austausche). Ich könnte DAO für die ETH auf Kraken austauschen, ETH zu Shapeshift überweisen, ETH für DAO austauschen und an Kraken zurückschicken und wegen Preisinkonsintensitäten würde ich mit mehr DAO enden, als ich anfänglich Risk-freies Geld, die beste Art von Geld anfing . Sie können Geld verdienen, solange ETHDAO von Kraken DAOETH von ShapeShift gt 1 (Gebührengas). Sehr einfache Formel, rechts Jeder Zyklus, war eine 2 bis 10 Rückkehr meines Kapitals. Nach einer Weile fing ich an, die Grenzen von Shapeshift zu schlagen, und ich musste das parallel machen. Die Frage ist, was würden Sie tun, wenn Sie einen Algorithmus, der Sie 10 Ihres Geldes alle 20 Minuten macht. Die dümmste Sache, die Sie tun konnten, ist Tonnen Geld in sie hinein. Wenn Sie mit dem griechischen Wort hybris nicht vertraut sind. Betrachte dich glücklich Hybris ist, wenn du denkst, dass du unbesiegbar bist, besser als Götter. Und das ist das größte NEIN, das du im Handel machen kannst. Nach ein paar wochen wurde der droge gehackt 160 Millionen Dollar wurden gestohlen (oder sollte ich gefroren sagen) 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 schlau (glücklich) genug, um gute Risikomanagement-Gewohnheiten zu haben (danke Forex). Ich habe nie, jemals jemals mehr riskieren, dass 2 meiner Hauptstadt, auch wenn es scheint die beste Art von Deal. Zum Glück wurde das Geld wiederhergestellt und ich konnte meinen DAO in Ethereum umwandeln (aber ja, ich habe im Flug WiFi gekauft, um mit dem loszugehen, was los ist). Diese ganze Erfahrung erinnert daran, dass es immer Dinge gibt, die man nicht vorhersagen kann. Dinge, die du nicht kontrollieren kannst. Dies war ein systematisches Risiko und es gab keine Möglichkeit, dass ich es gesehen hätte. Pushing Buttons und Algorithmen sind nicht genug. Richtiges Risikomanagement und wissen, wann man eine Chill Pille nehmen muss, ist, was dich im Spiel halten kann. Auf dem nächsten Beitrag werde ich den ganzen Algorithmus posten und zeile für Zeile. Ich plane auch ein bisschen mehr über theDAO und Ethereum zu diskutieren. Wenn du es nicht möchtest, irgendwelche davon zu verpassen und noch etwas mehr Infos zu bekommen, kannst du mich gerne an den Newsletter anmelden, wo ich über Fintech, Algorithmen und die Märkte spreche. Übrigens, wenn du deine eigene KryptoWelt machen willst und mehr über Ethereum erfahren will, habe ich einen tollen Post mit dem hier gebuchten Code. Als nächstes kommen: Tauchen in das ETHDAO-Algotrading-Programm Wenn Sie mehr Feedback haben, pingen Sie mich bei jonromero oder melden Sie sich dem Newsletter an. Gesetzliche Outro Dies ist ein Ingenieur-Tutorial, wie man eine Algotrading-Plattform für Experimente und FUN baut. Irgendwelche Vorschläge hier sind keine finanziellen Ratschläge. Wenn du irgendwelche (oder alle) das Geld verlierst, weil du irgendwelche Handelsberatungen verfolgst oder dieses System in der Produktion einsetzest, kannst du diesen zufälligen Blog nicht beschuldigen (andor me). Genießen Sie auf eigene Gefahr. Maschinelles Lernen und Handel ist ein sehr interessantes Thema. Es ist auch ein Thema, wo Sie Tonnen Zeit schreiben können Code schreiben und lesen Papiere und dann ein Kind kann Sie beim Spielen Mario Kart schlagen. In den Nextsposten werden wir reden: Optimieren Sie Einträge und Exits. Dies und nur dies könnte eine Tonne Unterschied in Ihrer Bank rollen machen. Berechnen Sie die Positionsgröße (falls Sie das Kelly-Kriterium nicht mögen) Finden Sie mögliche Korrelation zwischen verschiedenen Paaren (Paarhandel). Ich liebe die EURUSD vs GBPJPY Korrelation Berechnen Unterstützung Ampere Widerstand Linien Aber was ist Machine Learning Machine Lernalgorithmen sind Algorithmen, wo eine Maschine können Muster in Ihren Daten zu identifizieren. Ja, das ist so einfach. Zum Beispiel finden Sie alle Tiere in diesem Foto und zeichnen Sie eine Schachtel um sie herum. Auch nennen dieses Tier. Verrückt ich weiß Für den Handel, wie Sie sich vorstellen können, ist es ziemlich ähnlich: Um eine Maschine zu lernen, müssen Sie es lehren, was richtig oder falsch ist (beaufsichtigtes Lernen) oder geben Sie ihm einen großen Datensatz und lassen Sie es wild (unbeaufsichtigt). Für die Identifizierung von Objekten ist dies einfach, aber was ist mit dem Handel Ich sah mich um zu sehen, ob es irgendeine Maschine Lernprogramm, das SR Zeilen identifizieren kann, aber ohne Erfolg. Also habe ich beschlossen, das erste maschinelle Lernprogramm in Python zu schreiben, das Stütz - und Widerstandslinien in Python identifiziert. Ein weiterer erster Hooray Aber wie kann ein Algorithmus diese Bereiche identifizieren Hoooooow Damen und Herren (und Roboter), lassen Sie mich Ihnen vorstellen, MeanShift. Ein unbeaufsichtigter Algorithmus, der vor allem für die Bilderkennung verwendet wird und ist ziemlich trivial zum Setup und Laufen (aber auch sehr langsam). Die Idee ist, dass dieser Algorithmus lässt mich meine Daten (Forex Ticks) in Bereiche zu teilen und dann kann ich die Kanten als Support-und Widerstandslinien verwenden. Coole Idee, aber es funktioniert Wir analysieren rund 12 Millionen Datenpunkte von EURUSD im Jahr 2014 und ein paar Monate von 2015. Die Widerstandslinien werden automa - tisch durch einen maschinellen Lernalgorithmus platziert. Was ist wirklich cool (und gespenstisch) ist, dass der Algorithmus so ziemlich nagelt es. NAILS es hart Es wird wirklich spooky, wenn wir den Algorithmus verwenden, um Mikrostrukturen zu identifizieren und Skalping zu starten. Das System ist in der Lage, jede Art von Zeitschriften Daten (Aktien, Forex, Gold, was auch immer) zu verarbeiten und es wird eine HTML-interaktive Diagramm (wie das Diagramm oben) mit Ihren Daten und die Maschine generiert SL zu machen. Der Code ist hier so verrückt. Jetzt können wir durch den Code gehen. Nachdem du deine Datenmenge hast, musst du sie lesen und reinigen. Bereit für einige Pandas Magie. Wir fallen die leeren Werte (Wochenenden) und dann probieren wir die Daten auf 24 Stunden Kerzenständer (ohcl). Das macht es viel einfacher zu plotten. Die gruppierten Daten sind die Daten, die wir in den ml-Algorithmus einführen werden. Dann bereiten wir die Daten vor, die wir im Algo verwenden werden. Auf der nächsten Post, gut zu erörtern, wie man diese Arbeit noch besser machen, diskutieren einige sehr interessante Ergebnisse (kann der Algorithmus tatsächlich über die Zukunft vorhersagen) und starten Sie es in unserem eigenen Handel. Wenn Sie den nächsten Artikel überprüfen und mehr über den Handel und die Investition mit Algorithmen lesen möchten, melden Sie sich dem Newsletter an. Als nächstes kommen: Machine Learning Gone Wild - Mit dem Code Wenn Sie mehr Feedback haben, ping mich bei jonromero oder melden Sie sich dem Newsletter an. Gesetzliche Outro Dies ist ein Ingenieur-Tutorial, wie man eine Algotrading-Plattform für Experimente und FUN baut. Irgendwelche Vorschläge hier sind keine finanziellen Ratschläge. Wenn du irgendwelche (oder alle) das Geld verlierst, weil du irgendwelche Handelsberatungen verfolgst oder dieses System in der Produktion einsetzest, kannst du diesen zufälligen Blog nicht beschuldigen (andor me). Genießen Sie auf eigene Gefahr. Update: Die Machine Learning Post wird episch sein, aber es braucht so viel Zeit, um den Code vorzeigbar zu machen. Bären Sie mit mir, coole Sachen kommen (wie Sie auf dem Newsletter lesen) Haftungsausschluss: DIES IST NICHT STEUER BERATUNG. Was ist wirklich überraschend ist, dass die Mehrheit der Anfragen im Newsletter sind: Verwenden Sie Werkzeuge, um Trading Machine zu unterstützen Lernen, um die Geschäfte zu optimieren Steuern Die ersten beiden, kann ich verstehen. Jeder will ein besserer Trader sein. Ich verstehe es. Aber Steuern TAXES Das ist dein Glückstag. Forex Steuern sind super einfach. Ernst. Standardmäßig (dies heißt § 988), werden alle Ihre Verluste Ihre Einkommenssteuern ohne die 3k Grenze pro Jahr ausgleichen. Das ist viel besser als der Aktienhandel, wo Verluste Ihre Kapitalgewinne ausgleichen. Aber was passiert mit Gewinnen WARUM SOLLEN SIE WARUM Die Mehrheit der Forex-Händler verlieren Geld (ich nenne es bezahlen Unterricht) das erste Jahr (s), so dass Sie besser dran halten es einfach, bis Sie eine bewährte und konsequente Strategie haben. Wenn du das sagst, wenn du einen Gewinn machst, wirst du bei kurzfristigem Kapitalgewinn (manchmal bis zu 40) besteuert. Die Lösungen, wenn Sie anfangen, Geld zu verdienen, sind: Auszug aus Abschnitt 988 und besteuert nach § 1256, wo 60 Gewinne als langfristige Kapitalgewinne besteuert werden und 40 als kurzfristig (aber jetzt Verluste können Ihr Einkommen nicht ausgleichen). Das ist sehr gut, wenn man Geld verdient, sehr schlecht, wenn man nicht. Starten Sie eine LLC Für Leute, die gerade angefangen haben, mit Forex zu experimentieren und algotrading, schlage ich immer vor, dass sie mit Abschnitt 988 (der Standard) bleiben und wenn sie anfangen, etwas Geld zu machen (konsequent) oder sie wollen, um Vollzeit zu gehen, mit mir zu sprechen :) Im Ernst, es gibt so viele Dinge, die Sie anfangen werden anders zu machen, wenn Sie von der Hobby-Bühne zum zweiten Einkommen in Vollzeit-Job gehen, dass es keinen Grund gibt, das zu optimieren. Als nächstes kommen: Maschinelles Lernen Gone Wild Wenn du mehr Feedback hast, kommst du mich bei jonromero oder melde dich zum Newsletter an. Gesetzliche Outro Dies ist ein Ingenieur-Tutorial, wie man eine Algotrading-Plattform für Experimente und FUN baut. Irgendwelche Vorschläge hier sind keine finanziellen Ratschläge. Wenn du irgendwelche (oder alle) das Geld verlierst, weil du irgendwelche Handelsberatungen verfolgst oder dieses System in der Produktion einsetzest, kannst du diesen zufälligen Blog nicht beschuldigen (andor me). Genießen Sie auf eigene Gefahr. Letztes Mal sprachen wir über den Für-Looper-Backtester (wie ich sie gerne anrufe). 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 () Sweet, lasst unsere Strategie laden, historische Daten laden, unseren Algorithmus ausführen und einige Ergebnisse ausdrucken Ich ziehe es vor, meine Strategien in einem JSON-Format zu haben, das den Namen der Strategie und einige Spezifikationen enthält (wie wie viele Pips für Stoploss oder Takeprofit usw.). Auf diese Weise, wenn wir mit einem ereignisbasierten Backtester beginnen, können wir die Strategie durch einen maschinellen Lernalgorithmus weiterleiten und versuchen, ihn zu optimieren. Die nächste Zeile lädt unsere Daten in. Ich weiß, dass die Leute nicht wie Gurke und es andere Möglichkeiten, um Daten zu laden (und wir werden über BColz irgendwann reden), aber für jetzt, nur nackt mit mir. Die nächste Zeile ist selbsterklärend. Wir übergeben die historischen Daten zu unserem Algo und wir bekommen einige Stats zum Drucken. Lässt uns auf den Algorithmus ein wenig konzentrieren und wir können Plotten etc. zu einem späteren Zeitpunkt diskutieren. Die Magie des einfachen Backtesting-Systems Bereiten Sie sich vor, wie lächerlich einfach das zu tun ist. Short comings Was passiert mit dieser Art von Backtesting ist, dass 1. youll wahrscheinlich Fehler machen, wenn Sie den exakt gleichen Algorithmus verwenden wollen 2. Sie werden nicht in der Lage, eine sehr komplexe Strategie zu schreiben (zumindest so einfach) 3. Sehr schwer zu skalieren (Verglichen mit ereignisbasierten) 4. Du musst deine Simulation und Ausführung in der gleichen Sprache haben, aber erinner dir daran, dass dies der beste und schnellste Weg ist, um zu beginnen und herauszufinden, wie all diese Dinge funktionieren. Als nächstes kommen wir mit anderen bekannten Backtestern in Python und fügen Graphen zu unserem eigenen hinzu Wenn Sie mehr Feedback haben, ping mich bei jonromero oder melden Sie sich dem Newsletter an. Gesetzliche Outro Dies ist ein Ingenieur-Tutorial, wie man eine Algotrading-Plattform für Experimente und FUN baut. Irgendwelche Vorschläge hier sind keine finanziellen Ratschläge. Wenn du irgendwelche (oder alle) das Geld verlierst, weil du irgendwelche Handelsberatungen verfolgst oder dieses System in der Produktion einsetzest, kannst du diesen zufälligen Blog nicht beschuldigen (andor me). Genießen Sie auf eigene Gefahr. Was ist ein gutes algotrading System ohne einige nette Strategien zu implementieren Im Folgenden gibt es eine Liste von Strategien, die ich online gefunden habe (oder mir von Händlern, die auf dem Newsletter sind). Ich plane, die Liste zu aktualisieren, während ich immer auf neue Ideen komme. Das Konzept ist, dass wir, wie wir immer mehr in unser algotrading System tauchen, Ihnen zeigen, wie man diese Strategien kodiert und einsetzt. Ich weiß sicher, dass die meisten von ihnen mit minimalen Änderungen arbeiten. Worst-Case-Szenario, youll haben ein System, um Ihre Annahmen zu testen. Hier ist die Liste (und bitte schicken Sie mir eine andere Strategie, die Sie denken, dass es eingeschlossen werden sollte): Nach oben kommen, teilen und diskutieren meine einfachste (aber erfolgreichste) Backtester Wenn Sie mehr Feedback haben, ping mich bei Jonromero oder Anmeldung an die Newsletter Gesetzliche Outro Dies ist ein Ingenieur-Tutorial, wie man eine Algotrading-Plattform für Experimente und FUN baut. Irgendwelche Vorschläge hier sind keine finanziellen Ratschläge. Wenn du irgendwelche (oder alle) das Geld verlierst, weil du irgendwelche Handelsberatungen verfolgst oder dieses System in der Produktion einsetzest, kannst du diesen zufälligen Blog nicht beschuldigen (andor me). Genießen Sie auf eigene Gefahr. Ein Backtest-System zu bauen ist eigentlich ziemlich einfach. Einfach zu schrauben, ich meine. Obwohl es Tonnen von ausgezeichneten Bibliotheken gibt (und gut durch sie irgendwann durchgehen), das tue ich immer, dies auf eigene Faust zu tun, um es richtig zu stimmen. Von allen Backtesting-Systemen, die ich gesehen habe, können wir davon ausgehen, dass es zwei Kategorien gibt: Die for-Loiper Die Event-Generatoren Heute sprechen wir gut über Loops. Die for-loopers sind meine Lieblings-Typen von Backtesters. Sie sind trivial zu schreiben und super Spaß zu erweitern, aber sie haben einige lebenswichtige Flüsse und leider die Mehrheit der Backtesters da draußen ist für-Looper (ps: Ich muss einen besseren Namen dafür finden). Wie for-Loopers arbeiten Mit einer for-Schleife (wie Sie vielleicht erraten haben). Es ist so etwas wie das: Sehr einfaches Recht Dies ist, wie ein Backtesting-System funktioniert, das läuft eine Impulsstrategie: Also, was ist das Problem Sehr schwer zu skalieren (horizontal) Braucht viel Arbeit, um deine Anwendungstrategie () auf Backtesting zu halten und Produktion Sie müssen alles in der gleichen Programmiersprache haben Lets tauchen in diese, eins nach dem anderen. Skalierbarkeit Ich habe vor ein paar Wochen mit einem Hügelkletteralgorithmus experimentiert, um eine meiner Strategien zu optimieren. Es läuft noch. Nach zwei Wochen. Und ich baue uber-skalierbare Systeme für ein Leben. Warum läuft es noch? Du kannst Multiprocessing verwenden. Disko. Producerconsumer (mit ZeroMQ) oder nur Threads, um dies zu beschleunigen, aber einige Probleme sind nicht peinlich parallel (ja, das ist ein tatsächlicher Begriff, nicht eines meiner Worte). Die Menge an Arbeit, um einen Backtester wie dies zu skalieren (vor allem, wenn Sie wollen, dass die gleiche Maschine Lernen auf der Oberseite davon) ist riesig. Sie können es tun, aber es ist der falsche Weg. Produktion und Backtesting in sync Dies. Die mal habe ich hier gebissen. Ich kann mich an die verlorenen Trades erinnern, wo ich hm war, warum ich diesen Handel oder meine alte Zeit Favorit betrachte. WARUM TRAILING STOP WURDE JETZT ANGEWENDET. Story Zeit: Ich hatte eine Idee, um meine Strategie zu optimieren, um einen Backtester zu laufen, um zu sehen, was passieren würde, wenn ich einen nachlaufenden Stop setzen könnte, nachdem der Handel rentabel war, um immer Gewinne zu sichern. Backtesting arbeitete wie ein Charme bei einer 13 Gewinnsteigerung und Produktion verloren jeden einzelnen Handel. Ich habe es herausgefunden, nachdem meine Algo 3400 in ein paar Stunden verloren (eine sehr teure Lektion). Die Aufbewahrungsstrategie in Synchronisation zu halten ist sehr schwierig und wird fast unmöglich, wenn man es in verteilter Weise machen will. Und du willst nicht zwei Version deiner Strategie haben, die fast identisch ist. Es sei denn, du hast 3400 zu ersparen. Mit verschiedenen Sprachen liebe ich Python. Und Erlang. Und Clojure. Und J. Und C. Und R. Und Ruby (nein eigentlich hasse ich Ruby). Ich möchte in der Lage sein, die Stärke anderer Sprachen in meinem System zu nutzen. Ich möchte Strategien in R ausprobieren, wo es sehr gut getestete Bibliotheken gibt und es gibt eine riesige Gemeinschaft dahinter. Ich möchte Erlang haben, um meinen Code zu skalieren und C, um Daten zu knacken. Wenn Sie erfolgreich sein wollen (nicht nur im Handel), müssen Sie in der Lage sein, alle verfügbaren Ressourcen ohne Vorurteile zu nutzen. Ich habe gelernt, Tonnen von Sachen aus hängen mit R-Entwickler in Bezug auf, wie können Sie Delta-Hedge-Anleihen und visualisieren sie oder warum Sharpe-Verhältnis kann eine Lüge sein. Jede Sprache hat eine andere Menge und Sie wollen so viele Menschen Ideen in Ihr System gießen. Wenn Sie versuchen, Bewerbung in verschiedenen Sprache haben dann viel Glück mit (2). Sind Sie jetzt überzeugt Nun, ich versuche nicht, Sie zu überzeugen, denn for-loopers ist eine großartige Möglichkeit, Ihre ersten Tests durchzuführen. Es ist, wie ich angefangen habe und für viele Strategien schicke ich sie nicht an die Pipeline. Ein besserer Weg (so können Sie nachts schlafen) ist die Eventgeneratoren. Als nächstes kommst du und teile meinen einfachsten (aber erfolgreichsten) Backtester. Wenn du mehr Feedback hast, kommst du mich bei jonromero oder melde dich zum Newsletter an. Gesetzliche Outro Dies ist ein Ingenieur-Tutorial, wie man eine Algotrading-Plattform für Experimente und FUN baut. Irgendwelche Vorschläge hier sind keine finanziellen Ratschläge. Wenn du irgendwelche (oder alle) das Geld verlierst, weil du irgendwelche Handelsberatungen verfolgst oder dieses System in der Produktion einsetzest, kannst du diesen zufälligen Blog nicht beschuldigen (andor me). Genießen Sie auf eigene Gefahr. Vor dem Ausführen eines Live-Algotrading-Systems, ist es eine gute Praxis, Backtest (das bedeutet, eine Simulation laufen) unsere Algorithmen. Denken Sie daran, dass dies nicht bedeutet, dass, wenn Ihr System tötet es für die letzten 5 Jahre Monate dauert es einen Gewinn, aber es ist ein guter Indikator, dass Sie auf etwas sein könnte. Es gibt vier Dinge, die wir berücksichtigen müssen, wenn wir unser Backtesting machen: Die Qualität der Daten Wie man sie effizient lädt Wie man unser Backtesting-System baut Versuchen Sie, unser Backtesting zu haben und unser Live-System teilen Sie so viel Code wie wir heute können , Wir werden uns auf (1) und (2) konzentrieren. Für Forex-Daten verwende ich GainCapital. Ihre Daten sind in Form von Zecken. Für eine freie Quelle ist es gut genug. Ich habe verwendet, um Oandas historischen Datendienst zu verwenden, aber es scheint, dass sie es zu einem Premiumprodukt verschoben haben. Schade. Vergewissern Sie sich, dass Sie GainCapitals-Daten nur für Experimente verwenden. Für jede andere Art von bezahlten historischen Daten (ETFs, Aktien, Optionen stc), benutze ich eoddata (sie haben auch einige Forex historische Daten, aber ich havent verwendet sie). Lets Download Daten für eine Woche und experimentieren ein wenig. Der Link zu den Daten ist ratedata. gaincapital20151120NovemberEURUSDWeek1.zip für die erste Woche im November 2015. Zuerst müssen wir die Datei entpacken. Python gtunzip EURUSDWeek1.zip und youll erhalten eine 25MB Datei namens EURUSDWeek1.csv. Dies sind Daten für eine Woche für ein Währungspaar. Sie können sich die Datenmenge vorstellen, die Sie für alle Währungen für die letzten fünf Jahre verarbeiten müssen (Hinweis: viel). Aber keine Sorge, wir werden das optimieren. Jetzt können Sie die Datei öffnen und überprüfen. Die Dinge, die wir interessieren, ist die RateDateTime, RateBid und RateAsk. Wie Sie unterschätzen können jede Zeile hat einen Zeitstempel und wie viel war der Preis zu kaufen oder zu verkaufen. Formate, die von anderen Diensten heruntergeladen wurden, sind ziemlich ähnlich. Es gibt viele Möglichkeiten, diese Daten in Python zu laden, aber am liebsten, wenn es um Datenschneiden und Manipulieren geht, benutzt Pandas. Wir können immer die csv-Bibliothek verwenden, um Daten zu laden (und es könnte schneller sein), aber wir müssen einige Optimierungen und Verarbeitung zuerst tun, wie Sie sehen werden, ist es ziemlich einfach mit Pandas. Ein weiteres tolles Tool zum Laden von TONS von GBs ziemlich effizient und sehr schnell ist mit Bcolz. In einer viel späteren Post (oder Sie können eine Vorschau lesen, wenn Sie sich im Newsletter angemeldet haben. Manipulieren von Daten mit Pandas Die Daten, die wir heruntergeladen haben, sind in Zecken. Wenn wir nicht einen UHFT (Ultra High Frequency Trading) Algorithmus bauen, ist es Viel effizienter (Speicher, Speicher und verarbeitungsweise), um diese Zecken in Sekunden (oder Minuten oder Stunden abhängig von Ihrer Strategie) zu gruppieren. Dadurch wird unsere Download-Skala von 25MB auf nur 35KB reduziert, was zu erheblichen Performance - und Speicherleistungen führt. Lasst uns alle diese Daten in 15 Minuten gruppieren, wie sich die Zeit mit dem Resample verliebt hat. Das resampled the dataset sieht so aus: Das heißt OHLC (Open High Low Close) Bar für alle 15 Minuten. Sie können jetzt sehen, dass die Zecken sind Gruppiert in 15 Minuten Segmente und Sie haben den höchsten und niedrigsten Punkt, dass der Preis während dieser 15 Minuten und auch die openclose für Kauf und Verkauf erreicht. Pure Gold Nicht nur Sie haben alle Informationen, die Sie benötigen, aber jetzt ist es extrem schnell zu laden Du musst nur die Daten speichern und dann kannst du diese 35kb Datei wiederverwenden. Wir können einen einfachen Impulsalgorithmus schreiben, der überprüft, ob es eine riesige Bewegung die letzten 15 Minuten gab und wenn das der Fall war, können wir kaufen. Wir werden in einer späteren Post eintauchen. Sie können den Code wie immer auf github sehen. Wenn du mehr Feedback hast, kommst du mich bei jonromero oder melde dich zum Newsletter an. Gesetzliche Outro Dies ist ein Ingenieur-Tutorial, wie man eine Algotrading-Plattform für Experimente und FUN baut. Irgendwelche Vorschläge hier sind keine finanziellen Ratschläge. Wenn du irgendwelche (oder alle) das Geld verlierst, weil du irgendwelche Handelsberatungen verfolgst oder dieses System in der Produktion einsetzest, kannst du diesen zufälligen Blog nicht beschuldigen (andor me). Genießen Sie auf eigene Gefahr. Vor dem Bau irgendwelcher algotrading Systeme, müssen Sie wissen, wie man manuell handeln. Was das eigentlich bedeutet, ist, dass du dein eigenes Geld verlieren musst, bevor du die Maschine beschuldigst. So einfach ist das. Also, lass uns über Devisen oder Forex reden, wie die coolen Jungs es nennen. Zuerst einmal, warum wählen wir Forex für algotrading Warum werden wir nicht Millionäre Handel wie alle anderen Warum nicht nur kaufen Tesla, Amazon, Google, Facebook, Twitter und hoffen auf die besten (PS: lesen Sie bitte die rechtlichen Outro am Ende von Dieser Blog-Post vor dem Kauf von Aktien). Einfache Antwort. Sie können nicht schnell Geld gewinnen oder verlieren, indem sie Aktien kaufen. Forex hat eine schöne (oder schrecklich, je nachdem, welche Seite der Münze du bist) Ding namens Hebelwirkung. Leverage kann 1:10, 1:50, 1: 100, 1: 200, 1: 1000 je nachdem, wie selbstmörderisch du bist oder wie skizzieren Sie Ihren Broker ist (keine Sorge, gut reden über Makler in der nächsten Post). Lass uns ein Beispiel sehen. Wir wollen einen Handel von 1k platzieren. Das logische Ding ist, dass, um etwas zu kaufen, das 1k kostet, musst du in deinem Konto 1k haben, richtig. Sie können immer ein Darlehen bekommen. Oooooooor: Hebel verwenden. Wenn wir eine 1: 100 Hebelwirkung haben, können wir einen Handel und Kontrolle 1k mit nur 10 platzieren. Für diejenigen, die bei Mathe versagten (nicht schämen, ich bin einer von euch), 10 x 100 (Hebel) 1.000. Das heißt, du kannst groß handeln und groß gewinnen. Eigentlich 100 mal mehr groß. Der Fang ist, dass man eigentlich 100 mal mehr klein werden kann. Lets haben ein anderes Beispiel. Ich habe gerade meinen Bonus (1k) und ich möchte auf Forex spielen. Ohne irgendwelche Hebelwirkung kann ich 1.000 Forex-Einheiten kaufen, die 1 kosten (übrigens gibt es keine Forex-Einheiten, aber gut darüber reden). Wie viele Einheiten kann ich bei 1:50 Hebel kaufen Wenn du antwortest wenn 100.000, hast du etwas falsch gemacht Die Antwort ist 50.000 (1.000 x 50 Hebelwirkung). Hier hast du es. Einer der Gründe, dass wir Forex machen, ist, weil Sie gewinnen können, gewinnen Sie groß. Wir hoffen jedoch, dass sie bei Ihrer Reiseplanung weiterhilft. 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 timeReal Volume Indicator I coded some indicators in the python programming language, which scrape retail-sentiment data from different sources and put them into MT4. It is like an OrderBook in realtime, where at the current price and history all positions were shown. Have a look at the picture to know what I mean. Attached Image (click to enlarge) The first indicator is the overall sentiment and the second shows the sum of all orders (shortlong) at the corresponding candle. Here is the problem Im facing: One of my tradepeer told me, if I would make this stuff public the sentiment would be changing and the indicators become useless and would have impact to my own trading success. Was ist Ihre Meinung darüber, was soll ich tun Nehmen Sie es bitte als eine echte Diskussion und sorry FF-Mitarbeiter, wenn es die falsche Bord ist. Vielen Dank im Voraus Hallo Trader-Community, ich kodierte einige Indikatoren in der Python-Programmiersprache, die Einzelhandel-Stimmungsdaten aus verschiedenen Quellen kratzen und sie in MT4 stellen. It is like an OrderBook in realtime, where at the current price and history all positions were shown. Have a look at the picture to know what I mean. Der erste Indikator ist die Gesamtstimmung und der zweite zeigt die Summe aller Aufträge (shortlong) an der entsprechenden Kerze. Hier ist das Problem Im Vorsprung: Einer meiner Fachleute hat mir gesagt, wenn ich dieses Zeug öffentlich machen würde. Nette Arbeit hier, aber ich möchte Sie fragen, ob Sie etwas über das On Balance Volume (OBV) wissen, wie Sie definitiv definitiv definieren, dass Schlüssel ist. Ich habe das Gefühl für eine Weile gefolgt und obwohl es vielleicht nicht immer eine klare Richtung geben würde Scheint in der Lage zu sein, sehr konsequente Punkte zu geben, wo der Markt im Begriff ist, große Bewegungen zu machen, und das allein kann irgendwie den Handel enorm verbessern. Der Rest ist bis zu den Händlern RR, und Erfahrung, aber Informationen wie diese sind gut für Timing. Als Trader ist einsam, aber ein großer Trader ist einsamer noch Mitglied seit Dec 2013 Status: Mitglied 546 Beiträge Um zu denken, Einzelhandel Marktteilnehmer ändern den Markt ist ziemlich lustig. Es gibt so viele verschiedene Möglichkeiten, wie sich die Märkte bewegen. Zu denken, eine Idee wird den Markt ändern ist zu lustig. Ich folge einem Händler, der in zehn Minuten mit 10 Lot-Verträgen 100 Positionen belegte. Das ist 1000 Verträge. In der Minute machte sie diese Trades der Markt von 1.13010 auf 1.13017 bewegt. Dann über die nächste Stunde Preis stieg 190 Punkte (nicht Pips). Die Kerze schließt mit einem großen Push-up und sie schließt alle ihre Positionen. Habe nichts geändert Ja, sie hat 118K gemacht, ich habe ihr seit einiger Zeit gefolgt. Sehr guter Trader Bearbeiten: gefundenes dieses geschrieben am 25. August 2014. lol bearbeiten: wie für REAL VOLUME diese sind ähnlich, sie kosten nur Geld. Aber remeber es braucht Geld, um Geld zu verdienen Mitglieder müssen mindestens 0 Gutscheine haben, um in diesem Thread zu posten. 0 Händler jetzt ansehen Forex Factoryreg ist ein eingetragenes Warenzeichen.

No comments:

Post a Comment