Monday, 2 October 2017

Forex Backtesting Excel


Mit Excel-Back-Test Trading-Strategien Wie Back-Test mit Excel Ive getan ein faires Maß an Trading-Strategie Back-Tests. Ive verwendet anspruchsvolle Programmiersprachen und Algorithmen und Ive auch getan es mit Bleistift und Papier. Sie brauchen nicht, ein Raketenwissenschaftler oder ein Programmierer zu sein, zum der vielen Handelsstrategien zurück zu prüfen. Wenn Sie ein Tabellenkalkulationsprogramm wie Excel betreiben können, dann können Sie testen viele Strategien. Das Ziel dieses Artikels ist es, Ihnen zu zeigen, wie Sie eine Trading-Strategie mithilfe von Excel und einer öffentlich zugänglichen Datenquelle testen können. Dies sollte nicht kostet Sie mehr als die Zeit es braucht, um den Test zu tun. Bevor Sie eine Strategie testen, benötigen Sie einen Datensatz. Zumindest ist dies eine Reihe von Zeiten und Preisen. Realistisch müssen Sie die datetime, offen, hoch, niedrig, enge Preise. Sie benötigen normalerweise nur die Zeitkomponente der Datenreihe, wenn Sie Intraday-Trading-Strategien testen. Wenn Sie zusammenarbeiten und lernen, wie Sie zurück mit Excel testen, während Sie dies lesen, dann folgen Sie den Schritten, die ich in jedem Abschnitt skizzieren. Wir müssen einige Daten für das Symbol, dass wir gehen zurück zu erhalten. Gehen Sie zu: Yahoo Finance Geben Sie im Feld Enter Symbol (s) Folgendes ein: IBM und klicken Sie auf GO Unter Quotes auf der linken Seite klicken Sie auf Historische Kurse und geben Sie die gewünschten Datumsbereiche ein. I Ausgewählt aus 1 Jan 2004 bis 31 Dez 2004 Scrollen Sie bis zum Ende der Seite und klicken Sie auf Download To Spreadsheet Speichern Sie die Datei mit einem Namen (wie ibm. csv) und einem Ort, den Sie später finden können. Vorbereiten der Daten Öffnen Sie die Datei (die Sie oben heruntergeladen haben) mit Excel. Aufgrund der dynamischen Natur des Internets können sich die Anweisungen, die Sie oben gelesen haben, und die Datei, die Sie öffnen, durch die Zeit, die Sie lesen, geändert haben. Wenn ich diese Datei heruntergeladen, die oberen paar Zeilen sah so aus: Sie können nun löschen Sie die Spalten, die Sie nicht verwenden werden. Für den Test, dass Im zu tun, werde ich nur das Datum verwenden, öffnen und schließen Werte, so habe ich gelöscht die High, Low, Volume und Adj. Schließen. Ich auch die Daten sortiert, so dass das älteste Datum war zuerst und das späteste Datum war am unteren Rand. Verwenden Sie dazu die Menüoptionen Data - gt Sort. Anstatt eine Strategie an sich zu testen, werde ich versuchen, den Tag der Woche zu finden, der die beste Rendite zur Verfügung stellte, wenn man einem Kauf die offene und die enge Strategie folgte. Denken Sie daran, dass dieser Artikel hier ist, um Ihnen vorzustellen, wie zu verwenden, um Excel-Teststrategien zurück. Darauf können wir bauen. Hier ist die Datei ibm. zip, die die Tabelle mit den Daten und Formeln für diesen Test enthält. Meine Daten befinden sich nun in den Spalten A bis C (Datum, Öffnen, Schließen). In den Spalten D bis H habe ich Platzformeln, um die Rendite an einem bestimmten Tag zu bestimmen. Eingabe der Formeln Der schwierige Teil (außer youre ein Excel-Experte) ist die Ausarbeitung der Formeln zu verwenden. Dies ist nur eine Frage der Praxis und je mehr Sie üben die mehr Formeln youll entdecken und die mehr Flexibilität youll haben mit Ihrer Prüfung. Wenn Sie die Tabelle heruntergeladen haben, dann werfen Sie einen Blick auf die Formel in Zelle D2. Es sieht so aus: Diese Formel wird auf alle anderen Zellen in den Spalten D bis H (mit Ausnahme der ersten Zeile) kopiert und muss nach dem Kopieren nicht mehr angepasst werden. Ill erklären kurz die Formel. Die IF-Formel hat eine Bedingung, einen wahren und einen falschen Teil. Die Bedingung ist: Wenn der Wochentag (umgerechnet auf eine Zahl von 1 bis 5, die Montag bis Freitag entspricht) mit dem Wochentag in der ersten Zeile dieser Spalte (D1) identisch ist. Der wahre Teil der Anweisung (C2-B2) gibt uns einfach den Wert von Close-Open. Dies zeigt, dass wir die Open gekauft und verkauft die Close und das ist unser Profitverlust. Der falsche Teil der Anweisung ist ein Paar von doppelten Anführungszeichen (), die nichts in die Zelle setzen, wenn der Tag der Woche nicht übereinstimmt. Die Zeichen links von dem Spaltenbuchstaben oder der Zeilennummer sperren die Spalte oder Zeile, so dass, wenn sein kopierter Teil der Zellreferenz nicht ändert. Wenn also die Formel in das Beispiel kopiert wird, ändert die Referenz auf die Datumszelle A2 die Zeilennummer, wenn sie in eine neue Zeile kopiert wird, aber die Spalte in Spalte A bleibt. Sie können die Formeln verschachteln und außergewöhnlich leistungsfähige Regeln bilden Und Ausdrücke. Die Ergebnisse Am unteren Rand der Wochentagsspalten habe ich einige Zusammenfassungsfunktionen platziert. Bemerkenswert sind die Durchschnitts - und Summenfunktionen. Diese zeigen uns, dass im Jahr 2004 der profitabelste Tag, um diese Strategie umzusetzen war an einem Dienstag und dies wurde von einem Mittwoch dicht gefolgt. Als ich die Expiry Freitags - Bullish oder Bearish-Strategie getestet und schrieb, dass Artikel, den ich einen sehr ähnlichen Ansatz mit einer Kalkulationstabelle und Formeln wie diese. Das Ziel dieses Tests war, zu sehen, wenn Expiry freitags allgemein bullish oder bearish waren. Versuch es. Laden Sie einige Daten von Yahoo Finanzen. Laden Sie es in Excel und probieren Sie die Formeln und sehen, was Sie kommen können. Stellen Sie Ihre Fragen im Forum. Viel Glück und profitable Strategie huntingBacktesting in Excel vs MQL4 Beigetreten Juli 2011 Status: Mitglied 4 Beiträge Hat jemand Backtesting Excel tun, oder wissen, Mitglieder, die tun würde Ich mag Methodik und Modelle mit jemand zu diskutieren, die Excel verwendet. Hat jemand irgendwelche einfachen (oder komplexen) Modelle, die er bereit wäre, für grundlegende Indikatoren oder Systeme zu teilen? Sollte ich etwas Zeit zum Lernen MQL4 widmen Ich habe eine Menge Erfahrung Modellierung in Excel, aber ich habe keine Erfahrung mit Computer-Programmierung. Ich bin zögern, Zeit lernen, MQL4 lernen, wie ich von nichts beginnen, aber vielleicht wäre dies einfacher sein. Gibt es irgendwelche anderen Nicht-Programmierer da draußen, die sich in MQL4 beherrscht haben? Joined Oct 2007 Status: Mitglied 92 Beiträge Excel ist ein leistungsfähiges Werkzeug. Während es entworfen ist, um als eine verteilte Platte zu arbeiten und zu modellieren, usw., haben Leute es benutzt, um alle Arten erstaunliche Sachen, einschließlich AI, Datenbanken, etc. zu tun, obwohl dort spezielle Werkzeuge entwarf spezifisch für jene Aufgaben. MQL4 ist eine ziemlich grobe Sprache, aber es ist speziell für den Handel konzipiert und so hat es viele Dinge spezifisch für diese Aufgabe. Während theres eine anhaltende Debatte über die Wirksamkeit der Strategie-Tester als Back-Test-Tool, Im sicher, dass Sie wieder zehn Mal schneller mit MQL4, auch wenn Sie die Sprache von Grund auf lernen müssen. Sie sind wahrscheinlich bereits vertraut mit einer Menge der grundlegenden Programmierung Konzepte wie Loops und bedingte Anweisungen. Für die Excel-Route, möchten Sie vielleicht für Werkzeuge, die bereits vorhanden sind zu suchen, Id überrascht sein, wenn jemand nicht schon getan hat. Wenn Sie etwas fertiges nicht finden können, müssen Sie zuerst einen HandelsSimulator entwerfen, das Reporting behandeln, Ihre historischen Daten verarbeiten und dann eine angemessene Benutzeroberfläche haben. All dies kommt kostenlos mit MT4. Mitglied seit: Oct 2007 Status: Mitglied 887 Beiträge Alles, was mit Berechnungen, die ich in Excel, habe seit Jahren getan. Allerdings Im nicht sicher, youd erhalten etwas aus meinen Modellen als theyre spezifisch für das, was Im tun. Excel ist viel flexibler und transparenter, so dass Sie die Daten richtig abfragen und überprüfen können. Für den Nichtprogrammierer ist er goldgelb. Nur als Beispiel, wie lange würde es Sie klopfen eine EA, dass die durchschnittliche Volatilität einer bestimmten Stunde für die letzten 14 Tage zeigt. Im nicht sagen, seine unmöglich - ich habe keine Ahnung - aber in Excel, ein Pivot-Tabelle und 5 Minuten später und du bist fertig. Wo Excel unten fällt, ist im Phasenhandel - es spielt nicht schönes Einhaken in andere Handelsplattformen (FXCM IBCurrenex) aber für backtesting, das nicht ausmacht. Registriert seit Oder es etwa 216 Beiträge Als ich begann meine eigene Analyse begann ich mit Excel, da ich keine Programmierkenntnisse und fand VBA leichter zu lernen als MQL4. Jetzt verwende ich eine Kombination von beidem. In meiner begrenzten Erfahrung, MQL4 ist schneller bei der Durchführung von Berechnungen als Excel, insbesondere wenn Ihr Excel-Blatt nutzt viele benutzerdefinierte Funktionen. Eines meiner laufenden Projekte ist es, eine Kalkulationstabelle zu erstellen, um 70 verschiedene Instrumente auf wöchentlichen und täglichen Zeitrahmen zu analysieren. Zuerst dachte ich, dass ich MQL4 verwenden würde, um CSV-Dateien von OHLC info für jedes Instrument und Zeitrahmen zu schreiben, dann crunch die Zahlen in Excel. Nach unten - ein paar Minuten, um neu zu berechnen Also, jetzt führe ich alle Berechnungen in MT4 und dann schreiben Sie nur zwei Dateien. Excel ist dann die Benutzeroberfläche und es gibt keine Wartezeit auf Berechnungen. Ich nehme an, was ich an bekomme, ist, dass, wenn Sie beide verwenden können, dann geben Sie sich die Fähigkeit zu verwenden, was am besten für die Aufgabe geeignet ist, die Sie selbst gesetzt haben. Nur meine 2 Pence. Registriert seit: May 2006 Status: Nur ein Benutzername. 1367 Beiträge Ive versucht, diese Methoden im Laufe der Jahre: MT4 Strategy Tester Benutzerdefinierte Python-Programme Openoffice Calc (Excel-kompatibel) Jedes EA hat seine eigenen Eigenschaften, aber im Allgemeinen Ive die besten Ergebnisse mit MT4 IndicatorsScripts hatte. Wenn Sie einen Indikator erstellen können, der die Aktionen eines gegebenen EA dupliziert, ist es möglich, diesen Indikator zu einem Analysewerkzeug zu machen. Alle EAs eignen sich nicht für diesen Ansatz, aber wenn Sie eine haben, die tut, wird es liefern Nah-Instant-Ergebnisse (nicht genau auf die Pip, aber nah genug) und sparen, um mit csv-Dateien oder andere komplexere Schnittstellen Techniken basteln. IMHO, lassen Sie die Art der EA Sie testen diktieren die beste Methode der Prüfung. Old Benjamin war rightQSForex ist ein Open-Source-Event-driven Backtesting und Live-Handelsplattform für den Einsatz in den Devisenmärkten, derzeit in einem Alpha-Staat. Es wurde als Teil der Forex Trading Diary-Serie auf QuantStart erstellt, um die systematische Trading-Community mit einem robusten Trading-Engine, die direkte Forward-Strategie-Implementierung und Tests ermöglicht. Die Software wird unter einer zulässigen MIT-Lizenz bereitgestellt (siehe unten). Open-Source - QSForex wurde unter einer äußerst zulässigen Open-Source-MIT-Lizenz freigegeben, die eine vollständige Nutzung sowohl in der Forschung als auch in kommerziellen Anwendungen erlaubt, ohne Einschränkung, jedoch ohne jegliche Garantie. Free - QSForex ist völlig kostenlos und kostet nichts zum Herunterladen oder verwenden. Zusammenarbeit - Da QSForex Open Source ist, arbeiten viele Entwickler zusammen, um die Software zu verbessern. Neue Funktionen werden häufig hinzugefügt. Alle Fehler werden schnell bestimmt und behoben. Software-Entwicklung - QSForex ist in der Python-Programmiersprache für einfache Cross-Plattform-Unterstützung geschrieben. QSForex enthält eine Suite von Unit-Tests für den Großteil seines Berechnungscodes und neue Tests werden ständig für neue Funktionen hinzugefügt. Event-Driven Architecture - QSForex ist sowohl für Backtesting als auch für Live-Trader vollständig ereignisgesteuert, was zu einem direkten Übergang von Strategien aus einer Researchtesting-Phase zu einer Live-Trading-Implementierung führt. Transaktionskosten - Spread-Kosten sind standardmäßig für alle BackTest-Strategien enthalten. Backtesting - QSForex bietet intraday Tick-Auflösung mehrtägigen Multi-Währungs-Paar Backtesting. Trading - QSForex unterstützt derzeit den Live-Intraday-Handel mit der OANDA Brokerage API über ein Portfolio von Paaren. Performance Metrics - QSForex unterstützt derzeit grundlegende Performance-Messung und Equity-Visualisierung über die Visualisierungsbibliotheken Matplotlib und Seaborn. Installation und Verwendung 1) Besuchen Sie oanda und richten Sie ein Konto ein, um die Anmeldeinformationen für die API-Authentifizierung zu erhalten, die Sie für den Live-Handel benötigen. Ich erkläre, wie man dies in diesem Artikel: quantstartarticlesForex-Trading-Tagebuch-1-Automated-Forex-Trading-mit-der-OANDA-API. 2) Klonen Sie diese git Repository an einen geeigneten Ort auf Ihrem Rechner mit dem folgenden Befehl in Ihrem Terminal: git clone githubmhallsmooreqsforex. git. Alternativ können Sie die ZIP-Datei des aktuellen Master-Zweigs bei githubmhallsmooreqsforexarchivemaster. zip herunterladen. 3) Erstellen Sie einen Satz von Umgebungsvariablen für alle Einstellungen, die in der Datei settings. py im Stammverzeichnis der Anwendung gefunden wurden. Alternativ können Sie Ihre spezifischen Einstellungen durch Überschreiben der Aufrufe von os. environ. get (.) Für jede Einstellung festlegen: 4) Erstellen Sie eine virtuelle Umgebung (virtualenv) für den QSForex-Code und verwenden Sie pip, um die Anforderungen zu installieren. Zum Beispiel in einem Unix-basierten System (Mac oder Linux) können Sie ein solches Verzeichnis wie folgt erstellen, indem Sie die folgenden Befehle im Terminal eingeben: Dadurch wird eine neue virtuelle Umgebung zur Installation der Pakete erstellt. Angenommen, Sie haben das QSForex git Repository in ein Beispielverzeichnis wie zB Projekteqsforex heruntergeladen (ändern Sie dieses Verzeichnis unten, wo Sie QSForex installiert haben), dann müssen Sie die folgenden Befehle ausführen, um die Pakete zu installieren: Dies wird einige Zeit dauern, da NumPy, SciPy, Pandas, Scikit-Learn und Matplotlib zusammengestellt werden. Es gibt viele Pakete, die für diese Arbeit erforderlich sind, also werfen Sie einen Blick auf diese beiden Artikel für weitere Informationen: Sie müssen auch einen symbolischen Link aus Ihrem Site-Pakete-Verzeichnis zu Ihrem QSForex-Installationsverzeichnis erstellen, um in der Lage sein zu rufen Import qsforex innerhalb des Codes. Dazu benötigen Sie einen Befehl, der folgend ähnelt: Stellen Sie sicher, dass Sie projectsqsforex zu Ihrem Installationsverzeichnis und zu venvqsforexlibpython2.7site-Paketen in Ihr virtualenv-Websitepaketverzeichnis ändern. Sie können nun die folgenden Befehle korrekt ausführen. 5) In diesem Stadium, wenn Sie einfach wollen, um Praxis oder Live-Handel, dann können Sie python tradingtrading. py laufen. Die die Standardstrategie von TestStrategy verwenden wird. Dies kauft einfach oder verkauft ein Währungspaar alle 5. Tick. Es ist nur zum Testen - verwenden Sie es nicht in einer Live-Trading-Umgebung Wenn Sie eine nützliche Strategie zu erstellen, dann erstellen Sie einfach eine neue Klasse mit einem beschreibenden Namen, z. MeanReversionMultiPairStrategy und sicherstellen, dass es eine calculatesignals-Methode hat. Sie müssen diese Klasse die Paaren Liste sowie die Ereignis-Queue, wie in tradingtrading. py passieren. Siehe Strategiestrategy. py für Details. 6) Zur Durchführung von Backtesting ist es notwendig, simulierte Forex-Daten zu erzeugen oder historische Tickdaten herunterzuladen. Wenn Sie einfach die Software ausprobieren möchten, ist der schnellste Weg, einen Beispiel-Backtest zu generieren, einige simulierte Daten zu generieren. Das aktuelle Datenformat von QSForex ist das gleiche wie das von DukasCopy Historical Data Feed bei dukascopyswissenglishmarketwatchhistorical zur Verfügung gestellt. Um einige historische Daten zu erzeugen, stellen Sie sicher, dass die CSVDATADIR-Einstellung in settings. py auf ein Verzeichnis festgelegt ist, in dem die historischen Daten gespeichert werden sollen. Sie müssen dann generatesimulatedpair. py ausführen. Die sich unter dem Skriptverzeichnis befindet. Es erwartet ein einziges Befehlszeilenargument, das in diesem Fall das Währungspaar im BBBQQQ-Format ist. Zum Beispiel: In dieser Phase wird das Skript eine einzelne Monate Daten für Januar 2014 zu schaffen, fest einprogrammiert Das heißt, Sie einzelne Dateien zu sehen, von dem Format BBBQQQYYYYMMDD. csv (zB GBPUSD20140112.csv) erscheinen in Ihrem CSVDATADIR für alle Werktage in In diesem Monat. Wenn Sie das Monats - jahr der Datenausgabe ändern möchten, ändern Sie einfach die Datei und starten sie erneut. 7) Nachdem die historischen Daten erzeugt wurden, ist es möglich, einen Backtest durchzuführen. Die Backtest-Datei selbst ist in backtestbacktest. py gespeichert. Aber das enthält nur die Backtest-Klasse. Um einen Backtest auszuführen, müssen Sie diese Klasse instanziieren und mit den notwendigen Modulen versorgen. Der beste Weg, um zu sehen, wie dies getan wird, ist, die Beispiel Moving Average Crossover-Implementierung in der examplesmac. py-Datei zu betrachten und diese als Vorlage zu verwenden. Dies nutzt die MovingAverageCrossStrategy, die in der Strategiestrategy. py gefunden wird. Standardmäßig erfolgt der Handel sowohl mit GBPUSD als auch mit EURUSD, um mehrere Währungspaare anzuzeigen. Es verwendet Daten, die in CSVDATADIR gefunden werden. Führen Sie zum Ausführen des Beispiel-Backtests einfach Folgendes aus: Dies wird einige Zeit in Anspruch nehmen. Auf meinem Ubuntu-Desktopsystem zu Hause, mit den historischen Daten, die über generatesimulatedpair. py generiert wurden. Es dauert etwa 5-10 Minuten zu laufen. Ein großer Teil dieser Berechnung erfolgt am Ende des eigentlichen Backtests, wenn der Drawdown berechnet wird. Bitte denken Sie daran, dass der Code nicht aufgelegt hat. Bitte lassen Sie ihn bis zur Fertigstellung. 8) Wenn Sie die Leistung des Backtests sehen möchten, können Sie einfach output. py verwenden, um eine Equity-Kurve, Periodenrenditen (dh Tick-to-Tick-Returns) und eine Drawdown-Kurve anzuzeigen: Und das ist es In diesem Stadium sind Sie bereit Um eigene Backtests zu erstellen, indem Sie Strategies in strategiespa. py ändern oder anhängen und die von DukasCopy (dukascopyswissenglishmarketwatchhistorical) heruntergeladenen Daten verwenden. Wenn Sie irgendwelche Fragen über die Installation haben, dann fühlen Sie bitte sich frei, mich an mikequantstart zu mailen. Wenn Sie irgendwelche Fehler oder andere Probleme, die Sie denken, speziell aufgrund der Code-Basis sein kann, fühlen sich frei, hier ein Github Ausgabe zu öffnen: githubmhallsmooreqsforexissues Copyright (c) 2015 Michael Hallen-Moore Hiermit wird die Erlaubnis erteilt, kostenlos, für jede Person, eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die Software) zu erhalten, die in der Software ohne Einschränkung zu umgehen, einschließlich und ohne Einschränkung der Rechte zu nutzen, zu kopieren, zu ändern, fusionieren, zu veröffentlichen, zu verbreiten, weiter lizenzieren andor Verkaufen von Kopien der Software, Und Personen, denen die Software zur Verfügung gestellt wird, unter den folgenden Bedingungen zu gestatten: Der oben genannte Urheberrechtshinweis und diese Genehmigungsmitteilung sind in allen Kopien oder wesentlichen Teilen der Software enthalten. Die Software wird als vorgesehen, ohne Gewährleistung irgendeiner Art, DIREKT ODER INDIREKT, EINSCHLIESSLICH, ABER NICHT AUF DIE GARANTIEN DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG. IN KEINEM FALL SIND DIE AUTOREN ODER COPYRIGHTINHABER HAFTUNG FÜR SCHADEN ODER ANDERE HAFTUNG, WEDER IN EINEM VERTRAG, SCHULD ODER AUF ANDERE WEISE, DIE AUS ODER IN VERBINDUNG MIT DER SOFTWARE ODER DER NUTZUNG ODER EINER ANDEREN IN DER SOFTWARE. Forex Trading Disclaimer Trading Devisen auf Margin trägt ein hohes Maß an Risiko, und kann nicht für alle Anleger geeignet. Die Wertentwicklung in der Vergangenheit ist kein Hinweis auf zukünftige Ergebnisse. Der hohe Grad der Hebelwirkung kann sowohl für Sie als auch für Sie arbeiten. Vor der Entscheidung, in Devisen zu investieren, sollten Sie sorgfältig überlegen Sie Ihre Anlageziele, Erfahrung und Risikobereitschaft. Die Möglichkeit besteht, dass Sie einen Verlust von einigen oder allen Ihrer anfänglichen Investition zu erhalten und daher sollten Sie nicht Geld investieren, die Sie nicht leisten können, zu verlieren. Sie sollten sich bewusst sein, alle Risiken im Zusammenhang mit Devisenhandel und suchen Rat von einem unabhängigen Finanzberater, wenn Sie irgendwelche Zweifel haben.

No comments:

Post a Comment