Thursday, October 6, 2016

Trading-Strategie - Optimierung

Wie man Handelssystem zu optimieren Hinweis: Dies ist ziemlich weit fortgeschritten Thema. Bitte lesen Sie erste vorherige AFL-Tutorials. Einführung Die Idee hinter einer Optimierung ist einfach. Zuerst müssen Sie ein Handelssystem haben, kann dies eine einfache gleitende Durchschnitt Crossover zum Beispiel. In fast jedem System gibt es einige Parameter (wie Mittelungsperiode), die entscheiden, wie gegebene System verhält (dh es ist für die langfristige oder kurzfristige gut geeignet, wie funktioniert auf sehr volatilen Aktien reagieren, etc). Die Optimierung ist der Prozess der Suche nach optimalen Werte dieser Parameter (geben höchsten Gewinn aus dem System) für ein gegebenes Symbol (oder ein Portfolio von Symbolen). AmiBroker ist einer der ganz wenigen Programme, die Sie auf Ihrem System über mehrere Symbole auf einmal optimieren können. Um Ihr System zu optimieren, müssen Sie von einem bis zu zehn Parameter definieren, die optimiert werden. Sie entscheiden, was ist ein minimal und maximal zulässigen Wert des Parameters und in dem, was erhöht dieser Wert aktualisiert werden soll. AmiBroker führt dann mehrere Back testet das System mit allen möglichen Kombinationen von Parameterwerten. Wenn dieser Prozess abgeschlossen ist AmiBroker zeigt die Liste der Ergebnisse, sortiert nach Nettogewinn. Sie sind in der Lage, die Werte der Optimierungsparameter, die das beste Ergebnis zu sehen. Schreiben AFL Formel Optimierung in der zurückTester wird über neue Funktion optimieren unterstützt. Die Syntax dieser Funktion ist wie folgt: variable = optimize (. Beschreibung, default min max Schritt..); Variable - ist normal AFL-Variable, die den Wert von optimize Funktion zurück zugewiesen bekommt. Bei normaler Backtesting, Scannen, Exploration und comentary Modi der optimize Funktion zurückStandardWert, so dass die obige Funktionsaufruf entspricht: variable = default; Im Optimierungsmodus optimieren Funktion liefert aufeinanderfolgende Werte von min bis max (einschließlich) mit Schritt Schritt. Beschreibung ist eine Zeichenkette, die verwendet wird, um die Optimierungsvariable zu identifizieren und als Spaltennamen in der Optimierungsergebnis-Liste angezeigt. Standardmäßig ist ein Standardwert, der Funktion zurückkehrt in die Exploration, Anzeige, Kommentar zu optimieren, zu scannen und normalen zurück Prüfphasen min ein Minimalwert der Variablen optimiert max ein Maximalwert der Variablen optimiert Schritt ein Intervall für die Erhöhung der Wert von MIN bis max AmiBroker unterstützt bis zu 64 Anrufe in Funktion zu optimieren (also bis zu 64 Optimierungsvariablen), beachten Sie, dass, wenn Sie auf Vollständigkeit Optimierung werden dann ist es wirklich gute Idee, Anzahl der Optimierungsvariablen, um nur wenige zu beschränken. Jeder Aufruf zur Optimierung generieren (max - min) / Schritt Optimierungsschleifen und mehrere Aufrufe zu optimieren multiplizieren Sie die Anzahl der Durchläufe nötig. Zum Beispiel die Optimierung zwei Parameter unter Verwendung von 10 Schritte werden 10 * 10 = 100 Optimierungsschleifen erforderlich. Rufen Sie optimize-Funktion nur einmal pro Variable zu Beginn Ihrer Formel, wie jeder Aufruf erzeugt einen neuen Optimierungsschleifen Mehrsymbol-Optimierung wird vollständig von AmiBroker unterstützt Maximale Suchraum 2 64 (10 19 = 10.000.000.000.000.000.000) Kombinationen 1. Einzel variable Optimierung: sigavg = Optimize ("Signal durchschnittlich" 9. 2. 20. 1); Buy = Cross (MACD (12. 26), Signal (12. 26. sigavg)); Buy = Cross (CCI (per), - Level); Verkaufen = Kreuz (Stufe, CCI (per)); 3. Mehrere (3) variable Optimierung: MFAST = Optimize ("MACD Fast" 12. 8. 16. 1); mslow = Optimize ("MACD Slow" 26. 17. 30. 1); sigavg = Optimize ("Signal durchschnittlich" 9. 2. 20. 1); Kaufen = Cross (MACD (MFAST, mslow) Signal (MFAST, mslow, sigavg).); Verkaufen = Cross (Signal (MFAST, mslow, sigavg), MACD (MFAST, mslow)); Nach der Eingabe der Formel mit dem Klick auf Schaltfläche Optimieren in Automatische Analyse-Fenster. AmiBroker startet Testen aller möglichen Kombinationen von Optimierungsvariablen und die Ergebnisse in der Liste. Nach der Optimierung wird die Liste der Folge durchgeführt wird vorgestellt durch die Net% Gewinn sortiert. Wie können Sie die Ergebnisse nach jeder Spalte in der Ergebnisliste sortieren ist es einfach, die optimalen Werte der Parameter für den niedrigsten Drawdown, niedrigste Anzahl der Trades, größte Gewinnfaktor, niedrigsten Marktlage und höchsten risikobereinigten Jahres% Rendite zu bekommen. Die letzten Spalten der Ergebnisliste präsentieren die Werte der Optimierungsvariablen zur gegebenen Test. Wenn Sie entscheiden, welche Kombination von Parametern Ihren Bedürfnissen am besten alles, was Sie tun müssen, ist, um die Standardwerte in optimize-Funktion zu ersetzen ruft mit den optimalen Werten. Beim derzeitigen Stand müssen Sie sie mit der Hand in der Formel Bearbeitungsfenster (der zweite Parameter optimieren Funktionsaufruf) eingeben. Angezeigte 3D-animierte Optimierung Charts Um 3D-Optimierung Diagramm angezeigt werden, müssen Sie zwei Variablen-Optimierung zum ersten Mal ausgeführt. Zwei variable Optimierung muss eine Formel, die 2 Optimize () Funktionsaufrufe hat. Ein Beispiel zwei Variablen-Optimierung Formel sieht folgendermaßen aus: pro = Optimize ("pro" 2. 5. 50. 1); Level = Optimize ("level" 2. 2. 150. 4); Buy = Cross (CCI (per), - Level); Sobald die Optimierung abgeschlossen ist, sollten Sie auf den Dropdown-Pfeil auf Optimize Schaltfläche klicken, und wählen Sie View 3D-Optimierung Graphen. In ein paar Sekunden eine bunte dreidimensionale Oberflächendarstellung wird in einem 3D-Diagramm-Viewer-Fenster angezeigt. Ein Beispiel 3D-Karte, die unter Verwendung obigen Formel ist unten dargestellt. Standardmäßig ist die 3D-Diagramme Anzeigewerte der Reingewinn gegenüber Optimierungsvariablen. Sie können jedoch zeichnen 3D-Oberflächendiagramm für jede Spalte in der Ergebnistabelle Optimierung. Klicken Sie einfach auf den Spaltenkopf, um das Problem zu lösen (blauer Pfeil wird angezeigt, dass Optimierungsergebnisse werden von ausgewählten Spalte sortiert), und wählen Sie dann wieder View 3D-Optimierung Graphen. Durch die Visualisierung, wie Parameter Ihres Systems die Handelsleistung, können Sie leichter entscheiden, welche Parameterwerte fragile produzieren und die robuste Systemleistung zu produzieren. Robust Einstellungen sind Regionen in der 3D-Graphen, die schrittweise und nicht abrupte Änderungen der Oberflächendarstellung zeigen. 3D-Optimierung Charts sind großartiges Werkzeug, um Kurvenanpassung zu verhindern. Kurvenanpassung (oder über-Optimierung) tritt auf, wenn das System ist komplexer als es sein muss, und alles, was die Komplexität wurde von den Marktbedingungen, das nie wieder passieren kann konzentriert. Radikale Veränderungen (oder Spikes) in den 3D-Optimierung Diagramme zeigen deutlich überOptimierungsBereiche. Sie sollten Parameter Region, die eine breite und weite Plateau, auf 3D-Diagramm für Ihre Lebens Handel produziert zu wählen. Parametersätze Herstellung Gewinnspitzen werden nicht zuverlässig in realen Handel zu arbeiten. 3D-Kartenviewer steuert AmiBroker 3D-Kartenviewer bietet insgesamt Anzeigefunktionen mit voller graph Rotation und Animation. Jetzt können Sie Ihr System ergibt sich aus jeder erdenklichen Perspektive zu betrachten. Sie können die Position und andere Parameter des Diagramms mit der Maus, Symbolleiste und Tastenkombinationen, was auch immer Sie sich besser für Sie steuern. Nachfolgend finden Sie die Liste finden. Maussteuerung: - Zu drehen - halten Sie die linke Maustaste gedrückt und bewegen sich in X / Y-Richtung - Um Zoom-In, Zoom-out - halten Sie die rechte Maustaste und verschieben in X / Y-Richtung - Verschieben (deutsch) - halten Sie die linke Maustaste und STRG-Taste gedrückt und bewegen sich in X / Y-Richtung - Zu animieren - halten Sie die linke Maustaste gedrückt, ziehen Sie schnell und lassen Taste, während Sie Tastatursteuerung: SPACE - animieren (Auto-Rotation) NUM 4 - nach links bewegen NUM 6 - nach rechts bewegen NUM 8 - nach oben NUM 2 - nach unten bewegen PAGE UP - Wasserstand bis PAGE DOWN - Wasserpegel nach unten Smart (nicht erschöpfende) Optimierung Einführung AmiBroker bietet jetzt smart (nicht erschöpfende) Optimierung zusätzlich zu den regulären, erschöpfende Suche. Nicht erschöpfende Suche ist nützlich, wenn Anzahl aller Parameterkombinationen der gegebenen Handelssystem ist einfach zu groß denkbar erschöpfende Suche zu sein. Erschöpfende Suche ist völlig in Ordnung, so lange es sinnvoll ist, es zu benutzen. Angenommen, Sie haben 2-Parameter jeweils im Bereich von 1 bis 100 (Schritt 1) ​​zu haben. Das ist 10000 Kombinationen - vollkommen in Ordnung für die ausführliche Suche. Jetzt mit 3 Parametern du 1 Million Kombinationen - es ist immer noch OK für die erschöpfende Suche (kann aber lenghty sein). Mit 4-Parameter haben Sie 100 Millionen Kombinationen und mit 5 Parametern (1..100) Sie 10 Milliarden Kombinationen. In diesem Fall wäre es zu zeitaufwendig, sie alle zu überprüfen, und dies ist der Bereich, in dem nicht erschöpfende Smart-Suchmethoden kann das Problem, das nicht lösbar ist in angemessener Zeit mit erschöpfende Suche zu lösen. Schnellstart Hier ist unbedingt die einfachste Anleitung, wie man neue nicht erschöpfende Optimierer (in diesem Fall CMA-ES) zu verwenden. 1. Öffnen Sie Ihre Formel im Formel-Editor 2. Fügen Sie diese einzelne Zeile am oberen Rand Ihrer Formel: OptimizerSetEngine (cmae); // Sie spso oder Trib auch hier verwenden 3. (Optional) Wählen Sie ein Optimierungsziel in Automatische Analyse, Einstellungen, Walk-Forward Registerkarte Optimierung Zielfeld. Wenn Sie diesen Schritt wird es für CAR / MDD (jährliche Rendite geteilt durch maximale Drawdown%) zu optimieren überspringen. und. das ist es. Nun, wenn Sie die Optimierung mit dieser Formel ausführen, wird es neue evolutionäre (nicht erschöpfende) CMA-ES-Optimierer zu verwenden. Wie funktioniert das ? Die Optimierung ist der Prozess der Suche nach Minimum (oder Maximum) der gegebenen Funktion. Jede Handelssystem kann als eine Funktion der bestimmten Anzahl von Argumenten zu berücksichtigen. Die Eingänge sind Parameter und Angebotsdaten. der Ausgang ist Ihr Optimierungsziel (sagen CAR / MDD). Und Sie sind für maximal gegebene Funktion suchen. PSO-Algorithmus, oder biologischen Verfahrens - - Einige intelligente Optimierungsalgorithmen werden auf die Natur (Tierverhalten) auf der Basis genetischer Algorithmen, CMA-ES - und einige sind auf mathematische Konzepte von Menschen abgeleitet werden. Diese Algorithmen sind in vielen verschiedenen Bereichen wie Finanzen eingesetzt. Geben PSO Finanzen oder CMA-ES Finanzierung in Google und Sie werden viele Informationen zu finden. Nicht erschöpfende (oder smart) Methoden globalen oder lokalen Optimum zu finden. Das Ziel ist natürlich, um global zu finden, aber wenn es ein einzelner scharfer Peak von zig Millionen Parameterkombinationen kann nicht erschöpfende Methoden fehlschlagen, um diese einzelne Spitze zu finden, aber nehmen es Gewerbetreibenden perspecive bilden, die Suche einzelner scharfer Peak ist nutzlos für den Handel, denn das Ergebnis wäre instabil (zu schwach) und im realen Handel nicht replizierbar. Im Optimierungsprozess sind wir eher auf der Suche nach Plateaubereiche mit stabilen Parametern und das ist der Bereich, in dem intelligente Methoden glänzen. Um durch nicht-erschöpfende Suche verwendete Algorithmus sieht wie folgt aus: a) das Optimierungsprogramm generiert eine (in der Regel zufällig) Ausgangspopulation von Parametersätzen b) Backtest wird von AmiBroker für jeden Parameter aus der Bevölkerung festgelegt durchgeführt c) die Ergebnisse der Backtests sind nach der Logik des Algorithmus ausgewertet und neuen Population auf der Basis der Entwicklung der Ergebnisse erzeugt, d) wenn neue besten gefunden - speichern Sie es und gehen Sie zu Schritt b) bis zum Anschlag Kriterien erfüllt sind Beispiel Stopp-Kriterien können sein: a) erreichte angegebenen maximalen Iterationen b) zu stoppen, wenn der Bereich der besten objektiven Werte der letzten X Generationen Null c) zu stoppen, wenn die Zugabe 0,1 Standardabweichung Vektor in einer Hauptachsenrichtung nicht den Wert der objektiven Wert zu ändern Um eine intelligente (nicht erschöpfende) Optimierer in AmiBroker nutzen Sie brauchen, um das Optimierungsmotor, die Sie in der AFL Formel mit OptimizerSetEngine-Funktion verwenden möchten. OptimizerSetEngine (name) Die Funktion wählt namentlich definierten externen Optimierungs-Engine. AmiBroker derzeit mit 3 Motoren: Standard Particle Swarm Optimizer (spso), Tribes (Zubringer) und CMA-ES (cmae) - die Namen in Klammern sind in OptimizerSetEngine Anrufe verwendet werden. Neben der Auswahl Optimierer Motor möchten Sie vielleicht einige seiner internen Parameter einstellen. Verwenden Sie dazu OptimizerSetOption Funktion. OptimizerSetOption (Name, Wert) Funktion Die Funktion gesetzt zusätzliche Parameter für externe Optimierungs-Engine. Die Parameter sind motorabhängig. Alle drei Optimierer mit AmiBroker (SPSO, Trib, CMAE) ausgeliefert unterstützen zwei Parameter: Läuft (Anzahl der Durchläufe) und MaxEval (maximal Auswertungen (Tests) pro Einzellauf). Das Verhalten der einzelnen Parameter ist motorabhängig, so gleichen Werte können und in der Regel unterschiedliche Ergebnisse mit verschiedenen Motoren verwendet zu ergeben. Der Unterschied zwischen den Durchläufen und MaxEval ist wie folgt. Evaluation (oder Test) ist Single Backtest (oder Bewertung der Zielfunktionswert). RUN ist eine vollständige Ausführung des Algorithmus (der Suche nach optimalen Wert) - in der Regel mit vielen Tests (Hotelbewertungen). Jeder Lauf wird neu gestartet einfach den gesamten Optimierungsprozess von der Neuanfang (neue Anfangszufalls Bevölkerung). Daher kann jeder Lauf auf der Suche nach verschiedenen lokalen max / min (wenn sie nicht finden, global) führen. So Runs Parameter definiert Anzahl der nachfolgenden Algorithmus läuft. MaxEval ist die maximale Anzahl von Auswertungen (bactests) in jedem einzelnen Lauf. Wenn das Problem ist relativ einfach und 1000 Tests sind genug, um globale max zu finden, ist 5x1000 eher globale Maximum gefunden da gibt es weniger Chancen, um in lokalen max geklebt werden, wie nachfolgenden Läufen aus verschiedenen Anfangszufallspopulation starten Die Wahl von Parameterwerten kann tückisch sein. Es hängt von Problem im Test, der Komplexität, etc, etc. Alle stochastischen nicht erschöpfende Methode nicht geben Ihnen garantieren, der Suche nach globalen max / min, unabhängig von der Anzahl der Tests, wenn sie kleiner ist als erschöpfend. Die einfachste Antwort ist. angeben, wie große Anzahl von Tests, wie es für Sie zumutbar ist im Hinblick auf die Zeit benötigt, um abzuschließen. Eine weitere einfache Rat ist, um 10 mit dem Hinzufügen von neue Dimension multiplizieren Sie die Anzahl von Tests. Das kann zu überschätzen Nummer führen von Tests erforderlich, aber es ziemlich sicher ist. Versendet Motoren sind einfach zu bedienen zu sein, daher vernünftig default / automatische Werte werden verwendet, um die Optimierung können in der Regel werden ausgeführt ohne Angabe irgendetwas (Annahme von Standardeinstellungen). Es ist wichtig zu verstehen, dass alle intelligenten Optimierungsmethoden funktionieren am besten im Dauerparameterräume und relativ glatte Zielfunktionen. Wenn Parameterraum ist diskret evolutionäre Algorithmen können Probleme bei der Suche optimalen Wert. Es gilt vor allem für binäre (on / off) Parameter - sie eignet sich für jede Suche Methode, die Gradienten der Zielfunktion Änderung verwendet (wie die meisten intelligenten Methoden zu tun) nicht. Wenn Ihr Trading-System enthält viele binäre Parameter, sollten Sie nicht verwenden Smart-Optimierer direkt auf sie. Stattdessen versuchen, nur kontinuierliche Parameter mit intelligenten Optimierer optimieren und schalten binäre Parameter manuell oder über externe Skript. SPSO - Standard Particle Swarm Optimizer Standard Particle Swarm Optimizer auf SPSO2007 Code, die angeblich gute Ergebnisse sofern korrekten Parameter (dh Läufe, MaxEval) werden für spezielle Problem bereitgestellt beruht. Kommissionierung richtigen Optionen für die PSO-Optimierer kann tückisch sein, damit Ergebnisse wesentlich von Fall zu Fall variieren. SPSO. dll kommt mit voller Quellcodes innerhalb ADK Unterordner. Beispiel-Code für Standard-Particle Swarm Optimizer: OptimizerSetEngine (spso); OptimizerSetOption (Runs, 1); sl = Optimieren (s, 26, 1, 100, 1); fa = Optimize (f, 12, 1, 100, 1); Buy = Cross (MACD (fa, sl), 0); Verkaufen = Cross (0, MACD (fa, sl)); TRIBES - Adaptive Parameter losen Particle Swarm Optimizer Tribes ist adaptiv, parameterlose Version der PSO (Partikelschwarmoptimierung) nicht erschöpfende Optimierer. Zum wissenschaftlichen Hintergrund zu sehen: In der Theorie sollte es eine bessere Leistung als herkömmliche PSO, weil es automatisch die Schwarmgrößen und Algorithmus-Strategie, um das Problem nicht gelöst einzustellen. Die Praxis zeigt, dass seine Leistung ist ziemlich ähnlich PSO. Die Tribes. DLL Plugin implementiert Tribes-D (dh dimensionslose) Variante. Basierend auf clerc. maurice. free. fr/pso/Tribes/TRIBES-D. zip von Maurice Clerc. Original mit Genehmigung des Autors verwendet Quellcodes Tribes. DLL kommt mit vollständigem Source Code (im ADK-Ordner) Unterstützte Parameter: MaxEval - maximale Anzahl von Auswertungen (Backtests) pro Lauf (Standard = 1000). OptimizerSetOption (MaxEval, 1000); Sie sollten die Anzahl der Auswertungen mit zunehmender Zahl der Abmessungen (Anzahl der Optimierungs params) erhöhen. Die Standardeinstellung 1000 ist gut für 2 oder maximal 3 Dimensionen. Läufe - Anzahl der Durchläufe (Neustart). (Standard = 5) Sie können die Anzahl der Durchläufe bei Standardwert von 5. zu lassen. Standardmäßig Anzahl der Läufe (oder neu gestartet) wird auf 5 gesetzt. Um Tribes Optimierungsprogramm verwenden, müssen Sie nur eine Zeile, um Ihren Code hinzufügen: OptimizerSetEngine (Zubringer); OptimizerSetOption (MaxEval, 5000); // 5000 Auswertungen max CMA-ES - Kovarianzmatrix Anpassung Evolutionary Strategy Optimierer CMA-ES (Kovarianzmatrix Anpassung Evolutionary Strategy) vorgeschoben wird nicht erschöpfende Optimierer. Zum wissenschaftlichen Hintergrund zu sehen: Nach wissenschaftlichen Benchmarks übertrifft neun anderen, beliebtesten Evolutionsstrategien (wie PSO, Genetische und Differential Evolution). Die CMAE. DLL Plugin implementiert globale Variante der Suche mit mehreren Neustarts mit zunehmender Bevölkerungszahl CMAE. DLL kommt mit vollständigem Source Code (im ADK-Ordner) Standardmäßig Anzahl der Läufe (oder neu gestartet) wird auf 5 gesetzt. Es wird empfohlen, die Standard-Anzahl der Neustarts zu verlassen. Sie können es mit OptimizerSetOption (Läuft, N) Anruf, wobei N sollte in Bereich 1..10 werden variieren. Angeben von mehr als 10 Abfahrten ist nicht zu empfehlen, wenn auch möglich. Beachten Sie, dass jeder Lauf nutzt doppelt so groß wie Bevölkerung vorherigen Lauf so exponentiell wächst. Deshalb mit 10 Läufen Sie am Ende mit Bevölkerung 2 ^ 10 größer (1024-mal) als der erste Lauf. Es ist ein weiterer Parameter MaxEval. Der Standardwert ist NULL, was bedeutet, dass Plugin berechnet automatisch MaxEval erforderlich. Es wird empfohlen, nicht zu MaxEval selbst definieren als Standard funktioniert gut. Der Algorithmus ist intelligent genug, um die Anzahl der Auswertungen zu minimieren und es konvergiert sehr schnell Lösungspunkt, so findet es oft Lösungen schneller als andere Strategien. Es ist normal, dass das Plugin werden einige Auswertungen Schritte überspringen, wenn es erkennt, dass Lösung wurde gefunden, daher sollten Sie sich nicht wundern, dass die Optimierung Fortschrittsleiste kann sehr schnell an einigen Punkten zu bewegen. Das Plugin hat auch Fähigkeit zur Anzahl der Schritte über ursprünglich geschätzten Wert erhöhen, wenn es gebraucht wird, um die Lösung zu finden. Aufgrund seiner adaptiven Natur, links die geschätzte Zeit und / oder die Anzahl der von der Fortschrittsdialog angezeigt Schritte nur beste Vermutung zu der Zeit und können während der Optimierung natürlich variieren. CMA-ES-Optimierer zu verwenden, müssen Sie nur eine Zeile, um Ihren Code hinzufügen: OptimizerSetEngine (cmae); Dadurch wird die Optimierung mit den Standardeinstellungen, die für die meisten Fälle sind auszuführen. Es sollte beachtet werden, wie es der Fall bei vielen continouos Raumsuchalgorithmen, dass das Verringern Schrittparameter in Optimieren () funciton Anrufe nicht wesentlich Optimierungszeiten beeinflussen. Das einzige, was ist das Problem Dimension zählt, dh die Anzahl der verschiedenen Parameter (Anzahl der optimize Funktionsaufrufe). Die Anzahl der Schritte pro Parameter kann, ohne die Optimierungszeit festgelegt werden, so verwenden die feinste Auflösung Sie wollen. In der Theorie sollte der Algorithmus in der Lage, in Lösung höchstens 900 * (N + 3) * (N + 3) Backtests, wobei N die Dimension zu finden sein. In der Praxis konvergiert es viel schneller. Beispielsweise die Lösung in 3 (N = 3) eindimensionalen Parameterraum (etwa 100 * 100 * 100 = 1 Mio. erschöpfend Schritten) in nur 500-900 CMA-ES Abläufe. Mehrgewinde individuelle Optimierung Ausgehend von AmiBroker 5.70 zusätzlich zur Mehrsymbol Multithreading. Sie Multi-Threaded-Single-Symbol-Optimierung durchführen. Um diese Funktionalität zu nutzen, klicken Sie auf Dropdown-Pfeil neben dem Button in der New Analysefenster Optimieren und wählen Sie Einzel optimieren. Einzelne Optimieren werden alle verfügbaren Prozessorkerne verwenden, um Single-Symbol Optimierung durchzuführen, so dass es viel schneller als herkömmliche Optimierung. In aktuellen Symbolmodus wird es Optimierung auf ein Symbol durchzuführen. In allen Symbolen und Filter-Modi wird es alle Symbole der Reihe nach zu verarbeiten, dh erste vollständige Optimierung für erste Symbol, dann Optimierung auf zweite Symbol usw. Einschränkungen: 1. Kundenspezifische Backtester wird nicht unterstützt (noch) nicht 2. Intelligente Optimierung Motoren werden nicht unterstützt - nur ERSCHÖPFENDE Optimierung arbeitet. Wenn AmiBroker so geändert, kundenspezifische Backtester verwendet keine OLE mehr - schließlich können wir der Verjährung (1) loszuwerden. Aber (2) ist wohl hier, um für längere Aufenthalte. Optimierung eines Handelssystems Aktualisiert am 2010-04-06 Optimierung nützlich ist auf viele verschiedene Arten. In den Handel, können Sie beispielsweise verwenden Sie ein Optimierungsprogramm mit einem Backtester oder Simulator Engine einige Parameter eines Handelssystems variieren und sehen, ob dies kann die Gesamtwertentwicklung des Portfolios zu erhöhen, oder Sie können ein Optimierungsprogramm verwenden, um mehrere Variationen eines bestimmten Kauf Regel testen in einem Handelssystem. Fast jedes Stück von einem Handels - oder Handelsstrategie optimiert werden kann; Sie optimieren können, kaufen, verkaufen, kurz - oder Abdeckung Regeln, Auftragsarten, um Grenzen, Portfolio-Einstellungen, stoppt. Die Optimierung wird durchgeführt unter Verwendung einer der folgenden Algorithmen: Exhaustive Optimierung, Genetische Algorithmus und Bevölkerung-basierte inkrementelle Lernen oder PBIL. Die Exhaustive Optimierung, die auch als Brute-Force-Optimierung, testet jedes mögliche Lösung. Diese Technik sollte nur dann angewandt werden, wenn man eine kleine Anzahl von Kombinationen testen. Als Beispiel wird eine Handelsstrategie mit 5 Faktoren zu optimieren (jeden Faktor variieren von 1 bis 10) schafft 100.000 Kombinationen. Falls Sie mehrere Hunderte oder Millionen von Kombinationen zu testen; Sie sollten prüfen, wie der genetische Algorithmus und die PBIL Algorithmus. Durch die Verwendung dieser Algorithmen in der QuantShare Trading-Software. Sie können Millionen von Kombinationen eines Handelssystems sowie Handelsregeln, Ranking-Systeme und neuronale Netzwerkmodelle zu optimieren. Wir werden in einem späteren Beitrag tiefer in diesen Algorithmen. Denn jetzt, lassen Sie uns das abschließende Optimierung zum Detail die Faktoren oder Einstellungen, die in QuantShare optimiert werden können. Erstellen Sie ein Handelssystem: Wählen Sie im Menü Ihres Trading-Software. Wählen Sie "Analyse" und klicken Sie auf "Simulator". Im Simulator Formular, klicken Sie auf "Hinzufügen", um ein neues Handelssystem zu schaffen. Optimierung Trading-Regeln: Die Hauptkomponente eines Handelssystems ist die Regelliste. Der Kauf, Verkauf, kurze und Abdeckung Regeln werden vom Simulator verwendet werden, um zu entscheiden, welche Positionen zu betreten und die zum Verlassen positioniert. Diese Regeln können direkt mit dem Formel-Editor oder mit dem Assistenten optimiert werden. Zum Beispiel im Rahmen der "am offenen von morgen Buy", klicken Sie auf "Regel hinzufügen". Unter der "Regel" Panel, Typ "RSI (a)" (Relative Strength Index) in das erste Eingabefeld und "b" in der zweiten Eingabefeld. Wenn Sie fertig sind, wird zwei Linien im Gitter; Diese Zeilen können Sie die Minimal-, Maximal - und Schrittwerte der Variablen Sie zur Optimierung sind zu definieren. In der "a" variable Zeile "7" in der Spalte "Min", "14" unter der Spalte "Max" und "7" in der Spalte "Step". In der "b" variable Zeile "40" unter der Spalte "Min", "70" unter der Spalte "Max" und "10" in der Spalte "Step". Klicken Sie auf "Update", um die Änderungen zu speichern; Das linke Feld zeigt "Rule0 (8)", was bedeutet, dass neben der Regel acht Kombinationen. Klicken Sie auf "Schließen", um zum Trading-Strategie-Editor Form wechseln. Wählen Sie "Neues Handelssystem mit dem Editor Formel", um zu sehen, wie die Handelssystem-Regeln sind in den QuantShare vektorbasierte Sprache übersetzt. Optimieren Handelssystem 'Einstellungen: In der "Erstellen Sie eine Trading-Strategie" Form, wählen Sie "Optimieren" und klicken dann auf "Optimierung". Klicken Sie auf "Artikel hinzufügen", um eine neue Variable zu erstellen optimierbar; doppelklicken Sie auf die Zelle unter der Spalte "Variable", um eine Liste von Variablen zu öffnen. Wählen Sie zum Beispiel "Anzahl der Zeichen" (Dieses Feld definiert die maximale Anzahl von Wertpapieren, die zu einem bestimmten Zeitpunkt in Ihr Portfolio sein sollte), Typ "6" in der Spalte "Min", "10" unter der Spalte "Max" , "2" unter der Spalte "Step" und klicken Sie auf "OK", um Ihre Eingaben zu speichern. Sie haben nun drei weitere Iterationen oder Kombinationen erstellt. Ihre Gesamtzahl der Kombinationen ist 24 (8 * 3). Im nächsten Beitrag werden wir das Geld-Management-Skriptsprache verwenden, um mehr Kombinationen zu erstellen. Event Center Präsentiert von Michael Burke Optimierung ist die Fähigkeit, durch viele verschiedene Kombinationen von Trading-Strategie-Parameter, um zu bestimmen, welche der Parameter am günstigsten im historischen Backtesting durchgeführt setzt laufen. Das Ziel der Optimierung ist es, Ihre Strategie für die Konsistenz und Robustheit zu testen und zu helfen, finden Sie eine Reihe von Parametern, die vorteilhaft in der Zukunft sein kann. Dieses Seminar untersucht die Strategie Optimierungsprozess, Terminologie und Best Practices suchen Sie in der realen Welt-Strategie Beispiele. Das Verständnis der Optimierungsbericht und Formatieren von Optimierungseinstellungen wird ebenfalls behandelt. Wie man eine Strategie Optimierungslauf Festlegen von Optimierungs Eingänge und Einstellungen Interpretation der Optimierungsbericht Erschöpfende Vergleich Genetic gegen Begehbarer Vorwärts


No comments:

Post a Comment