Tuesday, 9 May 2017

Oanda Forex Handel Praxis

Forex Market Maker OANDA ist ein etablierter Forex Market Maker, dessen proprietäre Technologie bietet Finanzinstituten mit konsequenten Zugang zu der tiefen Liquidität, die sie benötigen, um effektiv und mit Vertrauen handeln. Changing Landschaft OANDA hat die Landschaft des Forex-Marktes verändert Das Unternehmen nutzt seinen umfangreichen Einzelhandel Volumen, Zugang zu tiefer Liquidität von Top-Banken und effektive Trading-Algorithmen, um eine wirklich alternative Quelle von Forex Liquidität bieten. Institutionelle Kunden gehören Hedgefonds, qualifizierte Handelsunternehmen, Firmenkunden, Broker Händler, proprietäre Händler, führende Weltbanken und anderen Finanzinstituten Ihre unternehmenskritischen Systeme und Strategien hängen von der OANDA-proprietären Technologie ab, die in der Regel Hunderte von Tausenden von Devisengeschäften täglich verarbeitet. Vollständig geregelt Vollständig geregelt mit einer soliden finanziellen Bilanz OANDA hat Niederlassungen in den USA Großbritannien, Kanada, Schweiz, Singapur, Und Japan seine preisgekrönte fxTrade Plattform ist bu Ilt auf Kernprinzipien von Innovation, Transparenz und Fairness und lizenziert von zwei der zehn führenden Devisenbanken. OANDA s Institutional FX Dienstleistungen sind nicht beabsichtigt oder verfügbar für nicht-institutionelle Kunden und sind nicht für den Vertrieb in eine Gerichtsbarkeit wo vorgesehen Diese Verteilung ist durch Gesetz oder Verordnung eingeschränkt.1996 - 2012 OANDA Corporation Alle Rechte vorbehalten OANDA, fxTrade und OANDA s fx Markenfamilie befinden sich im Besitz der OANDA Corporation Alle anderen Marken, die auf dieser Website erscheinen, sind Eigentum der jeweiligen Eigentümer Cookie, Cookie, OANDA Cookie Cookie, Cookie. ltiframe Breite 1 Höhe 1 Rahmenrahmen 0 Style Display keine mcestyle Display keine gt lt iframe gt., 1 1 2016 OANDA v20, 4. CFTC, - 50 1 20 1 OANDA Asia Pacific 50 1 OANDA Kanada IIROC.1996 2017 OANDA Corporation OANDA, fxTrade fx OANDA Corporation.- OANDA Europe Ltd,, 4 50 1.OANDA Europe Limited, 7110087, Tower 42, Stock 9a, 25 Old Broad St, London EC2N 1HQ 542574.OANDA J Apan Co Ltd Kanto Lokales Finanzbüro Kin-sho, 2137, 1571.Forex Trading Diary 1 - Automatisierte Forex Trading mit der OANDA API. I zuvor erwähnt in der QuantStart 2014 In Review Artikel, dass ich würde einige von 2015 schreiben über automatisierte Forex Trading. Given, dass ich selbst in der Regel forschen in Aktien und Futures-Märkte, ich dachte, es wäre lustig und pädagogisch zu schreiben über meine Erfahrungen der Eingabe der Forex-Markt im Stil eines Tagebuchs Jeder Tagebuch Eintrag wird versuchen, auf all jene zu bauen Vor, aber sollte auch relativ selbstbewohnt sein. In diesem ersten Eintrag des Tagebuchs werde ich beschreiben, wie man ein neues Praxis-Brokerage-Konto mit OANDA einrichtet und wie man eine grundlegende multithreaded ereignisgesteuerte Trading Engine erstellt, die automatisch kann Führen Sie Trades in einer Praxis und Live-Einstellung. Last Jahr verbrachten wir viel Zeit mit Blick auf die Event-driven Backtester in erster Linie für Aktien und ETFs Die eine, die ich unten ist auf Forex ausgerichtet und kann b E für entweder Papierhandel oder Live-Trading. Ich habe alle der folgenden Anweisungen für Ubuntu 14 04 geschrieben, aber sie sollten leicht auf Windows oder Mac OS X, mit einer Python-Distribution wie Anaconda Die einzige zusätzliche Bibliothek für die Python verwendet zu übersetzen Trading Engine ist die Anforderungsbibliothek, die für die Kommunikation mit der OANDA API notwendig ist. Da dies der erste Post direkt über Devisenhandel ist und der unten dargestellte Code einfach an eine Live-Handelsumgebung angepasst werden kann, möchte ich die Haftungsausschluss. Disclaimer Handel Devisen am Rande trägt ein hohes Risiko und ist möglicherweise nicht für alle Anleger geeignet Vergangene Wertentwicklung ist kein Hinweis auf zukünftige Ergebnisse Der hohe Grad an Hebelwirkung kann gegen Sie als auch für Sie arbeiten Vor der Entscheidung zu investieren In Devisen sollten Sie sorgfältig überlegen, Ihre Anlageziele, Erfahrungsstand und Risiko Appetit Die Möglichkeit besteht, dass Sie aufrecht zu erhalten Ein Verlust von einigen oder alle Ihrer ursprünglichen Investition und deshalb sollten Sie nicht Geld investieren, dass Sie sich nicht leisten können, Sie zu verlieren Sie sollten sich bewusst sein, alle Risiken im Zusammenhang mit Devisenhandel und suchen Beratung von einem unabhängigen Finanzberater, wenn Sie Zweifel haben Diese Software wird zur Verfügung gestellt, und alle ausdrücklichen oder stillschweigenden Garantien, einschließlich, aber nicht beschränkt auf die implizierten Garantien der Marktgängigkeit und Eignung für einen bestimmten Zweck werden ausgeschlossen. In keinem Fall haften die Regenten oder Mitwirkenden für direkte, indirekte, Zufällige, besondere, vorbildliche oder Folgeschäden einschließlich, aber nicht beschränkt auf die Beschaffung von Ersatzgütern oder Dienstleistungen Verlust von Nutzung, Daten oder Gewinne oder Betriebsunterbrechung verursacht jedoch und auf jegliche Haftungsart, ob im Vertrag, strenge Haftung oder Unerlaubter Handlungen, die sich aus der Nutzung dieser Software ergeben, auch wenn sie über die Möglichkeit eines solchen Schadens informiert werden. Ein Konto bei OA einrichten NDA. Die erste Frage, die in den Sinn kommt, ist Warum wählen OANDA Einfach gesagt, nach ein bisschen Googeln rund um Forex Broker, die APIs hatte, sah ich, dass OANDA hatte vor kurzem eine richtige REST-API, die leicht mit fast jeder Sprache kommuniziert werden konnte In einer äußerst direkten Art Nach dem Lesen durch ihre Entwickler-API-Dokumentation habe ich beschlossen, ihnen einen Versuch zu geben, zumindest mit einem Praxis-Account. Um klar zu sein - ich habe keine vorherige oder bestehende Beziehung mit OANDA und bin nur die Bereitstellung dieser Empfehlung auf der Grundlage meiner begrenzten Erfahrung, die mit ihrer Praxis API und einige kurze Nutzung für Marktdaten Download, während bei einem Fonds zuvor verwendet werden, wenn jemand hat sich über alle anderen Forex-Broker, die auch eine ähnlich moderne API dann bin ich froh, ihnen einen Blick auch als gut. Vor der Nutzung der API ist es notwendig, sich für ein Praxis-Account anmelden Um dies zu tun, Kopf zum Anmelde-Link Sie sehen die folgenden Bildschirm. OANDA Anmelde-Screen. Sie können dann in der Lage sein Um sich mit Ihren Anmeldeinformationen anzumelden. Vergewissern Sie sich, die Registerkarte fxTradePractice aus dem Anmeldebildschirm auszuwählen. OANDA Anmeldebildschirm. Einmal in Sie müssen eine Notiz von Ihrer Konto-ID notieren Es ist unter dem schwarzen My Funds Header als nächstes aufgeführt To Primary Mine ist eine 7-stellige Zahl Zusätzlich müssen Sie auch ein persönliches API-Token generieren Um dies zu tun, klicken Sie auf API Access unterhalb der Registerkarte Andere Aktionen unten links. In diesem Stadium können Sie ein API-Token generieren Sie benötigen den Schlüssel für den Gebrauch später, also stellen Sie sicher, dass Sie es auch aufschreiben. Sie wollen nun die FXTrade Practice-Anwendung starten, die es uns ermöglicht, die ausgeführten Aufträge und unseren Papiergewinnverlust zu sehen. Wenn Sie ein laufen Ubuntu-System müssen Sie eine etwas andere Version von Java installieren Insbesondere die Oracle-Version von Java 8 Wenn Sie dies nicht tun, dann wird der Übungs-Simulator nicht aus dem Browser laden Ich lief diese Befehle auf meinem System. Sie werden jetzt sein In der Lage, den Praxishandel zu starten e Nvironment Zurück zum OANDA-Dashboard und klicken Sie auf die grüne hervorgehobene Start-FXTrade-Praxis-Link Es wird ein Java-Dialog aufgerufen, in dem Sie gefragt werden, ob Sie es ausführen möchten. Klicken Sie auf Ausführen und das fxTrade Practice-Tool lädt Mine auf ein 15-minütiges Kerzen-Diagramm von EUR USD Mit dem Zitat-Panel auf der linken Seite. OANDA fxTrade Practice-Bildschirm. Zum diesem Punkt sind wir bereit zu entwerfen und Codierung unserer automatisierten Forex Trading System gegen die OANDA API. Overview of Trading Architecture. If Sie haben die Veranstaltung-driven Backtester-Serie verfolgt Für Aktien und ETFs, die ich letztes Jahr erschaffen habe, werden Sie sich bewusst sein, wie solch ein ereignisgesteuertes Handelssystem funktioniert Für diejenigen von Ihnen, die neu in der ereignisgesteuerten Software sind, würde ich Ihnen vorschlagen, den Artikel zu lesen, um Einblick zu gewinnen In, wie sie arbeiten. Im Wesentlichen wird das gesamte Programm in einem infinte while-Schleife ausgeführt, die nur beendet wird, wenn das Handelssystem abgeschaltet wird Der zentrale Kommunikationsmechanismus des Programms wird gegeben vi Eine Warteschlange, die Ereignisse enthält. Die Warteschlange wird ständig abgefragt, um nach neuen Ereignissen zu suchen. Sobald ein Ereignis aus der Warteschlange genommen wurde, muss es von einer entsprechenden Komponente des Programms abgewickelt werden. Daher kann ein Marktdaten-Feed TickEvent s erzeugen Platziert auf die Warteschlange, wenn ein neuer Marktpreis ankommt Ein signalgenerierendes Strategieobjekt könnte OrderEvent s schaffen, die an eine Brokerage geschickt werden sollen. Die Nützlichkeit eines solchen Systems ist gegeben durch die Tatsache, dass es egal ist, welche Reihenfolge oder Art von Ereignisse werden auf der Warteschlange platziert, da sie immer korrekt von der richtigen Komponente innerhalb des Programms behandelt werden. Zusätzlich können verschiedene Teile des Programms in separaten Threads ausgeführt werden, was bedeutet, dass es niemals irgendeine Wartezeit für eine bestimmte Komponente gibt, bevor sie andere verarbeitet Dies ist äußerst nützlich in algorithmischen Handelssituationen, in denen Marktdaten-Feed-Handler und Strategie-Signalgeneratoren sehr unterschiedliche Leistungsmerkmale aufweisen. Die Haupthandelsschleife ist gegeben Durch den folgenden Python-Pseudocode. Wie wir oben angegeben haben, läuft der Code in einer Endlosschleife Zuerst wird die Warteschlange abgefragt, um ein neues Ereignis abzurufen Wenn die Warteschlange leer ist, startet die Schleife nach einer kurzen Schlafperiode, die als Herzschlag bekannt ist, neu Wenn ein Event gefunden wird, wird sein Typ beurteilt und dann wird das entsprechende Modul entweder die Strategie oder der Ausführungsbearbeiter aufgefordert, das Event zu verarbeiten und eventuell neue zu generieren, die auf die Warteschlange zurückgehen. Die grundlegenden Komponenten, die wir für unseren Handel schaffen werden System enthalten die folgenden. Streaming Price Handler - Dies wird eine langwierige Verbindung offen für OANDAs Server und senden Tick-Daten dh Bid fragen über die Verbindung für alle Instrumente, die wir interessiert in. Strategy Signal Generator - Dies wird eine Sequenz von Tick-Events und verwenden sie, um Trading-Aufträge zu generieren, die von der Execution-Handler ausgeführt werden. Execution Handler - nimmt eine Reihe von Order-Events und führt sie dann blind mit OANDA. Events - Diese Objekte c Onstitute die Nachrichten, die auf der Ereignis-Warteschlange weitergegeben werden Wir benötigen nur zwei für diese Implementierung, nämlich den TickEvent und den OrderEvent. Main Entry Point - Der Haupteingangspunkt enthält auch die Trade-Schleife, die die Nachrichtenwarteschlange kontinuierlich abfragt und Nachrichten an die Korrekte Komponente Dies wird oft als Event-Loop oder Event-Handler bekannt. Wir werden nun diskutieren die Umsetzung des Codes im Detail Am unteren Rand des Artikels ist die vollständige Auflistung aller Quellcode-Dateien Wenn Sie sie in das gleiche Verzeichnis und laufen Python Sie beginnen, Aufträge zu erwerben, vorausgesetzt, Sie haben Ihre Konto-ID und Authentifizierungstoken von OANDA. Python Implementation ausgefüllt. Es ist schlechte Praxis, um Passwörter oder Authentifizierungsschlüssel innerhalb einer Codebasis zu speichern, wie Sie nie voraussagen können, wer wird schließlich erlaubt, Zugriff auf ein Projekt In einem Produktionssystem würden wir diese Anmeldeinformationen als Umgebungsvariablen mit dem System speichern und diese Envvars jedes Mal abfragen, wenn der Code r ist Edeployed Dies stellt sicher, dass Passwörter und auth-Token niemals in einem Versionskontrollsystem gespeichert werden. Jedoch, da wir uns nur für den Aufbau eines Spielzeughandelssystems interessieren und sich nicht mit Produktionsdetails in diesem Artikel beschäftigen, werden wir stattdessen diese Auth-Token trennen Eine Einstellungsdatei In der folgenden Konfigurationsdatei haben wir ein Wörterbuch namens UMGEBUNGSMITTEL, das die API-Endpunkte für die OANDA-Preisstreaming-API und die Handels-API speichert. Jedes Unterverzeichnis enthält drei separate API-Endpunkte, die Praxis und die Sandbox. Die Sandbox-API ist ausschließlich für Test-Code und für die Überprüfung, dass es keine Fehler oder Bugs Es hat nicht die Uptime-Garantien der Real-oder Praxis-APIs Die Praxis-API, im Wesentlichen bietet die Möglichkeit, Papierhandel Das heißt, es bietet alle Funktionen der real API auf einem simulierten Praxis-Account Die echte API ist genau das - es ist Live-Handel Wenn Sie diesen Endpunkt in Ihrem Code verwenden, wird es gegen Ihren Live-Kontostand handeln SEHR EXTREM SORGFÄLTIGE. WICHTIG Beim Handel mit der Praxis API erinnern, dass eine wichtige Transaktionskosten, die der Marktwirkung nicht berücksichtigt wird Da keine Trades tatsächlich in die Umwelt gestellt werden, müssen diese Kosten in anderer Weise anderweitig mit einem Marktwirkungsmodell berücksichtigt werden Wenn Sie die Leistung realistisch beurteilen möchten. Im Folgenden nutzen wir das Übungskonto, wie es die DOMAIN-Einstellung gibt. Wir benötigen zwei separate Wörterbücher für die Domains, jeweils eine für die Streaming - und Trading-API-Komponenten. Schließlich haben wir die ACCESSTOKEN und ACCOUNTID I ve Füllte die beiden unten mit Dummy-IDs, so dass Sie Ihre eigenen nutzen müssen, auf die von der OANDA-Account-Seite zugegriffen werden kann. Der nächste Schritt ist, die Ereignisse zu definieren, die die Warteschlange verwenden wird, um allen einzelnen Komponenten zu helfen, zu kommunizieren Wir brauchen zwei TickEvent und OrderEvent Die ersten speichert Informationen über Instrumentenmarktdaten wie das beste Angebot und die Handelszeit Die zweite wird verwendet, um zu übertragen oder Der die Handhabung des Mitarbeiters enthält und somit das Instrument, die Anzahl der zu handelnden Einheiten, die Auftragsart Markt oder Grenze und die Seite dh kaufen und verkaufen. Um zukunftssicher unsere Veranstaltungen Code werden wir eine Basisklasse namens Event und erstellen Haben alle Ereignisse von diesem geerbt Der Code wird unten in gegeben. Die nächste Klasse, die wir schaffen werden, wird die Handelsstrategie behandeln In dieser Demo werden wir eine eher unsinnige Strategie schaffen, die einfach alle Marktticks und jeden fünften erhält Tick ​​zufällig kauft oder verkauft 10.000 Einheiten von EUR USD. Klärlich ist dies eine lächerliche Strategie Allerdings ist es fantastisch für Testzwecke, weil es einfach ist, Code und verstehen In zukünftigen Tagebucheinträgen werden wir dies mit etwas deutlich spannender machen, das hoffentlich wird Dreh einen Profit. Die Datei kann unten gefunden werden Lassen Sie es durch sie arbeiten und sehen, was los ist Zuerst importieren wir die zufällige Bibliothek und das OrderEvent-Objekt von Wir brauchen die zufällige lib, um zu sele Ct eine zufällige Kauf - oder Verkaufsbestellung Wir benötigen OrderEvent, da hier das Strategieobjekt Aufträge an die Veranstaltungswarteschlange sendet, die später vom Ausführungsbearbeiter ausgeführt wird. Die TestRandomStrategy-Klasse nimmt einfach das Instrument in diesem Fall EUR USD, die Nummer Von Einheiten und die Ereignisse Warteschlange als eine Reihe von Parametern Es erstellt dann einen Ticks-Zähler, der verwendet wird, um zu erzählen, wie viele TickEvent-Instanzen es gesehen hat. Mehr der Arbeit tritt in der Calculatesignals-Methode, die einfach ein Ereignis, bestimmt, ob es ist Ein TickEvent sonst ignorieren und inkrementiert die Tick-Zähler Es überprüft dann, ob die Zählung ist teilbar durch 5 und dann zufällig kauft oder verkauft, mit einer Marktordnung, die angegebene Anzahl von Einheiten Es ist sicherlich nicht die weltweit größte Handelsstrategie, aber Es wird mehr als geeignet für unsere OANDA-Brokerage-API-Testzwecke sein. Die nächste Komponente ist die Ausführungs-Handler Diese Klasse ist beauftragt, auf OrderEvent-Instanzen zu handeln und Anfragen an den Broker in t zu machen Sein Fall OANDA in einer dummen Art und Weise Das ist, gibt es kein Risikomanagement oder Potfolio Bauüberlagerung Der Ausführungsbearbeiter führt einfach jede Bestellung aus, die er gegeben hat. Wir müssen alle Authentifizierungsinformationen an die Ausführungsklasse übergeben, einschließlich der Domänenpraxis , Real - oder Sandbox, das Zugriffstoken und die Kontonummer Wir erstellen dann eine sichere Verbindung mit einem der in Bibliotheken eingebauten Pythons. Die meisten der Arbeiten erfolgt im Executeorder. Die Methode erfordert ein Ereignis als Parameter und konstruiert dann zwei Wörterbücher - die Header und die Params Diese Wörterbücher werden dann korrekt durch eine andere Python-Bibliothek, die als POST-Anforderung an OANDAs-API gesendet werden soll, korrekt codiert. Wir übergeben die Content-Type - und Authorization-Header-Parameter, die unsere Authentifizierungsinformationen enthalten. Darüber hinaus kodieren wir die Parameter, die enthalten sind Das Instrument EUR USD, Einheiten, Auftragsart und Seite kaufen verkaufen Schließlich machen wir die Anfrage und speichern die Antwort. Die komplexeste Komponente der t Rading-System ist das StreamingForexPrices-Objekt, das die Marktpreis-Updates von OANDA verarbeitet. Es gibt zwei Methoden connecttostream und streamtoqueue. Die erste Methode nutzt die Python-Requests-Bibliothek, um eine Verbindung zu einem Streaming-Socket mit den entsprechenden Headern und Parametern herzustellen. Die Parameter beinhalten die Account-ID und Die notwendige Instrumentenliste, die für Updates in diesem Fall zu hören ist, ist es nur EUR USD Beachten Sie die folgende Zeile. Dies sagt, dass die Verbindung gestreamt werden und somit in einer langwierigen Weise offen gehalten wird. Die zweite Methode, Streamtoque tatsächlich versucht zu Verbindung zum Stream Wenn die Antwort nicht erfolgreich ist, dh der Antwortcode ist nicht 200, dann kehren wir einfach zurück und beenden Wenn es erfolgreich ist, versuchen wir, das JSON-Paket in ein Python-Wörterbuch zurückzukehren. Schließlich konvertieren wir das Python-Wörterbuch mit dem Instrument , Bitten und Zeitstempel in ein TickEvent, das an die Ereignisse Warteschlange gesendet wird. Wir haben jetzt alle wichtigen Komponenten an Ort und Stelle Der letzte Schritt ist zu Verpacken alles, was wir bisher in ein Hauptprogramm geschrieben haben Das Ziel dieser Datei, bekannt als ist es, zwei separate Threads zu erstellen, von denen einer den Preishandler und der andere, der den Handelshandler betreibt, betreibt. Warum brauchen wir zwei separate Threads Put Einfach, wir führen zwei getrennte Stücke von Code aus, die beide kontinuierlich laufen Wenn wir ein Non-Thread-Programm erstellen würden, dann würde die Streaming-Socket, die für die Preis-Updates verwendet wird, niemals wieder auf den Hauptcode-Pfad zurückkehren und damit wir Würde niemals irgendeinen Handel ausführen. Ähnlich, wenn wir die Handelsschleife liefen, sehen wir unten, wir würden niemals den Flow-Pfad zum Preis-Streaming-Sockel zurückgeben. Daher benötigen wir mehrere Threads, eine für jede Komponente, so dass sie unabhängig ausgeführt werden können Sie werden beide miteinander über die Ereignisse queue. Let s untersuchen dies ein bisschen weiter Wir erstellen zwei separate Threads mit den folgenden Zeilen. Wir übergeben die Funktion oder Methodenname an die Ziel-Keyword-Argument und t Hen passieren eine iterable wie eine Liste oder Tupel auf die args Keyword-Argument, die dann übergibt diese Argumente an die eigentliche Methode function. Final wir starten beide Threads mit den folgenden Zeilen. Thus können wir zwei, effektiv unendlich Looping, Code laufen Segmente unabhängig voneinander, die beide über die Ereignis-Warteschlange kommunizieren Beachten Sie, dass die Python-Threading-Bibliothek keine echte Multicread-Multithread-Umgebung aufgrund der CPython-Implementierung von Python und der Global Interpreter Lock GIL erzeugt. Wenn Sie mehr über Multithreading auf Python lesen möchten , Bitte werfen Sie einen Blick auf diesen Artikel. Let s untersuchen den Rest des Codes im Detail Erstens importieren wir alle notwendigen Bibliotheken einschließlich Queue Threading und Zeit Wir importieren dann alle der oben genannten Code-Dateien Ich persönlich bevorzuge, alle Konfigurationseinstellungen zu nutzen, Das ist eine Gewohnheit, die ich von der Arbeit mit Django abgeholt habe. Danach definieren wir die Handelsfunktion, die im Python-Pseudocode oben beschrieben wurde. Unendlich E-Schleife wird durchgeführt, während True, der kontinuierlich von der Ereignis-Warteschlange abfragt und nur die Schleife überspringt, wenn es leer gefunden wird. Wenn ein Ereignis gefunden wird, dann ist es entweder ein TickEvent oder ein OrderEvent und dann wird die entsprechende Komponente aufgerufen, um es auszuführen In diesem Fall ist es entweder eine Strategie oder eine Ausführungs-Handler Die Schleife schläft dann einfach für Herzschlag Sekunden in diesem Fall 0 5 Sekunden und fährt fort. Schließlich definieren wir den Haupteingangspunkt des Codes in der Hauptfunktion Es ist gut kommentiert unten, aber ich werde Fassen Sie hier zusammen Im Wesentlichen werden wir die Ereignis-Warteschlange instanziieren und definieren die Instrumente Einheiten Wir erstellen dann die StreamingForexPrices Preis Streaming-Klasse und dann anschließend die Execution Execution Handler Beide erhalten die notwendigen Authentifizierungsdetails, die von OANDA bei der Erstellung eines Kontos gegeben werden. Wir erstellen dann die TestRandomStrategy Instanz Schließlich definieren wir die beiden Threads und starten sie dann. Um den Code auszuführen, musst du einfach alle Dateien im selben Verzeichnis platzieren und ca Ll das folgende am terminal. Hinweis, dass der Code in diesem Stadium zu stoppen erfordert eine harte Tötung des Python-Prozesses über Ctrl-Z oder gleichwertig Ich habe nicht hinzugefügt einen zusätzlichen Thread zu behandeln suchen für die, die benötigt werden, um den Code zu stoppen Sicher Ein potenzieller Weg, um den Code auf einem Ubuntu-Linux-Rechner zu stoppen ist zu geben. Und dann übergeben die Ausgabe dieser eine Prozessnummer in die folgenden. Wo PROCESSID muss durch die Ausgabe von pgrep ersetzt werden Hinweis, dass dies NICHT besonders gute Praxis ist. In späteren Artikeln werden wir einen anspruchsvolleren Stop-Start-Mechanismus, der Gebrauch von Ubuntu-Prozessüberwachung, um das Handelssystem läuft 24 7. Die Ausgabe nach 30 Sekunden oder so, je nach Tageszeit im Verhältnis zu den wichtigsten Handelsstunden für EUR USD, für den obigen Code, ist unten angegeben. Die ersten fünf Zeilen zeigen die JSON-Tick-Daten, die von OANDA mit Bid-Ask-Preisen zurückgegeben werden. Anschließend können Sie die Ausgabe-Ausgabe sowie die JSON-Antwort zurückkehren sehen OANDA bestätigt die Eröffnung eines Kaufhandels für 10.000 Einheiten von EUR USD und den Preis, den es erreicht hat. Dies wird auf unbestimmte Zeit laufen, bis Sie das Programm mit einem Ctrl-Z-Befehl oder ähnlichem töten. In späteren Artikeln werden wir durchführen Einige dringend benötigte Verbesserungen, einschließlich. Real Strategien - Richtige Forex-Strategien, die profitable Signale generieren. Produktionsinfrastruktur - Remote-Server-Implementierung und 24 7 überwachtes Handelssystem mit Stop-Start-Fähigkeit. Portfolio und Risikomanagement - Portfolio-und Risiko-Overlays für alle vorgeschlagenen Aufträge Aus der Strategie. Mehrere Strategien - Aufbau eines Portfolios von Strategien, die in die Risikomanagement-Overlay integrieren. Wie mit dem Equity-Event-driven Backtester, müssen wir auch ein Forex-Backtesting-Modul erstellen, die uns eine schnelle Recherche durchführen und es einfacher machen wird Strategien einsetzen. Denken Sie daran, ACCOUNTID und ACCESSTOKEN. Just Getting Started mit Quantitative Trading ändern.


No comments:

Post a Comment