Trading Systems Coding: Testing, Troubleshooting und Optimierung Nun, da Sie ein Handelssystem entworfen und codiert haben, ist es Zeit, es zu testen, um sicherzustellen, dass Ihre Codierung frei von logischen und technischen Fehlern ist. Wir werden auch auf etwas bekannt als Optimierung - ein Merkmal in einigen Handelsprogramme, die Ihnen die Feinabstimmung Ihrer Handelsregeln, um die Bestände, die Sie auf den Handel planen können. Testen Ihres Handelssystems Die überwiegende Mehrheit der Handelsanwendungen, die Programmiersprachen unterstützen, unterstützen auch Testtools. Diese Werkzeuge sind in zwei Kategorien unterteilt: 1. Technische Technische Test-Tools suchen nach technischen Fehlern in Ihrem Code. Wenn Sie beispielsweise vergessen, ein Semikolon nach einer Anweisung hinzuzufügen, benachrichtigt Sie das technische Test-Tool, dass Ihre Anweisung ungültig ist. Der Standort des technischen Prüfprogramms hängt von der verwendeten Handelsanwendung ab. MetaTrader zeigt einen Fehler oder fehlerhafte Ergebnisse, wenn Sie versuchen, Ihren Code zu kompilieren, während Trading-Anwendungen wie Tradecision haben ein Code-Check-Dienstprogramm in der Schnittstelle, die Sie überprüfen Sie Ihren Code für Fehler, bevor Sie es. 2. Logische logische Testwerkzeuge suchen nach logischen Fehlern in Ihrem Code. Zum Beispiel, wenn Sie zufällig ein größeres als ein Zeichen statt eines weniger als Zeichen (das ist kein technischer Fehler) zu verwenden, wird ein logisches Test-Tool zeigen Ihnen, dass Ihre Ergebnisse nicht sinnvoll. Das beliebteste logische Testwerkzeug ist das Backtesting-Tool. Mit diesem Tool können Sie vergangene Daten übernehmen und Ihr Handelssystem auf diese Daten anwenden. Dies gibt Ihnen eine Vorstellung davon, ob Ihr Handelssystem rentabel ist 13 Welche Bedingungen erweisen sich als am rentabelsten 13 Wenn Fehler in Ihren Regeln auftreten können (Weitere Informationen finden Sie unter Backtesting: Interpretation der Vergangenheit.) Fehlerbehebung bei Ihrem Trading System Wie bei jeder anderen Art der Programmierung kann die Fehlersuche eine mühsame und schwierige Aufgabe sein. Das Finden von Fehlern in Ihrem Code erfordert eine systematische Sortierung durch Ihren Code, um syntaktische Fehler zu identifizieren, die, obwohl oft geringfügig, Ihr Programm zum Stillstand bringen können. Hier sind einige häufige Fehler zu suchen: Fehlende Semikolons nach Aussagen - Diese müssen nach jeder Anweisung sein. 13 Undefinierte Variablen - Denken Sie daran, dass Sie sie vor der Verwendung deklarieren müssen. 13 Rechtschreibfehler - Werden keine Namen oder Funktionen falsch geschrieben, gibt die Handelsanwendung einen Fehler zurück (siehe Beispiel unten). 13 Falsche Verwendung von () - Denken Sie daran, dass ein Wert einem anderen Wert zugewiesen wird, während die Mittel gleich sind. 13 Falsche Verwendung von integrierten Funktionen - Überprüfen Sie Ihre Handelsanwendungsdokumentation oder API (Application Programming Interface), um sicherzustellen, dass Sie die korrekte Syntax verwenden. Einige Handelsanwendungen enthalten eine Funktion, mit der Sie Ihren Code testen können, bevor Sie ihn verwenden oder kompilieren. Diese Funktion erlaubt Ihnen, zu sehen, was der Fehler ist und auf welcher Linie es gefunden werden kann. Nehmen Sie Tradecision zum Beispiel: Hier sehen wir, dass Tradecision die Position (Zeile und Spalte) des Fehlers, eine Beschreibung des Fehlers und die Art des Fehlers (in diesem Fall syntaktisch) gibt. Wenn wir den Ausdruck betrachten, können wir sehen, dass in Spalte 8 xrossBelow keine gültige Funktion ist. Wenn wir das x (welches in Spalte 8 ist) durch ein c ersetzt, dann haben wir gültigen Code. Wenn wir MetaTrader betrachten, können wir sehen, dass die Fehler kommen, wenn wir versuchen, das Programm zu kompilieren: Hier sehen wir, dass in der Beschreibung heißt es, die BuyNow-Variable wurde nicht definiert. Ein Doppelklick auf diese Fehlermeldung bringt uns zum spezifischen Ort des Fehlers im Code. Wie Sie sehen können, geben die meisten Handelsanwendungen Ihnen eine einfache Möglichkeit, technische Fehler zu lokalisieren und sie zu reparieren. Das Fixieren der Fehler beinhaltet einfach systematisch gehen durch jede Fehlermeldung und dann erneut kompilieren den Code andor Anwendung des Handelssystems, um Ihre Charts. Optimierung Ihres Handelssystems In einigen Handelsanwendungen können Sie die zu optimierenden Variablen auswählen. Mit Tradecision können Sie z. B. eine Variable leicht auswählen und sie durch Code ersetzen, der eine Optimierung versucht. Optimierung selbst ist einfach ein Prozess, der den optimalen Wert für ein bestimmtes Handelssystem-Element auf der Grundlage der bisherigen Ergebnisse und Leistung findet. Beachten Sie, dass Über-Optimierung Ergebnisse in Handelssysteme, die nicht in der Lage, die Marktbedingungen anzupassen, daher ist es wichtig, nur optimieren ein paar wichtige Variablen, nicht jede Variable Hier ist, was die Optimierung Feature sieht aus in Tradecision: Sie können sehen, dass wir deklariert Zwei neue Variablen und setzen sie gleich. Das bedeutet einfach, dass das Handelsprogramm dies durch die optimale Anzahl ersetzen wird. Als nächstes können Sie sehen, dass wir die neuen Variablen innerhalb unserer Handelsstrategie verwendet haben. Schließlich setzen wir einen Bereich für die Zahlen (so dass das Programm nicht nach unendlich suchen). Einige andere Handelsprogramme haben Funktionen, die in einer ähnlichen Weise funktionieren, so dass Sie den numerischen Wert mit einem ersetzen und sagen, die Handels-Anwendung, um es zu optimieren. Fazit Inzwischen sollten Sie ein funktionierendes Handelssystem entwickelt haben, in dem Sie Vertrauen haben können. Im nächsten Teil dieser Serie, werden Sie lernen, wie Sie Ihr Trading-System auf Diagramme anzuwenden und wie es zu handelnden Entscheidungen zu verwenden. Wie man Backtest Handelssysteme und vermeiden Kurvenanpassung Um zu beurteilen, wie gut ein gegebenes Handelssystem sollte in der Zukunft arbeiten, Wir testen es auf vergangenen Marktdaten. Backtesting wendet eine Reihe von Handelsregeln auf historische Daten an, um zu schätzen, wie diese Regeln ausgeführt hätten, wenn wir sie tatsächlich gehandelt hätten. Gute hypothetische historische Ergebnisse garantieren nicht, dass eine Reihe von Regeln auch in Zukunft gut funktionieren wird. Jedoch, schlechte hypothetische historische Ergebnisse fast sicher bedeuten, ein System sollte nicht in Echtzeit gehandelt werden. Der wahrgenommene Wert des Backtests ist in dem Glauben verwurzelt, dass historische Tendenzen sich wiederholen. Trader testen Strategien für historische Daten für Generationen. Allerdings wurde die Praxis mit dem Aufkommen von Personalcomputern und zweckgebundenen System-Test-Software populär. Wie System Writer, die in TradeStation entwickelt. Diese Software und eine Datenbank mit historischen Daten erlaubten denjenigen ohne Code-Schreiben Hintergrund, um Handelssystemideen zu testen. Das breitere Verständnis und die Akzeptanz von Handelssystemen sowie die Enttäuschung, die viele beim Versuch hatten, Handelssysteme auf eigene Faust aufzubauen, halfen dem Markt der Drittsysteme in den 1990er Jahren zu gedeihen. Futures Truth ist ein unabhängiges Unternehmen, das seit den 1980er Jahren handelsübliche Handelssysteme verfolgt. Derzeit verfolgt er mehr als 500 Systeme. Futures Truth testet Handelssysteme in Echtzeit, nicht auf historischen Daten. Dies verhindert die Modifikation von Regeln über die Zeit und simuliert die Ausführung von Regeln in tatsächlichen Marktbedingungen, wie z. B. Perioden hoher Volatilität. Nach Futures Truth sind nur rund 45 der Tracking-Systeme langfristig rentabel, während nur 20 ein gutes Risiko-Rendite-Verhältnis aufweisen. Allerdings sind diese Zahlen wahrscheinlich besser als die breitere Bevölkerung rsquos, weil nur die Anbieter wirklich zuversichtlich, in ihrer Logik wenden Sie sich an Futures Truth für Echtzeit-Analyse und öffentliche Kritik. So viele Systeme scheitern, weil sie eine gültige Prämisse fehlt. Stattdessen werden die Ein - und Ausfahrparameter aus dem Data Mining abgeleitet. Data Mining einfach scannt historische Daten für Regeln, die in der Vergangenheit gearbeitet haben würde. Oft sind solche Regeln genau auf die Vergangenheit abgestimmt und haben keine Hoffnung, besser zu funktionieren als zufällig auf unsichtbare Daten. Stattdessen sollte die Systementwicklung mit einer Theorie beginnen, die getestet, analysiert und auf die Anwendung abgestimmt werden kann. Dieses Konzept beinhaltet auch eine andere Perspektive auf das System-Testen selbst: Das Ziel des Backtesting ist es nicht, eine Sammlung von hypothetischen Gewinn-und Verlust-Statistiken zu produzieren. Es ist, die Gültigkeit der Theorie und die Richtigkeit der Regeln bei der Erfassung der Prämisse zu testen. Die Systemprüfung ist ein vielfältiger Prozess von den Daten, über die Zeitskala bis hin zu Auftragseingangsannahmen, Kontraktspezifika und Risikokontrolle. Das Failing an irgendwelchen von diesen kann ein anderweitig gültiges Testmdash ruinieren, oder, sie zu manipulieren, Resultate erzeugen, die weit überlegen sind, als, was wir in der Realzeit erreichen würden. Sie müssen es richtig machen, wenn Sie hoffen, mdash validieren oder wenn angemessen, ungültig mdash Ihr System. Werkzeuge des Handels Es gibt zwei Elemente zum Backtesting: Die richtigen Werkzeuge mdash Software und Daten mdash und eine wissenschaftliche Methode, um Systeme mit diesen Werkzeugen zu entwickeln. Letrsquos beginnen mit Blick auf die Werkzeuge des Handels. Viele Optionen stehen für die Prüfung Ihrer Ideen zur Verfügung. Sie unterscheiden sich in der Leichtigkeit der Umwandlung von Ideen in Code und in, wie sie die Details behandeln, die einen großen Einfluss auf die Ergebnisse haben können. Wenn zum Beispiel ein System eine Limit-Order eingibt, registriert eine Software eine Füllung, wenn dieser Preis berührt wird. Allerdings gibt es kaum eine Garantie, dass eine solche Bestellung im echten Handel gefüllt worden wäre, noch gibt es eine Garantie, die es sein wird. Die Eingabe auf Stationen garantiert eine Eintragung, aber nicht einen Preis. Ein weiteres Problem ist die Erfassung der realen Preise. Während die meisten professionell entwickelten Software nicht mehr dieses Problem hat, ist es immer noch ein Anliegen für diejenigen, die manuell testen Systeme in Tabellenkalkulationen, wie Microsoft Excel. Zum Beispiel, wenn ein System kauft auf einem Stopp gleich der Nähe plus ein Drittel des durchschnittlichen Bereichs in den letzten drei Perioden, und wenn die durchschnittliche Reichweite ist 10, dann sind wir am Schluss zu kaufen und 3,333. Wenn wir den E-Mini SampP 500 handeln, handelt es sich um 0,25 Tick-Größen. Das bedeutet, dass die Eingangsdifferenz auf 3,50 runden muss. Ein Anfang Trader kann dies nicht erkennen, wenn manuell knirscht Zahlen, und es war nicht zu lange her, dass viele professionelle Programme den gleichen Fehler gemacht. Im Laufe der Zeit könnte ein solcher Fehler bis zu einer beträchtlichen Diskrepanz. Im großen Bild sind jedoch solche Verfahrensdetails gering. Das große Problem sind Daten. Verwandte ArtikelMultiCharts 10 MultiCharts ist eine preisgekrönte Handelsplattform Ob Sie Day-Trading-Software benötigen oder für längere Zeit investieren, MultiCharts verfügt über Funktionen, die helfen, Ihre Trading-Ziele zu erreichen. High-Definition Charting, integrierte Indikatoren und Strategien, One-Click-Trading von Chart und DOM, hochpräzises Backtesting, Brute-Force und genetische Optimierung, automatisierte Ausführung und Unterstützung von EasyLanguage-Skripten sind alle Schlüsselinstrumente zur Verfügung. Hoice von Brokern und Datenfeeds Freiheit der Wahl war die treibende Idee hinter unseren MultiCharts und Sie können es in der breiten Auswahl von unterstützten Datenfeeds und Brokern sehen. Wählen Sie Ihre Trading-Methode, testen Sie es und starten Sie den Handel mit jedem unterstützten Broker, die Sie wie das ist der Vorteil von MultiCharts.
No comments:
Post a Comment