Thursday 5 January 2017

Forex Genetischer Algorithmus

Genetischer Algorithmus im Forex-Handel 2014-2016 ForexBoat. Alle Rechte vorbehalten Forexboat Pty Ltd (ABN: 29 609 855 414) ist ein Corporate Authorized Representative (AR Nr. 001238951) der HLK Group Pty Ltd (ACN: 161 284 500) mit einer australischen Finanzdienstlizenz (AFSL Nr. 435746). Alle Informationen oder Ratschläge, die auf dieser Website enthalten sind, sind allgemeiner Natur und stellen keine persönliche oder Anlageberatung dar. Wir haften nicht für Verluste oder Schäden, einschließlich, aber nicht beschränkt auf Verluste, die direkt oder indirekt aus der Nutzung oder dem Vertrauen auf diese Informationen entstehen können. Sie sollten eine unabhängige finanzielle Beratung vor dem Erwerb eines Finanzproduktes zu suchen. Alle Wertpapiere und Finanzprodukte oder Instrumentengeschäfte sind mit Risiken behaftet. Bitte denken Sie daran, dass die Ergebnisse der Vergangenheit nicht notwendigerweise auf zukünftige Ergebnisse hindeuten. Die Informationen auf dieser Website können weltweit abgerufen werden, es ist jedoch nicht an Einwohner in einem Land oder einer Gerichtsbarkeit gerichtet, wenn eine solche Verteilung oder Verwendung gegen lokales Recht oder Regulierung verstößt. Forexboat Pty Ltd ist nicht registriert bei einer US-Regulierungsbehörde einschließlich der National Futures Association (8220NFA8221) und Commodity Futures Trading Commission (8220CFTC8221) daher Produkte und Dienstleistungen auf dieser Website angeboten werden, ist nicht für die Bewohner der Vereinigten Staaten gedacht. Füllen Sie dieses Formular aus und klicken Sie auf die Schaltfläche unten, um Ihre kostenlose TrainingSnowCron genetischen Algorithmus in FOREX Trading Systems mit genetischen Algorithmus, um profitable FOREX Trading-Strategie zu schaffen. Genetischer Algorithmus in Cortex Neuronale Netze Software Feedforward Backpropagation Neuronales Netz Anwendung für genetische Berechnungen basierte Forex Trading. Dieses Beispiel verwendet Konzepte und Ideen des vorherigen Artikels, also lesen Sie bitte Neural Network Genetic Algorithm in Forex Trading Systems zuerst, obwohl es nicht obligatorisch ist. Zu diesem Text Zuerst lesen Sie bitte den Haftungsausschluss. Dies ist ein Beispiel für die Verwendung von Cortex Neural Networks Software genetischen Algorithmus-Funktionalität, nicht ein Beispiel, wie man profitabel Handel tun. Ich bin nicht euer Guru, und ich sollte auch nicht für eure Verluste verantwortlich sein. Cortex Neural Networks Software hat neuronale Netzwerke in ihr, und FFBP wir diskutiert, bevor ist nur eine Möglichkeit der Auswahl eines Forex Trading-Strategien. Es ist eine gute Technik, leistungsstark und wenn richtig angewendet, sehr vielversprechend. Allerdings hat es ein Problem - das Neuronale Netz zu lehren. Müssen wir die gewünschte Ausgabe wissen. Es ist ziemlich einfach zu tun, wenn wir Funktion Näherung tun, nehmen wir nur den realen Wert einer Funktion, weil wir wissen, was es sein sollte. Wenn wir neuronale Netzwerk-Prognose. Verwenden wir die in früheren Artikeln beschriebene Technik des Neuronalen Netzes über die Geschichte, wenn wir, wie wir sagen, einen Wechselkurs voraussagen, wissen wir (während des Trainings), was die richtige Vorhersage ist. Allerdings, wenn wir ein Handelssystem zu bauen, haben wir keine Ahnung, was die richtige Handelsentscheidung ist, auch wenn wir wissen, der Wechselkurs Wie die Tatsache, wir haben viele Forex Trading-Strategien können wir zu jedem Zeitpunkt verwenden, und Müssen wir eine gute finden - wie Was sollten wir als die gewünschte Leistung des Neuronalen Netzes füttern Wenn Sie unserem vorherigen Artikel gefolgt sind, wissen Sie, dass wir betrogen haben, um mit diesem Problem umzugehen. Wir lehrten das Neuronale Netz zu tun Wechselkurs (oder Wechselkurs-basierte Indikator) Vorhersage, und dann verwendet diese Vorhersage zu tun Handel. Dann, außerhalb der Neural Network Teil des Programms, haben wir eine Entscheidung, auf die Neural Network ist die beste. Genetische Algorithmen können mit diesem Problem direkt umgehen, können sie lösen das Problem als die besten Trading-Signale finden. In diesem Artikel werden wir Cortex Neural Networks Software verwenden, um ein solches Programm zu erstellen. Mit genetischen Algorithmen genetische Algorithmen sind sehr gut entwickelt und sehr vielfältig. Wenn Sie alles über sie lernen wollen, schlage ich vor, Sie verwenden Wikipedia, da dieser Artikel nur darüber, was Cortex Neural Networks Software tun kann. Mit der Cortex Neural Networks Software. Können wir ein Neuronales Netz schaffen, das einige Werte, beispielsweise Werte eines Indikators, annimmt und einige Outputs erzeugt, zB Handelssignale (Kauf, Verkauf, Halten) und Stopverlust die Gewinnspanne für Positionen, die geöffnet werden sollen. Natürlich, wenn wir diese Neural Network s Gewichte zufällig seed, werden die Handelsergebnisse schrecklich sein. Allerdings können wir sagen, wir haben ein Dutzend solcher NNs. Dann können wir testen Leistung von jedem von ihnen, und wählen Sie die beste, der Gewinner. Dies war die erste Generation von NNs. Um mit der zweiten Generation fortzufahren, müssen wir unseren Siegern erlauben, sich zu formen, aber um zu vermeiden, identische Kopien zu erhalten, können wir einige zufällige Geräusche zu den Absenkungsgewichten hinzufügen. In der zweiten Generation haben wir unseren ersten Sieger und seine unvollkommenen (mutierten) Kopien. Lassen Sie uns erneut testen. Wir haben einen weiteren Sieger, der BESSER ist als jedes andere Neuronale Netzwerk in der Generation. Und so weiter. Wir erlauben es den Gewinnern, zu züchten und die Verlierer zu eliminieren, genau wie in der wirklichen Evolution, und wir werden unser bestes Trading Neural Network bekommen. Ohne vorheriges Wissen über das, was das Handelssystem (genetischer Algorithmus) sein sollte. Neuronales Netzwerk Genetischer Algorithmus: Beispiel 0 Dies ist das erste Beispiel eines genetischen Algorithmus. Und eine sehr einfache. Wir werden Schritt für Schritt durch sie gehen, um alle Tricks zu lernen, die folgende Beispiele nutzen werden. Der Code hat Inline-Kommentare, so können nur auf wichtige Momente konzentrieren. Zuerst haben wir ein neuronales Netzwerk geschaffen. Es ist mit zufälligen Gewichten, und wurde noch nicht unterrichtet. Dann, im Zyklus, machen wir 14 Kopien davon, mit MUTATIONNN fumction. Diese Funktion macht eine Kopie eines Quell-Neuronalen Netzes. Zufallswerte von 0 bis (in unserem Fall) 0,1 zu allen Gewichten addieren. Wir halten Griffe zu resultierenden 15 NNs in einem Array, können wir es tun, da Handle ist nur eine ganze Zahl. Der Grund, warum wir 15 NNs verwenden, hat nichts mit dem Handel zu tun: Cortex Neural Networks Software kann bis zu 15 Zeilen auf einem Chart gleichzeitig darstellen. Wir können verschiedene Ansätze für die Prüfung verwenden. Zuerst können wir das Lernset verwenden, alles auf einmal. Zweitens können wir auf 12000 Resonanzen (von 100000) testen und durch das Lernset gehen, von Anfang bis Ende. Das wird lernen, verschiedene, wie wir für Neural Network s, die profitabel sind, auf einem bestimmten Teil der Daten, nicht nur auf den gesamten Satz zu suchen. Der zweite Ansatz kann uns Probleme, wenn Daten ändern, von Anfang bis Ende. Dann wird das Netzwerk entwickeln, die Fähigkeit zu erwerben, am Ende des Datensatzes handeln, und verlieren Fähigkeit, den Handel an seinem Anfang. Um dieses Problem zu lösen, werden wir zufällige 12000 Datensätze Fragmente aus Daten zu nehmen, und füttern sie an das neuronale Netzwerk. Ist einfach ein endloser Zyklus, da 100000 Zyklen nie bei unserer Geschwindigkeit erreicht werden. Darunter fügen wir ein Kind für jedes Netzwerk, mit etwas anderen Gewichten. Beachten Sie, dass 0,1 für Mutation Tange ist nicht die einzige Wahl, wie die Tatsache, auch dieser Parameter kann mit Hilfe von genetischen Algorithmus optimiert werden. Neu erstellte NNs werden nach 15 bestehenden hinzugefügt. Auf diese Weise haben wir 30 NNs in einem Array, 15 alte und 15 neue. Dann werden wir den nächsten Testzyklus durchführen und Verlierer von beiden Generationen töten. Um Tests durchzuführen, wenden wir Neuronales Netz an unsere Daten an, um Ausgänge zu erzeugen und dann Testfunktion aufzurufen, die diese Ausgänge zur Simulation des Handels verwendet. Die Ergebnisse des Handels werden verwendet, um zu entwerten, welche NNs am besten sind. Wir verwenden ein Intervall von nLearn-Datensätzen, von nStart bis nStart nLearn, wobei nStart ein zufälliger Punkt innerhalb des Lernsatzes ist. Der Code unten ist ein Trick. Der Grund, warum wir es verwenden, ist die Tatsache zu veranschaulichen, dass genetischer Algorithmus einen genetischen Algorithmus erzeugen kann. Aber es wird nicht notwendigerweise die beste sein, und auch, um vorzuschlagen, dass wir das Ergebnis verbessern können, wenn wir einige Einschränkungen des Lernprozesses implizieren. Es ist möglich, dass unser Handelssystem sehr gut auf langen Trades funktioniert und sehr schlecht auf kurzem, oder umgekehrt. Wenn, sagen wir, lange Trades SEHR gut sind, kann dieser genetische Algorithmus gewinnen, auch mit großen Verlusten auf Short Trades. Um es zu vermeiden, weisen wir den Long-Trades in ungeraden und kurzen Trades in gleichmäßigen Zyklen mehr Gewicht zu. Dies ist nur ein Beispiel, es gibt keine Garantie, dass es etwas verbessern wird. Mehr darüber unten, in der Diskussion über Korrekturen. Technisch müssen Sie es nicht tun, oder können es anders machen. Fügen Sie einem sortierten Array einen Gewinn hinzu. Es gibt eine Einfügeposition zurück, dann verwenden wir diese Position, um Neural Network Griff hinzuzufügen, Lernen und Testen von Gewinnen in nicht sortierte Arrays. Jetzt haben wir Daten für das aktuelle Neuronale Netzwerk mit dem gleichen Array-Index wie sein Gewinn. Die Idee ist, zu Array von NNs, sortiert nach Rentabilität zu gelangen. Da Array nach Gewinn sortiert ist, um 1 2 von Netzwerken zu entfernen, die weniger rentabel sind, müssen wir nur NNs 0 bis 14 entfernen. Entscheidungen für den Handel basieren auf dem Wert des Neuronalen Netzwerksignals, aus diesem Blickwinkel ist das Programm identisch mit Beispielen Vom vorherigen Artikel. FOREX Trading-Strategie: Diskussion Beispiel 0 Zunächst einmal können wir einen Blick auf Charts. Das erste Diagramm für Profit während der ersten Iteration ist nicht gut, wie zu erwarten ist, verliert das Neuronale Netz Geld (Bild evolution00gen0.png kopiert nach der ersten Iteration aus dem Bilder-Ordner): Das Bild für Profit auf Zyklus 15 ist manchmal besser , Genetische Algorithmus kann wirklich schnell lernen: Allerdings bemerken die Sättigung auf einer Gewinn-Kurve. Interessant ist auch, wie sich einzelne Profite verändern, wobei man bedenkt, dass die Kurvenzahl, sagen wir, 3 nicht immer für dasselbe Neuronale Netz gilt. Wie sie geboren und beendet werden die ganze Zeit: Beachten Sie auch, dass aus kleinen Forex-automatisierte Handelssystem führt schlechte auf kurze Trades, und viel besser auf Longs, die möglicherweise mit der Tatsache, dass der Dollar im Vergleich zu sinken In diesem Zeitraum. Es kann auch etwas mit den Parametern unseres Indikators zu tun haben (vielleicht brauchen wir verschiedene Zeit für Shorts) oder die Wahl der Indikatoren. Hier ist die Geschichte nach 92 und 248 Zyklen: Zu unserer Überraschung, genetischen Algorithmus völlig versagt. Lets versuchen, herauszufinden, warum, und wie die Situation zu helfen. Zunächst einmal, ist nicht jede Generation soll besser als die previuos ein Die Antwort ist nein, zumindest nicht innerhalb des Modells, das wir verwendet haben. Wenn wir ENTIRE Lernen auf einmal gesetzt und es immer wieder verwendet, um unsere NNs zu lehren, dann ja, werden sie auf jede Generation zu verbessern. Stattdessen nahmen wir zufällige Fragmente (12000 Datensätze in der Zeit), und verwendet sie. Zwei Fragen: Warum das System fehlgeschlagen auf zufällige Fragmente von Lern-Set, und warum havent wir ganze Lern-Set verwendet Nun. Um die zweite Frage zu beantworten, habe ich. NNs durchgeführt sehr - auf Lern-Set. Und sie fehlgeschlagen beim Testen Set, aus dem gleichen Grund scheitert es, wenn wir FFPB-Lernen verwendet. Um es anders auszudrücken, wurden unsere NNs überspezialisiert, sie haben gelernt, in der Umgebung zu überleben, die sie gewohnt sind, aber nicht draußen. Das geschieht sehr viel in der Natur. Der Ansatz, den wir stattdessen beabsichtigten, war zu kompensieren, dass durch die zwingende NNs, gut auf jedem zufälligen Fragment des Datensatzes durchzuführen, so dass hoffentlich konnten sie auch auf einem unbekannten Testset durchführen. Stattdessen scheiterten sie sowohl beim Testen als auch beim Lernsatz. Stellen Sie sich vor, Tiere, die in einer Wüste leben. Viel Sonne, kein Schnee. Dies ist eine Metafor für rizing Markt, wie für unsere NNs Daten spielen die Rolle der Umwelt. Tiere lernten, in einer Wüste zu leben. Stellen Sie sich vor, Tiere, die in einem kalten Klima zu leben. Schnee und keine Sonne. Nun, sie stellten sich. Allerdings haben wir in unserem Experiment zufällig unsere NNs in einer Wüste, im Schnee, im Wasser, an den Bäumen platziert. Indem man sie mit verschiedenen Datenfragmenten (zufällig steigend, fallend, flach) präsentiert. Tiere starben. Um es anders auszudrücken, haben wir das beste Neuronale Netzwerk für den Zufallsdatensatz 1 ausgewählt, der zum Beispiel für den steigenden Markt war. Dann stellten wir den Gewinnern und ihren Kindern eine sinkende Marktdatenlage vor. NNs schlecht durchgeführt haben, nahmen wir am besten von schlechten Leistungsträgern, vielleicht, einer der mutierten Kinder, die Fähigkeit verloren, auf dem steigenden Markt zu handeln, aber bekam einige Fähigkeit, mit fallender zu bewältigen. Dann drehten wir den Tisch wieder um, und wieder haben wir den besten Spieler - aber am besten unter schlechten Künstlern. Wir haben einfach nicht unsere NNs alle Chancen, universal zu werden. Es gibt Techniken, die den genetischen Algorithmus erlauben, neue Informationen zu erlernen, ohne die Leistung auf alten Informationen zu verlieren (schließlich können die Tiere im Sommer und im Winter leben, richtig, so Evolution ist in der Lage, wiederholende Änderungen zu behandeln). Wir können diese Techniken später zu diskutieren, obwohl dieser Artikel ist mehr über die Verwendung von Cortex Neural Networks Software. Als über den Aufbau eines erfolgreichen Forex-automatisierten Handelssystems. Neuronales Netz Genetischer Algorithmus: Beispiel 1 Jetzt ist es Zeit, über Korrekturen zu sprechen. Ein einfacher genetischer Algorithmus, den wir im vorigen Schritt erstellt haben, hat zwei Hauptfehler. Erstens gelang es nicht, mit Gewinn zu handeln. Es ist ok, wir können versuchen, teilweise geschultes System zu benutzen (es war am Anfang rentabel). Der zweite Fehler ist ernster: wir haben keine Kontrolle über Dinge, die dieses System tut. Zum Beispiel kann es lernen, rentabel zu sein, aber mit riesigen Drawdowns. Es ist eine bekannte Tatsache, dass Evolution im wirklichen Leben mehr als einen Parameter gleichzeitig optimieren kann. Zum Beispiel können wir ein Tier bekommen, das schnell laufen kann und resistent gegen Kälte sein kann. Warum nicht zu versuchen, das Gleiche in unserem Forex-automatisierten Handelssystem. Das ist, wenn wir Korrekturen verwenden, die nichts als die Menge der zusätzlichen Strafen sind. Sagen wir, unser System handelt mit Drawdown 0.5, während wir es auf 0 - 0.3 Intervall bestätigen wollen. Um dem System zu sagen, dass es einen Fehler gemacht hat, verringern wir seinen Profit (einer verwendet, um zu bestimmen, welcher genetische Algorithmus gewonnen hat) in dem Grad, der proportional zur Größe von DD ist. Dann kümmert sich der Evolutionsalgorithmus um den Rest. Es gibt nur wenige weitere Faktoren, die wir in Betracht ziehen wollen: Vielleicht möchten wir mehr oder weniger gleich viele Kauf - und Verkaufsgeschäfte haben, wir wollen mehr rentable Geschäfte haben, dann von Ausfällen können wir die Gewinndiagramme wollen Linear sein und so weiter. In evolution01.tsc implementieren wir einen einfachen Satz von Korrekturen. Zuerst verwenden wir eine große Zahl für einen anfänglichen Korrekturwert. Wir multiplizieren es mit einem kleinen (in der Regel zwischen 0 und 1) Werte, abhängig von der Strafe, die wir anwenden möchten. Dann multiplizieren wir unseren Gewinn mit dieser Korrektur. Als Ergebnis wird der Gewinn korrigiert, um zu reflektieren, wie viel der genetische Algorithmus unseren anderen Kriterien entspricht. Dann verwenden wir das Ergebnis, um einen Gewinner Neural Network zu finden. FOREX Handelsstrategie: Beispiel 1 Beispiel 1 arbeitet viel besser als Beispiel 0. Während der ersten 100 Zyklen hat es viel gelernt, und Gewinndiagramme sehen beruhigend aus. Allerdings sind, wie in Beispiel 0, lange Trades viel mehr rentabel, was wahrscheinlich bedeutet, dass es ein Problem in unserem Ansatz. Dennoch hat das System eine Balance zwischen zwei widersprüchlichen Anfangsbedingungen gefunden: Es gibt einige positive Dynamiken sowohl beim Lernsatz als auch, noch wichtiger, beim Testen. Wie für weiteres Lernen, bei Zyklus 278 können wir sehen, dass unser System übertraf. Es bedeutet, dass wir noch Fortschritte beim Lernen haben: Aber Testset zeigt Schwäche: Dies ist ein häufiges Problem mit NNs: Wenn wir es lernen, lernen, lernt es, damit umzugehen, und manchmal lernt es zu gut - um die Grad, wenn es verliert Leistung auf Testsatz. Um dieses Problem zu lösen, wird eine herkömmliche Lösung verwendet: Wir suchen das Neuronale Netz. Die am besten auf dem Test-Set durchgeführt wird, und speichern Sie es, überschreiben vorherige beste, jedes Mal, wenn neue Spitze erreicht wird. Dies ist der gleiche Ansatz, den wir in FFBP-Training, außer, diesmal haben wir es selbst tun (Hinzufügen von Code, der für ein bestes Neuronales Netzwerk sucht auf einem Test-Set und Aufruf von SAVENN oder Exportieren von Gewichten von Neural Network zu einem Datei). Auf diese Weise, wenn Sie Ihr Training zu stoppen, youll haben die besten Darsteller ON TESTING SET gespeichert und warten auf Sie. Beachten Sie auch, dass es nicht die max. Profitieren Sie nach, aber optimale Leistung, so betrachten Korrekturen, bei der Suche nach einem besten Darsteller auf einem Test-Set. Genetischer Algorithmus für FOREX Technische Analyse: Wo jetzt Nachdem Sie Ihre Gewinner erhalten Neuronales Netzwerk. Können Sie die im vorherigen Artikel beschriebenen Schritte ausführen, um die Gewichte dieses Neuronalen Netzwerks zu exportieren. Und dann nutzen sie in Ihrer Echtzeit-Handelsplattform, wie Meta Trader, Trade Station und so weiter. Alternativ können Sie sich auf andere Möglichkeiten der Optimierung des Neuronalen Netzes konzentrieren. Anders als mit FFBP-Algorithmus, hier können Sie Avay aus mit Lern-und Test-Sets zu erhalten, und verschieben sequentiellen Lernen. Download Cortex Order Cortex Preisliste ansehen Die Sichtbarkeit ist für diese Seite sehr wichtig. Wenn es Ihnen gefällt, klicken Sie bitte auf diese URL


No comments:

Post a Comment