Friday 17 November 2017

Fineco Multi Day Forex Handel


Forex Trading Diary 6 - Multi-Day Trading und Plotter Ergebnisse Sein seit einer Weile seit meinem letzten Forex Trading Diary Update. Ich war damit beschäftigt, an dem neuen QuantStart Jobs Board zu arbeiten und so hatte ich nicht so viel Zeit wie üblich, um an QSForex zu arbeiten. Obwohl ich einige Fortschritte gemacht habe. Insbesondere konnte ich einige neue Features hinzufügen, darunter: Dokumentation - Ive hat nun einen QSForex-Unterabschnitt auf der Website erstellt, der alle Einträge des Forex Trading Diary und die Dokumentation für QSForex enthält. Insbesondere enthält es detaillierte Installationsanweisungen und eine Gebrauchsanweisung für Backtesting und Live Trading. Simulierte Tick-Datenerzeugung - Da es schwierig ist, Forex-Tick-Daten in der Masse herunterzuladen (oder zumindest hat es von bestimmten Anbietern, die ich verwende), entschied ich, dass es einfacher wäre, einfach nur zufällige Tick-Daten zum Testen des Systems zu generieren. Multi-Day Backtesting - Eine langjährige Feature-Anfrage in QSForex ist die Möglichkeit, über mehrere Tage von Tick-Daten zu testen. In der letzten Version unterstützt QSForex nun sowohl mehrtägiges als auch mehrpaariges Backtesting, was es wesentlich nützlicher macht. Plotten Backtesting Ergebnisse - Während Konsolenausgabe ist nützlich, nichts schlägt in der Lage, eine Eigenkapitalkurve oder historische Drawdown zu visualisieren. Ive nutzte die Seaborn-Bibliothek, um die verschiedenen Performance-Charts zu zeichnen. In diesem Eintrag korrigieren Sie alle neuen Features im Detail unten. Wenn du bisher nicht in der Lage bist, die Serie zu verfolgen, kannst du in den QSForex-Bereich gehen, um vorherige Einträge aufzuholen. Simuliertes Tick Data Script Ein äußerst wichtiges angefordertes Feature für QSForex ist die Möglichkeit, über mehrere Tage zu backtest. Bisher unterstützte das System nur das Backtesting über eine einzige Datei. Dies war keine skalierbare Lösung, da eine solche Datei in den Speicher und später in einen Pandas DataFrame gelesen werden muss. Während die Tick-Datendateien nicht riesig sind (jeweils ca. 3,5 Mb), addieren sie sich schnell, wenn wir mehrere Paare über einen Zeitraum von Monaten oder mehr betrachten. Um mit dem Erstellen einer Multi-Daymulti-Datei-Fähigkeit zu beginnen, habe ich versucht, weitere Dateien aus dem DukasCopy historischen Tick-Feed herunterzuladen. Leider bin ich in Schwierigkeiten geraten und ich konnte die notwendigen Dateien nicht herunterladen, um das System zu testen. Da war ich nicht allzu sehr über die eigentliche Zeitreihe selbst, ich fühlte es wäre einfacher, ein Skript zu schreiben, um simulierte Forex-Daten selbst zu generieren. Ich habe dieses Skript in die Datei scriptsgeneratesimulatedpair. py gesetzt. Der aktuelle Code finden Sie hier. Die Grundidee des Skripts besteht darin, eine Liste von zufällig verteilten Zeitstempeln zu erzeugen, die jeweils sowohl Bidask-Werte als auch Bidask-Volumenwerte besitzen. Die Ausbreitung zwischen dem Bid und dem Ask ist konstant, während die Bidask-Werte selbst als zufälliger Spaziergang erzeugt werden. Da ich eigentlich nie irgendwelche echten Strategien auf diese Daten testen würde, war ich nicht zu belästigt über seine statistischen Eigenschaften oder seine absoluten Werte in Bezug auf echte Forex-Währungspaare. Solange es das richtige Format und die ungefähre Länge hatte, konnte ich es benutzen, um das mehrtägige Backtesting-System zu testen. Das Skript ist derzeit hartcodiert, um Forex-Daten für den gesamten Monat Januar 2014 zu generieren. Es verwendet die Python-Kalenderbibliothek, um die Arbeitstage zu ermitteln (obwohl ich havent ausgeschlossene Feiertage noch) und dann eine Reihe von Dateien der Form BBBQQQYYYYMMDD. csv generiert . Wobei BBBQQQ das angegebene Währungspaar (z. B. GBPUSD) und YYYYMMDD das angegebene Datum ist (z. B. 20140112). Diese Dateien werden im CSVDATADIR-Verzeichnis platziert, das in der application. py im Anwendungsstamm angegeben ist. Um die Daten zu erzeugen, muss der folgende Befehl ausgeführt werden, wobei BBBQQQ durch den jeweiligen Währungsnamen von Interesse ersetzt werden muss, z. B. GBPUSD: Die Datei benötigt eine Änderung, um mehrere Monate oder Jahre Daten zu erzeugen. Jede tägliche Tick-Datei ist in der Größenordnung von 3,2 MB groß. In Zukunft werde ich dieses Skript ändern, um mehrere Monate oder Jahre Daten auf der Grundlage einer Liste von Währungspaaren zu erzeugen, anstatt die Werte, die hartcodiert sind, zu erzeugen. Allerdings sollte dies vorerst Ihnen helfen, loszulegen. Bitte beachten Sie, dass das Format genau mit dem der DukasCopy historischen Tick-Daten übereinstimmt, welches der Dataset ist, den ich derzeit verwende. Multi-Day-Backtesting implementiert Im Anschluss an direkt aus der Generierung von simulierten Tick-Daten ist die Umsetzung der mehrtägigen Backtesting. Während mein langfristiger Plan ist, ein robusteres historisches Speichersystem wie PyTables mit HDF5 zu verwenden. Zur Zeit werde ich von einer Reihe von CSV-Dateien Gebrauch machen, eine Datei pro Tag pro Währungspaar. Dies ist eine skalierbare Lösung, da die Anzahl der Tage zunimmt. Die ereignisgesteuerte Natur des Systems erfordert nur immer N-Dateien im Speicher, wo N die Anzahl der Währungspaare ist, die an einem bestimmten Tag gehandelt werden. Die Grundidee des Systems ist für den aktuellen HistoricCSVPriceHandler, die Streamnexttick-Methode weiterhin zu verwenden, aber mit einer Änderung, um mehrere Tage von Daten zu berücksichtigen, indem sie jeden Tag der Daten sequentiell laden. Die aktuelle Implementierung beendet den Backtest beim Empfang der StopIteration-Ausnahme, die durch den nächsten (..) Aufruf von self. allpairs wie in diesem Pseudocode-Snippet gezeigt wird: In der neuen Implementierung wird dieses Snippet auf folgendes geändert: In diesem Snippet, Wenn StopIteration angehoben wird, prüft der Code das Ergebnis von self. updatecsvforday (). Wenn das Ergebnis True ist, geht der Backtest weiter (auf self. curdatepairs, die in die nachfolgenden Tage geändert werden konnten). Wenn das Ergebnis falsch ist. Der backtest endet. Dieser Ansatz ist sehr effizient, da nur ein bestimmter Wert der Daten an einem beliebigen Punkt geladen wird. Es bedeutet, dass wir möglicherweise monatelange Backtest ausführen können und nur durch die CPU-Verarbeitungsgeschwindigkeit und die Datenmenge, die wir generieren oder erwerben können, begrenzt sind. Ich habe die Dokumentation aktualisiert, um die Tatsache zu berücksichtigen, dass das System nun mehrere Tage von Daten in einem bestimmten Format erwartet, in einem bestimmten Verzeichnis, das angegeben werden muss. Plotten von Backtesting-Ergebnissen mit Seaborn-Bibliothek Ein Backtest ist relativ nutzlos, wenn wir die Leistung der Strategie im Laufe der Zeit nicht visualisieren können. Während das System bisher meist konsolenbasiert war, habe ich mit dieser Version den Übergang zu einer grafischen Benutzeroberfläche (GUI) begonnen. Insbesondere habe ich die üblichen drei Scheiben von Charts erstellt, die oft Performance-Metriken für quantitative Handelssysteme begleiten, nämlich die Eigenkapitalkurve, das Renditeprofil und die Drawdown-Kurve. Alle drei sind für jedes Tick berechnet und werden in eine Datei namens equity. csv in der OUTPUTRESULTSDIR in settings. py gefunden ausgegeben. Um die Daten zu betrachten, benutzen wir eine Bibliothek namens Seaborn. Die produzieren Publikationsqualität (ja, ACTUAL Publikation-Qualität) Grafiken, die wesentlich besser aussehen als die Standard-Grafiken von Matplotlib produziert. Die Grafik sieht sehr nah an denen, die vom R-Paket ggplot2 produziert werden. Darüber hinaus verwendet Seaborn eigentlich Matplotlib darunter, also kannst du trotzdem die Matplotlib API verwenden. Um die Ausgabe zu erlauben, habe ich das Ausgabe-Skript geschrieben, das im Backtest-Verzeichnis lebt. Die Auflistung für das Skript ist wie folgt: Wie Sie sehen können, das Skript importiert Seaborn und öffnet die equity. csv Datei als Pandas DataFrame, dann erstellt einfach drei Subplots, jeweils eine für die Equity-Kurve, Returns und Drawdown. Beachten Sie, dass das Drawdown-Diagramm selbst tatsächlich aus einer Helper-Funktion berechnet wird, die in performanceperformance. py lebt. Die aus der Portfolio-Klasse am Ende eines Backtests aufgerufen wird. Ein Beispiel für die mitgelieferte MovingAverageCrossStrategy-Strategie auf einem zufällig generierten Satz von GBPUSD-Daten für den Monat Januar 2014 ergibt sich wie folgt: Insbesondere können Sie die flachen Abschnitte der Aktienkurve an den Wochenenden sehen, an denen keine Daten vorliegen Ist vorhanden (zumindest für diesen simulierten Datensatz). Darüber hinaus können Sie sehen, dass die Strategie einfach verliert Geld in einer eher vorhersagbaren Weise auf diesem zufällig simulierten Datensatz. Das ist ein guter Test des Systems. Wir versuchen einfach einen Trend zu einer zufällig generierten Zeitreihe zu verfolgen. Die Verluste treten aufgrund der im Simulationsprozess eingeführten festen Spread auf. Dies macht deutlich, dass wir, wenn wir einen gleichbleibenden Gewinn im Hochfrequenz-Devisenhandel machen wollen, eine spezifische quantifizierbare Kante benötigen, die über die Transaktionskosten wie die Ausbreitung und das Rutschen positive Erträge generiert. Wir werden noch viel mehr über diesen äußerst wichtigen Punkt in den folgenden Beiträgen des Forex Trading Diary sagen. Nächste Schritte Fixing Position Calculations Ive hatte vor kurzem eine sehr äußerst hilfreiche Korrespondenz mit QSForex-Benutzern über die Disqus-Kommentare und die QSForex Issues-Seite zur Korrektheit der Berechnungen innerhalb der Positionsklasse. Einige haben festgestellt, dass die Berechnungen nicht genau spiegeln können, wie OANDA (der Broker, der für das Trading. py-System verwendet wird) selbst Kreuzwährungs-Trades berechnen. Daher ist einer der wichtigsten nächsten Schritte, um diese vorgeschlagenen Änderungen in position. py tatsächlich zu machen und zu testen und auch die Unit-Tests zu aktualisieren, die in positiontest. py leben. Dies wird einen klopf-on-Effekt mit portfolio. py und auch portfoliotest. py haben. Leistungsmessung Während wir nun über die Eigenkapitalkurve einen Grundsatz visueller Leistungsindikatoren haben, geben wir Profil - und Drawdown-Serien zurück, benötigen wir mehr quantifizierte Performance-Maßnahmen. Insbesondere benötigen wir Strategie-Level-Metriken, einschließlich gemeinsamer Risiko-Rel-Ratios wie das Sharpe Ratio, Information Ratio und Sortino Ratio. Wir benötigen auch Drawdown-Statistiken, einschließlich der Verteilung der Drawdowns, sowie beschreibende Statistiken wie Maximum Drawdown. Weitere nützliche Kennzahlen sind die Compound Annual Growth Rate (CAGR) und die Gesamtrendite. Auf der Tradeposition Ebene wollen wir Metriken wie avg Profit, max Profit, Gewinn-Verhältnis und Winloss-Verhältnis zu sehen. Da wir die Positionsklasse als einen grundlegenden Teil der Software von Anfang an gebaut haben, sollte es nicht zu problematisch sein, diese Metriken über einige zusätzliche Methoden zu generieren. Mehr dazu im nächsten Eintrag, aber nur Erste Schritte mit Quantitative TradingForex Trading Diary 5 - Trading Mehrere Währungspaare Gestern habe ich einige wichtige Änderungen an der QSForex Software veröffentlicht. Diese Änderungen haben die Nützlichkeit des Systems erheblich auf den Punkt erhöht, wo es fast bereit ist für mehrtägige Tick-Daten-Backtesting über eine Reihe von Währungspaaren. Folgende Änderungen wurden an Github gebucht: Weitere Änderungen an den Positions - und Portfolio-Objekten, um mehrere Währungspaare zu handeln, sowie Währungen, die nicht auf die Kontowährung lauten. Daher kann ein GBP-deonomiertes Konto nun EURUSD handeln. Vollständige Überarbeitung, wie sich die Positions - und Portfolio-Berechnungen öffnet, schließt, ergänzt und ergänzt die Einheiten. Das Positionsobjekt führt nun das schwere Heben aus, das ein relativ schlankes Portfolioobjekt hinterlässt. Hinzufügung der ersten nicht-trivialen Strategie, nämlich der bekannten Moving Average Crossover-Strategie mit einem Paar einfacher gleitender Durchschnitte (SMA). Änderung an backtest. py, um es einzeln-threaded und deterministisch zu machen. Trotz meines Optimismus, dass ein Multi-Thread-Ansatz wäre nicht zu schädlich für Simulation Genauigkeit, fand ich es schwierig, zufriedenstellende Backtesting Ergebnisse mit einem Multi-Thread-Ansatz zu erhalten. Ein sehr einfaches Matplotlib-basiertes Ausgabeskript für die Betrachtung der Aktienkurve des Portfolios eingeführt. Die Aktienkurvenerzeugung ist in einem frühen Stadium und erfordert noch viel Arbeit. Wie ich bereits erwähnt habe. Für diejenigen unter Ihnen, die mit QSForex nicht vertraut sind und zum ersten Mal zu dieser Forex-Tagebuch-Serie kommen, schlage ich vor, dass ich die folgenden Tagebucheinträge lesen muss, um mit der Software zu beschleunigen: Neben der Github-Seite für QSForex : Mehrfache Währungsunterstützung Eine Funktion, die ich in diesen Tagebucheinträgen ständig diskutiert habe, ist die Fähigkeit, mehrere Währungspaare zu unterstützen. In diesem Stadium Ive jetzt die Software geändert, um unterschiedliche Kontobezeichnungen zu erlauben, da vorher GBP die hartcodierte Währung war. Es ist auch möglich, in anderen Währungspaaren zu handeln, mit Ausnahme derjenigen, die aus einer Basis oder einem Zitat im japanischen Yen (JPY) bestehen. Letzteres ist darauf zurückzuführen, wie die Tickgrößen in JPY-Währungen gekoppelt sind. Um dies zu erreichen, habe ich geändert, wie der Gewinn berechnet wird, wenn Einheiten entfernt oder die Position geschlossen ist. Hier ist das aktuelle Snippet für die Berechnung von Pips, in der Position. py Datei: Wenn wir die Position schließen, um einen Gewinn oder Verlust zu realisieren, müssen wir das folgende Snippet für die Schließung verwenden. Auch in der position. py-Datei: Zuerst erhalten wir die Geld - und Briefkurse für das Währungspaar, das gehandelt wird, sowie das Quotehome-Währungspaar. Zum Beispiel für ein Konto, das auf GBP lautet, wo wir EURUSD handeln, müssen wir Preise für USDGBP erhalten, da EUR die Basiswährung ist und USD das Angebot ist. In diesem Stadium überprüfen wir, ob die Position selbst eine lange oder kurze Position ist und dann den passenden Entfernungspreis und den Quotehome-Entfernungspreis berechnen, die durch den Entfernungspreis und den qhclose gegeben werden. Wir aktualisieren dann die aktuellen und durchschnittlichen Preise innerhalb der Position und berechnen schließlich die PampL durch Multiplikation der Pips, der Quotehome Entfernung Preis und dann Anzahl der Einheiten wurden ausgeschlossen. Wir haben die Notwendigkeit, die Exposition zu besprechen, völlig eliminiert, was eine redundante Variable war. Diese Formel stellt dann korrekt die PampL gegen irgendwelche (nicht JPY bezeichnet) Währung Paar Handel. Überholung von Positions - und Portfolio-Handling Neben der Fähigkeit, in mehreren Währungspaaren zu handeln, habe ich auch weiterentwickelt, wie die Position und das Portfolio die Verantwortung für die Eröffnung und Schließung von Positionen sowie das Hinzufügen und Subtrahieren von Einheiten teilen. Insbesondere hat Ive eine Menge der Position-Handling-Code, der in portfolio. py in position. py war bewegt. Dies ist natürlicher, da die Position sich um sich selbst kümmern und sie nicht an das Portfolio delegieren sollte. Insbesondere die Addunits. Removeunits und closeposition Methoden wurden erstellt oder erweitert: In den beiden letzteren sehen Sie, wie die neue Formel für die Berechnung des Profits umgesetzt wird. Damit wurde die Funktionalität der Portfolio-Klasse entsprechend reduziert. Insbesondere die Methoden addnewposition. Addpositionunits Removepositionunits und closposition wurden modifiziert, um der Tatsache Rechnung zu tragen, dass die Berechnungsarbeiten im Positionsobjekt durchgeführt werden: Im Wesentlichen prüfen sie alle (abgesehen von addnewposition) einfach, ob die Position für dieses Währungspaar existiert und dann die entsprechende Positionsmethode aufruft Unter Berücksichtigung des Gewinns, wenn nötig. Moving Average Crossover Strategie Weve diskutierte die Moving Average Crossover Strategie vor auf QuantStart. Im Rahmen des Aktienhandels. Es ist eine sehr nützliche Test-Bed-Indikator-Strategie, weil es einfach ist, die Berechnungen von Hand zu replizieren (zumindest bei niedrigeren Frequenzen), um zu überprüfen, ob sich der Backtester so verhält, wie er sollte. Die Grundidee der Strategie lautet wie folgt: Zwei separate, einfach gleitende Durchschnittsfilter werden mit unterschiedlichen Lookback-Perioden einer bestimmten Zeitreihe erstellt. Signale zum Kauf des Vermögenswertes treten auf, wenn der kürzere Rückblick gleitende Durchschnitt den längeren Rückblick gleitenden Durchschnitt überschreitet. Wenn der längere Durchschnitt später den kürzeren Durchschnitt übersteigt, wird der Vermögenswert zurückverkauft. Die Strategie funktioniert gut, wenn eine Zeitreihe einen starken Trend einbringt und dann langsam den Trend rückgängig macht. Die Umsetzung ist einfach. Zuerst stellen wir eine Methode calcrollingsma zur Verfügung, die es uns ermöglicht, die vorherige Zeitspanne SMA-Berechnung effizienter zu nutzen, um die neue zu generieren, ohne die SMA bei jedem Schritt vollständig neu zu berechnen. Zweitens erzeugen wir in zwei Fällen Signale. Im ersten Fall generieren wir ein Signal, wenn die kurze SMA die lange SMA übersteigt und nicht lange das Währungspaar war. Im zweiten Fall generieren wir ein Signal, wenn die lange SMA die kurze SMA übersteigt und wir schon lange sind. Ich habe das Standardfenster auf 500 Ticks für die kurze SMA und 2.000 Ticks für die lange SMA gesetzt. Offensichtlich in einer Produktionseinstellung würden diese Parameter optimiert, aber sie funktionieren gut für unsere Testzwecke. Single-Threaded Backtester Eine weitere wesentliche Änderung war, die Backtesting-Komponente zu modifizieren, um Single-Threaded zu sein, anstatt Multi-Threaded. Ich habe diese Änderung gemacht, weil ich eine sehr harte Zeit hatte, die Threads zu synchronisieren, um in einer Weise auszuführen, die in einer Live-Umgebung auftreten würde. Es bedeutete grundsätzlich, dass die Ein - und Ausstiegspreise sehr unrealistisch waren, oftmals (virtuelle) Stunden nach der eigentlichen Tickung. Daher habe ich das Streamen von TickEvent-Objekten in die Backtesting-Loop integriert, wie man im folgenden Snippet von backtest. py sehen kann: Beachten Sie die Zeile ticker. streamnexttick (). Dies wird vor einer Abfrage der Ereignis-Warteschlange aufgerufen und als solches wird immer garantieren, dass ein neues Tick-Event angekommen ist, bevor die Warteschlange wieder abgefragt wird. Insbesondere bedeutet dies, dass ein Signal ausgeführt wird, wenn neue Marktdaten eintreffen, auch wenn es aufgrund des Schlupfes eine gewisse Verzögerung im Bestellvorgang gibt. Ive auch einen Maxiters Wert, der steuert, wie lange die Backtesting-Schleife fortgesetzt wird. In der Praxis muss dies ziemlich groß sein, wenn es um mehrere Währungen über mehrere Tage geht, aber Ive setzt es auf einen Standardwert, der für einzelne Tage Daten eines Währungspaares erlaubt. Die streamnexttick-Methode der Preishandler-Klasse ähnelt dem streamtoqueue, außer dass sie die Iterator next () - Methode manuell anruft, anstatt das Tick-Streaming in einer for-Schleife auszuführen: Beachten Sie, dass es bei Empfang einer StopIteration-Ausnahme aufhört. Damit kann der Code wieder aufgenommen werden, anstatt bei der Ausnahme zu stürzen. Matplotlib Output Ive hat auch ein sehr einfaches Matplotlib-Ausgangsskript erstellt, um die Eigenkapitalkurve anzuzeigen. Output. py lebt derzeit im Backtest-Verzeichnis von QSForex und ist unten angegeben: Beachten Sie, dass es eine neue settings. py Variable gibt, die jetzt OUTPUTRESULTSDIR heißt. Die in Ihren Einstellungen eingestellt werden müssen. Ich habe es auf ein temporäres Verzeichnis anderswo auf meinem Dateisystem hinweisen, da ich nicht zufällig irgendwelche Eigenkapital-Backtest-Ergebnisse in die Code-Basis hinzufügen möchte. Die Equity-Kurve funktioniert, indem sie einen Balance-Wert zu einer Liste von Wörterbüchern hinzugefügt hat, wobei ein Wörterbuch einem a entspricht Zeitstempel Sobald der Back-Test abgeschlossen ist, wird die Liste der Wörterbücher in einen Pandas DataFrame konvertiert und die tocsv-Methode wird verwendet, um equity. csv auszugeben. Dieses Ausgabe-Skript liest dann einfach die Datei und zeichnet die Balance-Spalte des nachfolgenden DataFrame auf. Sie können das Snippet für die appendequityrow - und outputresults-Methoden der Portfolio-Klasse unten sehen: Jedes Mal, wenn executesignal aufgerufen wird, wird die frühere Methode aufgerufen und fügt den Timeestampbalance-Wert an das Equity-Mitglied an. Am Ende der Backtest-Ausgabe werden die Ergebnisse angezeigt, die einfach die Liste der Wörterbücher in einen DataFrame konvertieren und dann in das angegebene OUTPUTRESULTSDIR-Verzeichnis ausgeben. Leider ist dies nicht besonders geeignet, eine Eigenkapitalkurve zu erstellen, wie sie nur bei der Erstellung eines Signals auftritt. Dies bedeutet, dass es nicht berücksichtigt unrealisierte PampL. Während dies ist, wie tatsächlichen Handel auftritt (Sie havent tatsächlich irgendwelche Geld, bis Sie eine Position zu schließen) bedeutet, dass die Eigenkapitalkurve bleibt völlig flach zwischen Balance Updates. Schlimmer noch, Matplotlib wird standardmäßig eine lineare Interpolation zwischen diesen Punkten, so dass der falsche Eindruck der nicht realisierten PampL. Die Lösung für dieses Problem besteht darin, einen unrealisierten PampL-Tracker für die Positionsklasse zu erstellen, der bei jedem Tick korrekt aktualisiert wird. Dies ist ein wenig mehr rechnerisch teuer, aber ermöglicht eine sinnvollere Eigenkapitalkurve. Diese Funktion ist für ein späteres Datum geplant. Nächste Schritte Die nächste Hauptaufgabe für QSForex ist es, mehrtägiges Backtesting zu ermöglichen. Im Moment lädt das HistoricCSVPriceHandler-Objekt nur einen einzigen Tag im Wert von DukasCopy-Tick-Daten für alle angegebenen Währungspaare. Um mehrtägige Tests zu ermöglichen, wird es notwendig sein, jeden Tag sequentiell zu laden und zu streamen, um zu vermeiden, dass RAM mit der gesamten Geschichte der Tickdaten abgefüllt wird. Dies erfordert eine Änderung, wie die streamnexttick-Methode funktioniert. Sobald dies abgeschlossen ist, wird es eine langfristige Strategie-Backtesting über mehrere Paare ermöglichen. Eine weitere Aufgabe ist es, die Leistung der Aktienkurve zu verbessern. Um eine der üblichen Leistungsmesswerte (wie zB die Sharpe Ratio) zu berechnen, müssen wir prozentuale Renditen über einen bestimmten Zeitraum berechnen. Allerdings erfordert dies, dass wir die Tick-Daten in Bars, um eine Rückkehr für einen bestimmten Zeitraum zu berechnen. Solche Binning muss auf einer Stichprobenhäufigkeit auftreten, die der Handelshäufigkeit ähnlich ist oder die Sharpe Ratio nicht über die wahre Risikobereitschaft der Strategie reflektiert wird. Diese Binning ist nicht eine triviale Übung, da es viele Annahmen gibt, die in die Erzeugung eines Preises für jeden Behälter gehen. Sobald diese beiden Aufgaben abgeschlossen sind und genügend Daten erworben wurden, werden wir in der Lage sein, eine breite Palette von Tick-Daten-basierten Forex-Strategien zu unterstützen und Eigenkapitalkurven abzüglich der Mehrheit der Transaktionskosten zu produzieren. Darüber hinaus wird es äußerst unkompliziert sein, diese Strategien auf dem von OANDA zur Verfügung gestellten Praxis-Trading-Account zu testen. Dies soll Ihnen erlauben, viel bessere Entscheidungen darüber zu treffen, ob eine Strategie im Vergleich zu einem forschungsorientierteren Backtesting-System durchgeführt werden soll. Just Getting Started mit quantitativen TradingScalping, Trading intraday e multiday o di posizione: quale conviene sul Forex Chi mi segue sa che sul Forex prediligo il Handel intraday sia allo scalping che al Handel di posizione o multiday. Cerco semper una über di mezzo pro nicht ritrovarmi con delle perdite aufeinanderfolgend o con un grado di stress emotivo troppo alto. Il Handel in scalping infatti comporta uno stress emotivo molto elevato, mentre il Handel di posizione o multiday comporta delle eventuali perdite troppo alte pro il mio modo di fare Handel. Tuttavia, mentre nel primo caso ich guadagni sono molto contenuti, ein volte troppo, e nel lungo periodo potrebbe und ist ein tuo sfavore. Nel secondo caso gli eventuali profitti sono davvero allettanti, ma le perdite Meglio nicht pensarci. E allora quale strada intraprendere Io ho scelto una über intermedia, quella del Handel intraday. Almeno per la maggior parte dei casi e con delle varianti Cosa significa Se hai seguito qualche mia operazione, hai visto che prendo un primo profitto abbastanza ravvicinato per poi lasciar correre il resto della posizione senza pi rischio, spostando lo stop al livello della mia entrata. A questo punto possono presentarsi 2 circostanze: lo stop proft viene toccato senza conseguenze, in quanto ho gi preso un piccolo profitto in scalping il prezzo continua ad und sind verso la mia direzione e sposto lo stop ogni volta che si forma una barra dinversione su un determinato Zeitrahmen, Fino ein Quando Lo Stop Gewinn nicht Viene toccato o fino ein quando nicht decido di chiudere il Handel. In questultimo caso pu signare che lascio aperto il handel anche per pi giorni infrasettimanali, trasformando quindi il Handel intraday im Handel multiday o di posizione. Ci comporta molti benefici, sia a livello emotivo che di profitti e puoi guadagnare molti punti senza pi entrare in posizione, ma semplicemente spostando lo stoppen Gewinn in Basis al movimento del prezzo. Ti faccio un esempio pratico Studio semper ich grafici ein Zeitrahmen pi ampio per fare unanalisi tecnica di pi lungo periodo. Questo perch poi posso trovare meglio una direzione profittevole filtrando le mie entführen su Zeitrahmen intraday. In modo da rischiare molto meno in termini di stop verlust Qualche giorno fa ho notato - con una tecnica di Handel di lungo periodo che ti mostrer pi avanti - una possibilit di und ist ein rialzo sul cambio euro dollaro. Quindi provo ad anticipare il movimento su Zeitrahmen intraday. Ho fatto un tentativo di entrata ein rialzo il 26 febbraio. Ho raggiunto il primo profitto ma poi sono stata stoppata nella notte senza alcuna perdita Il mio secondo tentativo di und ist ein rialzo avviene il 27 febbraio. Il mio primo obiettivo stato raggiunto e il prezzo finalmente continuato ad und ist verso la mia direzione. Sono stata molto fortunata perch ieri 27 febbraio c stato un disservizio di circa 2 ore del broker che utilizzavo, Oanda. Avevo inserito un ordine di vendita pro il mio primo Profitto e fortunatamente ha funzionato, al contrario dello stop che, quando sono riuscita ein rientrare, era stato cancellato. Quindi oggi 28 febbraio cerco di mediare ancora il Handel perch avevo visto unulteriore possibilit di rialzo e chiudo tutta la posizione in mattinata. Avrei potuto lasciarla aperta Nein, pro 2 motivi: non voglio pi rischiare che il mio stoppen Gewinn venga cancellato pro un disservizio del broker oggi venerd e nicht consigliabile lasciare aperti Handel durante il Wochenende sul Forex, Barsch allapertura potrebbero verificarsi dei Lücke. Perch conviene avere un approccio di questo genere Se guardi bene il grafico che ti ho postato ti rendi conto di quanto possa essere conveniente avere un approccio di lungo periodo, pur facendo Handel intraday. Restare in una posizione in Profitto pro pi giorni pu darti molte soddisfazioni sia in termini di guadagno che di entspannen mentale. Da luned si riparte con un altro broker con MT4. Ti weit comunque vedere lultimo video che ho effettuato con Oanda in settimana. Per il momento ti auguro un sereno week endSlideshare verwendet Cookies, um Funktionalität und Leistung zu verbessern und Ihnen relevante Werbung zu bieten. Wenn Sie die Seite weiter durchsuchen, stimmen Sie der Verwendung von Cookies auf dieser Website zu. Siehe unsere Benutzervereinbarung und Datenschutzbestimmungen. Slideshare verwendet Cookies, um Funktionalität und Leistung zu verbessern und Ihnen relevante Werbung zu bieten. Wenn Sie die Seite weiter durchsuchen, stimmen Sie der Verwendung von Cookies auf dieser Website zu. Weitere Informationen finden Sie in unserer Datenschutzerklärung und Benutzervereinbarung. Entdecken Sie alle Ihre Lieblingsthemen in der SlideShare App Holen Sie sich die SlideShare App, um für spätere offline zu speichern Weiter zur mobilen Website Upload Login Signup Doppelte tippen, um zu verkleinern Trading Multiday Teilen Sie diese SlideShare LinkedIn Corporation Kopie 2017

No comments:

Post a Comment