Monday 26 June 2017

Backtesting Excel Forex Pip


Backtesting in Excel vs MQL4 Joined Jul 2011 Status: Mitglied 4 Beiträge Tut jemand tun Backtesting in Excel, oder wissen Mitglieder, die ich möchte Methodik und Modelle mit jemandem, der Excel verwendet zu diskutieren. Hat jeder einfache (oder komplexe) Modelle, die er für grundlegende Indikatoren oder Systeme bereit wäre, 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, 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. 1.367 Posts Ive versucht diese Methoden im Laufe der Jahre: MT4 Strategie Tester Custom Python-Programme OpenOffice Calc (Excel-kompatibel) Jeder EA hat seine eigenen Eigenschaften, aber im Allgemeinen Ive hatte die besten Ergebnisse mit MT4 IndicatorsScripts. 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 einfachen Übergang von Strategien von 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 geschieht, ist, die beispielhafte Moving Average Crossover-Implementierung in der examplesmac. py-Datei zu betrachten und diese als Vorlage zu verwenden. Dies macht Gebrauch von der 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 Backtest zu betrachten Sie einfach output. py verwenden können, eine Equity-Kurve, Zeit gibt (dh tick-to-Tick-Returns) und einem Drawdown Kurve zu lesen: 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 gegen 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