Mit Hilfe von genetischen Algorithmen zur Prognose der Finanzmärkte Burton schlug in seinem Buch, ein Random Walk Down Wall Street, (1973), dass ein mit verbundenen Affen werfen Darts an einer Zeitung Finanzseiten konnte ein Portfolio, das genau so gut wie ein sorgfältig ausgewählt durch Experten. Während die Evolution den Menschen nicht intelligenter zum Sammeln von Beständen gemacht hat, hat die Charles Darwins-Theorie ziemlich effektiv, wenn sie direkt angewandt wird. (Um zu helfen, wählen Sie Bestände, lesen Sie heraus, wie man eine Bestände auswählen.) Was sind genetische Algorithmen Genetische Algorithmen (GAs) sind Problemlösungsmethoden (oder Heuristiken), die den Prozess der natürlichen Evolution imitieren. Anders als künstliche neuronale Netze (ANNs), entworfen, um wie Neuronen im Gehirn zu funktionieren, nutzen diese Algorithmen die Konzepte der natürlichen Selektion, um die beste Lösung für ein Problem zu bestimmen. Als Ergebnis werden GAs häufig als Optimierer verwendet, die Parameter anpassen, um ein Rückkopplungsmaß zu minimieren oder zu maximieren, das dann unabhängig oder im Aufbau eines ANN verwendet werden kann. An den Finanzmärkten. Genetische Algorithmen werden am häufigsten verwendet, um die besten Kombinationen von Parametern in einer Handelsregel zu finden, und sie können in ANN-Modelle gebaut werden, um Bestände zu identifizieren und Trades zu identifizieren. Mehrere Studien haben gezeigt, dass sich diese Methoden als wirksam erweisen können, einschließlich genetischer Algorithmen: Genesis of Stock Evaluation (2004) von Rama und The Applications of Genetic Algorithms von Lin, Cao, Wang, Zhang. (Um mehr über ANN zu erfahren, siehe Neuronale Netze: Forecasting Profits.) Wie genetische Algorithmen arbeiten Genetische Algorithmen werden mathematisch unter Verwendung von Vektoren erzeugt, die Größen sind, die Richtung und Größe haben. Parameter für jede Handelsregel werden mit einem eindimensionalen Vektor dargestellt, der als ein Chromosom in genetischer Hinsicht gedacht werden kann. Inzwischen können die Werte, die in jedem Parameter verwendet werden, als Gene angesehen werden, die dann unter Verwendung einer natürlichen Selektion modifiziert werden. Beispielsweise kann eine Handelsregel die Verwendung von Parametern wie Moving Average Convergence-Divergence (MACD) beinhalten. Exponential Moving Average (EMA) und Stochastik. Ein genetischer Algorithmus würde dann Werte in diese Parameter mit dem Ziel der Maximierung des Nettogewinns. Im Laufe der Zeit werden kleine Veränderungen eingeführt, und diejenigen, die eine wünschenswerte Wirkung bewirken, bleiben für die nächste Generation erhalten. Es gibt drei Arten von genetischen Operationen, die dann durchgeführt werden können: Crossovers repräsentieren die Reproduktion und biologische Crossover in der Biologie gesehen, wobei ein Kind bestimmte Eigenschaften seiner Eltern übernimmt. Mutationen stellen die biologische Mutation dar und werden verwendet, um die genetische Diversität von einer Generation einer Population zur nächsten durch Einführung zufälliger kleiner Veränderungen zu erhalten. Selektionen sind die Stufe, in der einzelne Genome aus einer Population für die spätere Züchtung (Rekombination oder Crossover) ausgewählt werden. Diese drei Operatoren werden dann in einem fünfstufigen Prozess verwendet: Initialisieren einer zufälligen Population, wobei jedes Chromosom n-Länge ist, wobei n die Anzahl der Parameter ist. Das heißt, eine Zufallszahl von Parametern wird jeweils mit n Elementen hergestellt. Wählen Sie die Chromosomen, oder Parameter, die wünschenswerte Ergebnisse (vermutlich Nettogewinn) zu erhöhen. Anwenden von Mutations - oder Crossover-Operatoren auf die ausgewählten Eltern und Erzeugen eines Nachkommens. Rekombinieren Sie die Nachkommen und die aktuelle Bevölkerung, um eine neue Population mit dem Auswahloperator zu bilden. Wiederholen Sie die Schritte zwei bis vier. Im Laufe der Zeit führt dieses Verfahren zu immer günstigeren Chromosomen (oder Parametern) zur Verwendung in einer Handelsregel. Der Prozess wird dann beendet, wenn ein Stoppkriterium erfüllt ist, das Laufzeit, Fitness, Anzahl der Generationen oder andere Kriterien einschließen kann. (Für mehr auf MACD, lesen Sie Trading The MACD Divergence.) Verwenden genetischer Algorithmen im Handel Während genetische Algorithmen sind in erster Linie von institutionellen quantitative Händler verwendet. Einzelne Händler können die Macht der genetischen Algorithmen nutzen - ohne einen Abschluss in fortgeschrittene Mathematik - mit mehreren Software-Pakete auf dem Markt. Diese Lösungen reichen von eigenständigen, auf die Finanzmärkte ausgerichteten Softwarepaketen bis hin zu Microsoft Excel-Add-ons, die eine gründlichere Analyse ermöglichen. Wenn diese Anwendungen verwendet werden, können Händler einen Satz von Parametern definieren, die dann unter Verwendung eines genetischen Algorithmus und eines Satzes von historischen Daten optimiert werden. Einige Anwendungen können optimieren, welche Parameter verwendet werden und die Werte für sie, während andere in erster Linie auf einfache Optimierung der Werte für einen bestimmten Satz von Parametern konzentriert. Wichtige Optimierungstipps und Tricks Kurvenanpassung (Overfitting), die Entwicklung eines Handelssystems um historische Daten, anstatt wiederholbares Verhalten zu identifizieren, stellt ein potentielles Risiko für Händler dar genetische Algorythmen. Jedes Handelssystem, das GAs verwendet, sollte auf dem Papier vor dem Live-Einsatz vorgetestet werden. Die Auswahl von Parametern ist ein wichtiger Teil des Prozesses, und Händler sollten nach Parametern suchen, die mit Änderungen des Preises einer bestimmten Sicherheit korrelieren. Zum Beispiel, probieren Sie verschiedene Indikatoren und sehen, ob alle scheinen, um mit großen Marktabschwüngen zu korrelieren. The Bottom Line Genetische Algorithmen sind einzigartige Wege, um komplexe Probleme zu lösen, indem man die Kraft der Natur nutzt. Durch die Anwendung dieser Methoden auf die Vorhersage der Wertpapiere Preise können Händler die Handelsregeln zu optimieren, indem die besten Werte für jeden Parameter für eine bestimmte Sicherheit zu verwenden. Allerdings sind diese Algorithmen nicht der Heilige Gral, und Händler sollten darauf achten, die richtigen Parameter zu wählen und nicht Kurve fit (über fit). MetaTrader 4 - Tester Genetische Algorithmen vs. Einfache Suche im MetaTrader 4 Optimierer 1. Was sind genetische Algorithmen Die MetaTrader 4 Plattform bietet jetzt genetische Algorithmen an Optimierung der Expert Advisors Eingänge. Sie reduzieren die Optimierungszeit signifikant ohne signifikante Ungültigkeit der Tests. Ihr Betriebsprinzip ist beschrieben im Artikel genetische Algorithmen: Mathematik im Detail. Dieser Artikel widmet sich EAs Eingaben Optimierung mit genetischen Algorithmen im Vergleich zu den Ergebnissen erhalten durch direkte, vollständige Suche von Parameterwerten. 2. Der Experte Advisor Für meine Experimente, ich etwas beendete die EA mit dem Namen CrossMACD, die Sie aus dem Artikel namens Orders Management - Its Simple: StopLoss und TakeProfit zu den platzierten Positionen bekannt haben können. Trailing Stop hinzugefügt. Verwendet Parameter OpenLuft, um Signale zu filtern: Jetzt wird das Signal kommen, wenn die Nulllinie an einer bestimmten Punktzahl (mit der Genauigkeit auf eine Dezimalstelle) gekreuzt wird. Zusätzlicher Parameter CloseLuft für die ähnliche Filterung von Schließsignalen. Setzen Sie in expernal Variablen die Perioden der langsamen und der schnell bewegten Mittelwerte für MACD-Berechnungen verwendet. Jetzt ist es ein praktisch abgeschlossener Expert Advisor. Es wird bequem sein, es zu optimieren und im Handel. Sie können EA CrossMACDDeLuxe. mq4 auf Ihren PC herunterladen und unabhängig testen. 3. Optimierung Nun können wir mit der Optimierung der EA beginnen. Drei Tests werden mit unterschiedlichen Mengen an Optimierungssuchen durchgeführt. Dies wird dazu beitragen, Gewinne mit Hilfe von genetischen Algorithmen in verschiedenen Situationen zu vergleichen. Nach jedem Test, werde ich manuell entfernen Sie den Tester Cache für die nachfolgenden Tests nicht zu verwenden Kombinationen bereits gefunden. Dies ist nur notwendig, damit das Experiment genauer ist - in der Regel automatisiert das Chaching der Ergebnisse nur die wiederholte Optimierung. Vergleich der Ergebnisse. Optimierung mit genetischen Algorithmen wird zweimal gemacht werden: zum ersten Mal - um den maximalen Gewinn (Profit), zum zweiten Mal, um den höchsten Gewinn-Faktor (Profit-Faktor) zu finden. Danach werden die besten drei Ergebnisse für beide Optimierungsmethoden in der Übersichtstabelle nach den angegebenen Spalten angegeben. Optimierung ist rein experimentell. Dieser Artikel ist nicht auf die Suche nach Inputs, die wirklich die größten Gewinne. Chart-Symbol EURUSD Chart Zeitrahmen 1 Testperiode 2 Jahre Modellierung Offene Preise nur Eingaben gesucht in: Es ist zu beachten, dass bei der Verwendung von genetischen Algorithmen die erwartete Optimierungszeit annähernd die gleiche ist wie bei der Optimierung mittels direkter Eingabesuche. Der Unterschied besteht darin, dass ein genetischer Algorithmus immer wieder erfolglose Kombinationen aussortiert und auf diese Weise die Anzahl der notwendigen Tests mehrmals reduziert (vielleicht mehrere zehn, hundert, tausendmal). Deshalb sollten Sie sich nicht auf die erwartete Optimierungszeit beim Einsatz genetischer Algorithmen einstellen. Die wirkliche Optimierungszeit wird immer kürzer sein: Wie Sie sehen, hat die Optimierung mit genetischen Algorithmen weniger als vier Minuten statt der erwarteten fünfeinhalb Stunden gedauert. Ein Optimierungsgraph mit genetischen Algorithmen unterscheidet sich auch von dem mit der direkten Suche. Da schlechte Kombinationen bereits abgeschirmt wurden, werden die nachfolgenden Tests mit Kombinationen von Inputs durchgeführt, die standardmäßig rentabler sind. Dies ist der Grund, weshalb die Bilanz nach oben geht: Betrachten wir die Ergebnisse beider Optimierungsmethoden in allen Details. Die Situation hat sich geändert. Die Optimierungszeiträume fallen zusammen (ein unbedeutender Fehler ist zulässig), und die Ergebnisse sind identisch. Dies lässt sich dadurch erklären, dass die Optimierung aus nur 1331 Suchvorgängen bestand, und diese Menge an Pässen reicht nicht aus, um genetische Algorithmen zu verwenden. Haben sie keine Zeit, um Geschwindigkeit zu holen - die Optimierung ist schneller durch Screening sicherlich verlieren Eingangskombinationen, aber mit einer solchen Menge an Kombinationen wie oben, können genetische Algorithmen nicht definieren, was Eltern (Eingangskombinationen) erzeugen schlechte Frühjahr. Also, es gibt keinen Sinn, sie zu benutzen. 4. Schlussfolgerungen Genetische Algorithmen sind eine schöne Ergänzung zu den 4 Strategien Optimierer. Optimierung ist dramatisch verbessert, wenn die Menge der Suchanfragen ist groß, die Ergebnisse decken sich mit denen, die durch regelmäßige Optimierung erhalten. Jetzt gibt es keinen Sinn, die vollständige Suche in Eingaben zu verwenden. Genetische Algorithmen finden das beste Ergebnis schneller und nicht weniger effektiv. 5. Nachwort Nachdem ich den Artikel geschrieben habe, habe ich meine Neugier befriedigt und die Optimierung von CrossMACDDeLuxe auf allen Eingängen gestartet. Die Menge der Kombinationen über hundert Millionen (103 306 896). Die Optimierung mit genetischen Algorithmen dauerte nur 17 Stunden, während die Optimierung bei der Suche in allen Inputs etwa 35 Jahre (301 223 Stunden) dauern würde. Schlussfolgerungen sind bis you. GEATbx: Genetische und Evolutionäre Algorithmus Toolbox für die Verwendung mit MATLAB Dokumentation Die Genetische und Evolutionäre Algorithmus Toolbox (GEATbx) implementiert eine Vielzahl von genetischen und evolutionären Algorithmen großen und komplexen Problemen der realen Welt zu lösen. Viele fertige Demos und Beispiele sind enthalten. Die 6 Installation der GEATbx ist einfach und kann in einer Minute erfolgen. Die Release Notes der GEATbx vermitteln einen kompakten Überblick über die neuen Features und Änderungen zwischen den Versionen. 1 Tutorial Tutorial - erklärt die Nutzung der GEATbx, einschließlich Schnellstart, wie eigene Zielfunktionen zu schreiben, die Verwendung von Multi-Objektiv-Optimierung, beschränkte Optimierung und der Ansatz für neue Optimierungsprobleme. Quick Start Schreiben Zielfunktionen Variable Darstellung GEA Toolbox Struktur - Aufruf Baum der Funktionen und Konventionen Mehrkriterielle Optimierung Constrained Optimization Datenstrukturen Naming Wie neue Optimierungsprobleme Approach Beispiele für Zielfunktionen 1 Parametric Optimierungsfunktionen, inkl. De Jongs Funktion, Rosenbrock Tal (De Jongs Funktion 2), Rastrigins Funktion, Schwefels Funktion, Griewangks Funktion, Ackleys Pfad-Funktion, Langermanns Funktion, Michalewiczs Funktion, Braninss RCOs Funktion, Easoms Funktion, Goldstein-Preise Funktion, Six-Buckel Kamel-Back-Funktion . 2 Einführung in evolutionäre Algorithmen Erläutert die Struktur der evolutionären Algorithmen und ihrer Operatoren, wie sie in der GEATbx implementiert sind. Kann auch verwendet werden, um die Arbeit von evolutionären Algorithmen zu verstehen. Evolutionäre Algorithmen: Prinzipien, Methoden und Algorithmen Einführung Übersicht Selection Rekombinations Mutation Reinsertion Mehrkriterielle Optimierung Populationsmodelle - Parallele Implementierungen Anwendung verschiedener Strategien Kombination von Operatoren und Optionen zu produzieren Evolutionäre Algorithmen Referenzen (Papiere, Bücher, Konferenzen) im Bereich der Evolutions Computation 3 Referenz Enthält eine ausführliche Erläuterung aller verfügbaren Parametereinstellungen und Optionen der GEATbx und der Dokumentation der implementierten Funktionen direkt aus der Quelle der m-Dateien. Parametereinstellungen Optionen von GEATbx - in der Tiefenübersicht der Funktionen, Bediener, Parameter und Optionen der Toolbox werden alle Einstellungen angezeigt, die Bedeutung wird erläutert und Beispiele gegeben. Index der GEATbx Matlab-Dateien - Dokumentation direkt aus dem Quellcode von die m-Dateien (Zweck, Syntax und Beispiele für alle Routinen) 4 Eigenschaften des GEATbx real, integer, binär (lineare und logarithmische Skalierung, grau-Codierung) und Permutation variable Darstellung Fitness-Belegung: linearnon-lineare Mehrziel Ranking Ranking: PARETO Ranking, Zielerreichung, teilen Auswahl: stochastische Universal Sampling, lokal, Trunkierung, Turnier Auswahl Rekombination: diskrete, Zwischen-, Linie, verlängerte Linie, permutationscheduling Crossover: single Punkt, Shuffle, reduziert Surrogat Mutation: binär, integer, real bewertet, permutationscheduling Reinsertion : Globale, regionale, lokale Migration: uneingeschränkt, Ring, Nachbarschaftswettbewerb: zwischen SubpopulationenStrategien auf hohem Niveau Funktionen für alle Betreiber unterschiedliche Bevölkerungsmodelle unterstützt (globales, regionales und lokales Modell) Mehrfachbevölkerung Unterstützung mehrerer Strategien unterstützen (mehrere Suchstrategien nebeneinander ausführen) Ein Optimierungslauf) der Wettbewerb zwischen Subpopulationen möglich (effiziente Verteilung der Computerressourcen zwischen verschiedenen Subpopulationen) anspruchsvolle Optimierung Visualisierung von Zustand und Verlauf der Evolutionären Algorithmen, online (während der Optimierung) und offline (nach einem Optimierungslauf mit Logdaten) komfortabel (Alle Ausführungen können vollständig in Text - und Datendateien dokumentiert werden) Einbindung von problemspezifischem Wissen (Beispiele enthalten) 5 Implementierung der GEATbx m-File-Implementierung (Matlab 5.3, 6.x, 7.x, R2006ab und Wahrscheinlich neuere) kompatibel auf allen Computerplattformen modulare, benutzerfreundliche Struktur hohe Eintragsfunktionen viele Beispiel - und Testfunktionen enthalten (ready to run) Standardparametereinstellungen leicht erweiterbar umfangreiche Dokumentation 6 Installation Extrahieren Sie die komprimierten Dateien in die gewünschten Verzeichnisse. Die Verzeichnisstruktur sollte intakt bleiben. Es wird empfohlen, dass die Dateien für die genetische und evolutionäre Algorithmus Toolbox in einem Verzeichnis mit dem Namen geatbx aus dem Hauptverzeichnis von matlabtoolbox gespeichert werden. Alle Pfade der GEA-Toolbox müssen im Matlab-Suchpfad enthalten sein. Wirklich alle Pfade einschließen. Starten Sie Matlab neu und die Funktionalität des GEATbx sollte vorhanden sein. Testen Sie es, indem Sie eines der Demoexample-Skripts ausführen (zum Beispiel demofun1.m, demo. m in Unterverzeichnis-Skripten). 7 Verwendung der Dokumentation Bitte beachten Sie folgende Hinweise: Die Verwendung dieser Dokumentation ist nur für personenbezogene Daten gestattet. Darüber hinaus können Sie diese Dokumentation in Ihrem internen Netz unverändert für den internen Gebrauch als Dokumentation der Genetic and Evolutionary Algorithm Toolbox kopieren. Es ist verboten, die Dokumentation oder einen Teil davon in veränderter Form zu verwenden. (Wenn Sie jedoch Teile davon, Texte oder Grafiken für Vorlesungen, eine andere Dokumentation oder etwas anderes verwenden möchten, wenden Sie sich bitte an den Autor.) 8 Warum eine Toolbox für evolutionäre Algorithmen für Matlab In den letzten Jahren das Interesse an genetischen und evolutionären Algorithmen (EA: Evolutionary Algorithms) stetig an. Evolutionäre Algorithmen sind im Vergleich zu herkömmlichen Such - und Optimierungsverfahren, wie z. B. kalkülbasierten und enumerativen Strategien, robust, global orientiert und in der Regel einfacher in Situationen anzuwenden, in denen es wenig oder kein a priori Wissen über das zu lösende Problem gibt. Da evolutionäre Algorithmen keine abgeleiteten Informationen oder formale Anfangsschätzungen der Lösung erfordern und weil sie stochastischer Natur sind, können evolutionäre Algorithmen den Lösungsraum mit größerer Wahrscheinlichkeit suchen, das globale Optimum zu finden. Matlab ist zu einem De-facto-Standard in einer Vielzahl von technischen Anwendungen geworden. Viele Bereiche werden durch eine breite Palette von Toolboxen zusammen mit umfangreichen Visualisierungs-und Analyse-Tools gerecht. Darüber hinaus verfügt Matlab über eine offene und erweiterbare Architektur, die es einzelnen Benutzern ermöglicht, weitere Routinen für ihre eigenen Anwendungen zu entwickeln. Diese Qualitäten bieten eine einheitliche und vertraute Umgebung, auf der genetische und evolutionäre Algorithmen-Werkzeuge aufgebaut werden können. Dieses Dokument ist Teil der Version 3.8 der GEATbx: Genetic and Evolutionary Algorithm Toolbox für Matlab - geatbx. Die genetische und evolutionäre Algorithmus-Toolbox ist nicht public domain. 169 1994-2006 Hartmut Pohlheim, Alle Rechte vorbehalten, (supportgeatbx).
No comments:
Post a Comment