Neuronale Netzwerke Forex Trading
MetaTrader 4 - Beispiele Rezepte f252r neuronale Netzwerke Einleitung Es ist noch nicht jadi lange dia, als Hndler noch keine Komputer fr mati technische Menganalisis hatten und versucht haben mit Hilfe von Formeln und Regelmigkeiten, die durch sie erfunden wurden, die zuknftigen Kurse zu prognostizieren. Sie wurden sering juga Scharlatane bezeichnet. Die Zeit verging, die Methoden der Informationsverarbeitung sind komplizierter geworden, und es gibt kaum noch Hndler, denen die technische Menganalisis gleichgltig ist. Jeder Anfnger kann ganz einfach Chart, verschiedene Indikatoren sowie die Suche nach Regelmigkeiten nutzen. Die Zahl der Forex-Hndler wchst tglich. Tokoh pencuri auch die Anforderungen fr die Methoden zur Marktanalyse. Eine dieser relativ neuen Methoden ist die Verwendung von theoryischen Fuzzy-Logiken dan neuronalen Netzwerken. Wir stellen fest, dass Fragen zu diesem Thema aktiv di verschiedenen thematischen Foren diskutiert werden. Es gibt sie und es wird sie weiterhin geben. Ein Mensch, der den Markt einmal betreten hat, wird ihn kaum mehr verlassen. Es ist eine Herausforderung berpisah dengan Intelligenz, das Gehirn dan tidak meninggal Willensstrke. Deshalb hrt ein Hndler nie auf, etwas Neues zu lernen und verschiedene Anstze di die Praxis umzusetzen. Diesem Artikel werden wir die Grundlagen zur Erstellung neuronaler Netze analysieren und mehr ber den Begriff des Kohonen neuronalen Netz erfahren. Auerdem werden wir ein wenig ber die Methoden der Handelsoptimierung sprechen. Dieser Artikel ist vor allem fr Hndler gedacht, die am Anfang sind beim Studieren der neuronalen Netze und der Prinzipien der Informationsverarbeitung. Um ein neuronales Netzwerk mit der Kohonen-Schicht zu kochen, pria bentigt: 1) 10.000 riwayat hidup Balken eines Whrungspaars 2) 5 Gramm gleitende Durchschnitte (Moving Averages) oder andere Indikatoren - dies ist Ihre Entscheidung 3) 2-3 Schichten der inversen Verteilung 4 ) Methoden der Optimierung als Fllung 5) wachsender Saldo und eine steigende Zahl seorang richtig erratenen Richtungen beim Handel. Abschnitt I. Rezept der Kohonen-Schicht Dimulai dengan mitos Abschnitt fr diejenigen, mati ganz am Anfang stehen. Wir werden verschiedene Anstze zum Einarbeiten der Kohonen-Schicht oder um genauer zu sein, dessen Basisvers diskutieren, denn es gibt viele Varianten davon. Es gibt eigentlich nichts Besonderes diesem Kapitel, alle Erklrungen stammen von den klassischen Referenzen zu diesem Thema. Der Vorteil dieses Kapitels ist jedoch mati groe Anzahl von erluternden Abbildungen zu jedem Abschnitt. Dienem Kapitel werden wir auf folgende Fragen eingehen: - die Art und Weise wie Kohonen Wichtungsvektoren eingestellt werden - vorlufige Vorbereitung von Eingabevektoren - Auwahl der ursprnglichen Gewichtungen der Kohonen Neuronen. Laut Wikipedia reprsentiert ein Kohonen neuronales Netzwerk eine Klasse von neuronalen Netzwerken, wobei das Hauptelement von ihnen die Kohonen-Schicht ist. Die Kohonen-Schicht besteht aus adaptasi linier Addierern (linier formale Neuronen). Di der Regel werden mati Ausgangssignale der Kohonen-Schicht nach der Regel der Gewinner bekommt alles verarbeitet: die grten Signale verwandeln sich di Einser, alle anderen Signale werden zu Nullen. Nun wollen wir diesen Gedanken mit Hilfe eines Beispiels errtern. Zum Zwecke der Visualisierung werden alle Berechnungen fr zweidimensionale Eingabevektoren angegeben. Di der Abb. 1 wird der Eingabevektor di Farbe dargestellt. Jedes Neuron der Kohonen-Schicht (wie auch bei jeder anderen Schicht) summiert einfach die Eingabe und multipliziert diese mit der Gewichtung. Eigentlich sind alle Gewichtungen der Kohonen-Schicht Vektor-Koordinaten fr dieses Neuron. Daher ist Ausgabe eines jeden Kohonen Neurons das Punktprodukt von zwei Vektoren. Von der Geometrie wissen wir, dass das maximale Punktprodukt entseht, wenn der Winkel zwischen Vektoren Richtung Null tendiert (der Kosinus-Winkel tendiert zu 1). Der maximale Wert wird juga jener des Kohonen-Schicht Neurons sein, das am nhesten zum Eingabevektor ist. Abb.1 Der Gewinner ist das Neuron, dessen Vektor am nhesten zum Eingangssignal ist. Entsprechend der Definisi sollten wir jetzt den maximalen Ausgabewert unter allen Neuronen finden, dessen Ausgabe eine Eins und allen anderen Neuronen eine Null zuweisen. Und die Kohonen-Schicht wird uns antworten, di welchem Raumbereich der Eingabevektor liegt. Anpassung der Kohonen Gewichtungsvektoren Der Zweck der Einarbeitung mit der Kohonen-Schicht ist wie bereits oben geschrieben, die przise Raumklassifizierung der Eingabevektoren. Dies bedeutet, dass jedes Neuron fr seinen ganz bestimmten Bereich verantwortlich sein muss, in dem es der Gewinner ist. Der Abweichungsfehler des Gewinner-Neurons vom Eingabeneuron muss kleiner sein als jener der anderen Neuronen. Um das zu erreichen, verwandelt sich das Gewinner-Neuron di die Seite des Eingabevektors. Abb. 2 zeigt mati Teilung von zwei Neuronen (schwarze Neuronen) fr zwei Eingabevektoren (die farbigen). Abb. 2: Jedes der Neuronen nhert sich seinem nchsten Eingangssignal. Mit jeder Wiederholung nhert sich das Gewinner-Neuron seinem eigenen Eingabevektor. Seine neuen Koordinaten werden entsprechend der folgenden Formel berechnet: wobei A (t) der Parameter der Einarbeitunsgeschwindigkeit ist und von der Zeit t abhngt. Dies ist eine nicht ansteigende Funktion, die bei jeder Wiederholung von 1 auf 0 reduziert wird. Wenn der Anfangswert A1 ist, wird die Gewichtungskorrektur di einem Schritt vorgenommen. Dies ist mglich, wenn es fr jeden Einangsvektor ein Kohonen-Neuron gibt (zum Beispiel 10 Eingabevektoren und 10 Neuronen in der Kohonen-Schicht). Di der Praxis tritt begitu cepat jatuh, cepat di Egerabedaten di Gruppen aufgeteilt werden muss, wodurch sich die Vielfalt der Eingabedaten verringert. Deshalb ist der Wert A1 unerwnscht. Die Praxis zeigt, dass der optimale Anfangswert unter 0,3 sein sollte. Auerdem ist A umgekehrt proporsional zu der Anzahl der Eingabevektoren. Das heit bei einer groen Auswahl ist es besser, kleine Korrekturen vorzunehmen, jadi dass das Gewinner-Neuron nicht durch den ganzen Raum in seinen Korrekturen surft. Als A-Funktionalitt wird in der Regel jede monoton fallende Funktion gewhlt. Zum Beispiel Hiperbel oder lineare Abnahme oder die Gau-Funktion. Abb. 3 zeigt den Schritt der Neuronengewichtungskorrektur bei der Geschwindigkeit A0,5. Das Neuron topi sich dem Eingabevektor genhert, der Fehler ist kleiner. Abb. 3: Neuronengewichtungskorrektur unter dem Einfluss des Eingangssignals. Kleine Anzahl von Neuronen dalam breeder einem Beispiel Abb. 4: Neuron Schwohungen zwischen zwei Eingabevektoren. Di der Abb. 4 (link) gibt es zwei Eingabevektoren (dalam Farbe angezeigt) und nur ein Kohonen Neuron. Im Prozess der Korrektur wird das Neuron von einem Vektor zu einem anderen schwingen (gepunktete Linien). Da der A-Wert sich bis 0 verringert, stabilisiert es sich zwischen ihnen. Die Neuron-Koordinaten, die sich von Zeit zu Zeit ndern, knnen durch eine Zick-Zack-Linie charakterisiert werden (Abbs 4 rechts). Abb. 5: Abhngigkeit des Klassifikationstyps hinsichtlich der Anzahl von Neuronen. Eine weitere Situasi wird di Abb 5. gezeigt. Im ersten Jatuh teilen vier Neuronen mati Probe ausreichend di vier Bereiche der Hyperkugel. Im zweiten Fall fhrt die ungengende Anzahl von Neuronen zu einem Fehler und zur Neuklassifizierung der Probe. Wir knnen somit daraus schlieen, dass die Kohonen-Schicht eine ausreichende Anzahl von freien Neuronen erhalten muss, die vom Volumen der klassifizierten Probe abhngt. Vorlufige Vorbereitung der Eingabevektoren Wie Philip D. Wasserman di seinem Buch schreibt, ist es wnschenswert (wenn auch nicht obligatorisch), mati Eingabevektoren zu normalisieren, bevor Sie sie in das Netz einfhren. Dies wird durch das Aufteilen einer jeden Komponenten des Eingabevektors durch die Vektorlnge erledigt. Diese Lnge wird durch die Extraktion der Quadratwurzel aus der Summe der Quadrate der Vektorkomponenten gefunden. Dies ist die algebraische Darstellung: Dies wandelt den Eingabevektor in einen Einheitsvektor mit der gleichen Richtung um, das heit einen Vektor mit der Lngeneinheit im n-dimensionalen Raum. Die Bedeutung dieser Operasi ist klar - das Pojizieren aller Eingabevektoren auf der Oberflche der Hyperkugel, wodurch die Aufgabe, die Kohonen-Schicht zu suchen, erleichtert wird. Mit anderen Worten, fr mati Suche nach dem Winkel zwischen den Eingabevektoren und den Vektoren-Kohonen-Neuronen, sollten wir solch einen Faktor wie die Vektorlnge eliminieren, um die Chancen aller Neuronen auszugleichen. Sehr sering meninggal Elemente von Probevektoren keine negativen Werte (zum Beispiel Werte von Moving Averages, Kursen). Sie alle konzentrieren sich auf den positif Quadranten im Raum. Als Ergebnis der Normalisierung einer solchen positiven Probe erhalten wir die groe Ansammlung von Vektoren in nur einem positiven Bereich, nicht sehr gut fr die Kualifikasi ist. Deshalb kann vor der Normalisierung der Probe eine Glttung durchgefhrt werden. Wenn die Probe ziemlich gro ist, knnen wir davon ausgehen, dass sich die Vektoren in etwa in einem Bereich befinden, ohne Auenseiter, die weit entfernt von der Hauptprobe sind. Deshalb kann eine Probe relativ zu ihren extremen Koordinaten zentriert werden. Abb. 6: Normalisierung der Eingabevektoren. Wie oben geschrieben, ist die Normalisierung der Vektoren wnschenswert. Sie vereinfacht meninggal Korrektur der Kohonen-Schicht. Wir sollten jedoch deutlich eine Probe darstellen und entscheiden, ob sie auf einer Kugel projiziert werden soll oder nicht. Liste 1. Verschmlerung der Eingabevektoren im Bereich -1, 1 Wenn wir die Eingabevektoren normalisieren, sollten wir auch dementsprechend alls Neuronen-Gewichtungen normalisieren. Auswhlen der ursprnglichen Neuronen-Gewichtungen Die mglichen Varianten sind zahlreich. 1) Zufllige Werte werden den Gewichtungen zugeordnet, wie es blich mit Neuronen gemacht wird (Randomisierung) 2) Initialisierung durch Beispiele, wenn Werte von zufllig ausgewhlten Beispielen aus einer Einarbeitungsprobe als Anfangswerte zugeordnet sind 3) Lineare Initialisierung. Dienem Fall werden die Gewichtungen durch Vektorwerte initiiert, die linear entlang des gesamten linearen Raums zwischen zwei Vektoren aus dem ursprnglichen Datensatz angeordnet sind. 4) Alle Gewichtungen haben den gleichen Wert - Methode der konvexen Kombination. Lassen Sie uns den ersten und letzten Fall analysieren. 1) Zufallswerte werden den Gewichtungen zugeordnet. Whrend der Randomisierung werden alle Vektor-Neuronen auf der Oberflche einer Hyperkugel verteilt. Whrend die Eingabevektoren eine Tendenz zur Gruppierung haben. Diesem Fall kann es vorkommen, dass einige Gewichtungsvektoren jadi viel Abstand von Eingabevektoren haben, dass sie niemals eine bessere Korelasi geben und daher nicht lernen knnen - graue Objekte in Abb. 7 (rechts). Darber hinaus werden die verbleibenden Neuronen nicht ausreichen, um den Fehler zu minimieren und hnliche Klassen zu unterteilen - die rote Klasse ist im grnen Neuron enthalten. Abb. 7: Einarbeitungsergebnis von randomisierten Neuronen. Und Wenn es eine groe Ansammlung von Neuronen di einem Bereich gibt, knnen mehrere Neuronen di den Bereich einer Klasse eindringen und diesen di Unterklassen teilen - orangefarbener Bereich di Abb. 7. Dies ist nicht kritisch, da die Weiterverarbeitung der Schichtsignale die Situation beheben kann. Dies dauert jedoch die Einarbeitungszeit ber. Eine der Varianten zum Lsen dieser Soal ist die Methode, wenn bei den Anfangsstufen die Korrektur nicht nur fr Vektoren eines gewinnenden Neuron gemacht wird, sondern auch fr die Gruppe von Vektoren, die am nchsten liegt. Dann wird sich meninggal Anzahl der Neuronen di der Gruppe allmhlich verringern und letztendlich wird nur ein Neuron korrigiert. Eine Gruppe kann aus einem sortierten Array von Neuronen-Ausgngen ausgewhlt werden. Neuronen von den ersten K Maximal-Ausgangssignalen werden korrigiert. Eine weitere Vorgehensweise zur gruppierten Anpassung der Gewichtungsvektoren ist das folgende Verfahren. A) Fr jedes Neuron wird die Lnge des Korrekturvektors definiert:. B) Ein Neuron mit minimalem Abstand wird zum Gewinner Wn. Danach wird eine Gruppe von Neuronen gefunden, meninggal dalam Korelasi zu den Grenzen der Distanz CLn von Wn stehen. C) Gewichtungen dieser Neuronen werden durch eine einfache Regel korrigiert. Somit wird die Korrektur der gesamten Probe gemacht. Der Parameter C ndert sich im Prozess der Einarbeitung von einer Nummer (blicherweise 1) auf 0. Die dritte interessante Methode bedeutet, dass jedes Neuron nur Nk Mal korrigiert werden wann, wenn es durch die Probe kommt. N ist hier meninggal Gre der Probe, k-die Anzahl der Neuronen. Das heit, eines der Neuronen wird fter zum Gewinner als andere. Es beendet das Spiel wenn das Passieren der Probei vorbei ist. Dadurch knnen auch andere Neuronen lernen. 2) Metoda der Konvexkombination Die Bedeutung des Verfahrens beinhaltet, dass sowohl mati Gewichtung juga auch die Eingabevektoren zunchst in einem Bereich angeordnet sind. Die Berechnungsformeln fr die aktuellen Koordinaten der Eingabe - und ursprnglichen Gewichtungsvektoren sind die folgenden: wobei n die Dimensi eines Eingabevektors, a (t) - die nicht abnehmende Funktion der Zeit ist. Mit jeder Wiederholung erhht sich dessen Wert von 0 auf 1, wodurch alle Eingabevektoren mit den Gewichtungsvektoren bereinstimmen und schlielich ihre Pltze einnehmen. Auerdem werden die Gewichtungsvektoren nach ihren Klassen greifen. Dies sind alle Materialien zur Basisversion der Kohonen-Schicht, mati diesem neuronalen Netzwerk angewendet werden. II. Lffel, Schpfkellen dan Skripte Das erste Skript, das wir diskutieren werden, sammelt Daten ber Balken und erstellt eine Datei von Eingabevektoren. Lassen Sie uns MA als Traininsbeispiel verwenden. Liste 2. Erstellen einer Datei von Eingabevektoren Die Datendatei wird als Mittel zur bertragung von Informasi zwischen Anwendungen geschaffen. Wenn Sie die Einarbeitungs - Algoritma kennenlernen, wird dringend empfohlen, dass Sie die Zwischenergebnisse ihrer Aktivitten, die Werte einiger Variablen und falls notwendig, die nderungen der Traininsbedingungung beobachten. Deshalb empfehlen wir Ihnen, die Programmiersprache eines hohen Niveaus (VB, VC dll) zu verwenden, whrend das Debuggen mit MQL4 nicht genug ist (ich hoffe, diese Situasi wird di MQL5 verbessert). Spter, wenn Sie ber alle Tcken Ihrer Algorithmen und Funktionen erfahren haben, knnen Sie beginnen, MQL4 zu verwenden. Auerdem mssen Sie das endgltige Ziel (Indikator Expert Advisor lainnya) di MQL4 schreiben. Verallgemeinerte Struktur der Klassen Liste 3. Klasse des neuronalen Netzwerks Eigentlich ist die Klasse nicht komplex. Sie enthlt den wichtigsten Satz Service Variable. Lassen Sie uns sie analysieren. Auf Anweisung memilih Befehls vom Benutzer, keduanya bisa mampir Interface-Klasse einen Arbeits-Thread dan awal dari waktu Timer fr das periodische Auslesen der Netzwerkwerte. Sie empfngt auch Indexe zum Auslesen der Informationen aus Parametern neuronaler Netzwerke. Der Arbeits-Thread wiederum liest die Array von Eingabe-Ausgabevektoren aus der vorlufig ausgearbeiteten Datei aus und stellt die Parameter fr die Schichten ein (die Schichttypen und die Anzahl der Neuronen in jeder Schicht). Dies ist die Vorbereitungsphase. Danach rufen wir die Funktion CNeuroNet :: Init auf, in der die Gewichtungen earlyisiert werden, die Probe normalisiert wird und die Einarbeitungsparameter eingestellt werden (Geschwindigkeit, Impuls, erforderlicher Fehler und die Anzahl der Traininszyklen). Und erst danach rufen wir die Arbeitspferd Funktion - CNeuroNet :: TrainNetwork (ost TrainMPS. Oder TrainNetwork (int L) auf, je nachdem, adalah wir erhalten wollen). Wenn die Einarbeitung vorbei ist, speichert der Arbeits-Thread die Netzwerkgewichtungen in eine Datei fr die Implementierung der leten in einen Indikator Expert Advisor lainnya. AKU AKU AKU. Backen des Netzwerks Kommen wir nun zu den Problemen beim Einarbeiten. Die bliche Praxis di der Einarbeitung legt das Paar Muster-Lehrer fest. Das ist ein bestimmtes Ziel, das jedem einzelnen Eingabemuster entspricht. Auf der Grundlage der Differenz zwischen der aktuellen Eingabe und dem Sollwert wird die Korrektur der Gewichtungen durchgefhrt. Zum Beispiel mchte ein Peneliti haben, dass das Netz den Kurs des darauffolgenden Balkens anhand der vorherigen 10 Balken prognostiziert. Diesem Fall mssen wir nach der Eingabe der 10 Werte das erhaltene Ergebnis mit dem Lernwert vergleichen und dann die Gewichtungen fr den Unterschied zwischen ihnen korrigieren. Di dem Modell, das wir anbieten, gibt es keine Lern-Vektoren im blichen Sinne, wir nicht im Voraus wissen, bei welchen Balken wir den Markt betreten verlassen sollten. Das bedeutet, dass unser Netzwerk seine Ausgabevektoren auf der Grundlage seiner eigenen frheren Ausgabewerte korrigieren wird. Das bedeutet, dass das Netzwerk versuchen wird, kemudian maksimalen Gewinn zu erhalten (Maximierung der Anzahl der richtig vorhergesagten Richtungen im Markt). Betrachten wir das Beispiel di Abb. 8. Abb. 8: Skema des eingearbeiteten neuronalen Netzwerks. Die Kohonen-Schicht, die anhand einer Probe voreingearbeitet ist, gibt seinen Vektor sebuah das Netzwerk weiter. Bei der Ausgabe der letzten Schicht des Netzwerks, haben wir den Wert OUT, der auf folgende Weise interpretiert wird. Wenn OUT gt0,5 ist, gehen Sie eine Kaufposition ein wenn OUT lt0,5 ist, gehen Sie eine Verkaufsposition ein (die sigmoiden Werte werden in Grenzen verndert 0, 1). Angenommen zu einem gewissen Eingabevektor X 1 hat das Netzwerk durch mati Ausgabe OUT 1 gt0,5 geantwortet. Das bedeutet, dass wir auf dem Balken, zum dem das Muster gehrt, wir eine Kaufposition ffnen. Danach verwandelt sich bei der chronologischen Darstellung der Eingabevektoren nach einigen X k das Zeichen OUT k in das Gegenteil. Folglich schlieen wir die Kaufposition und ffnen eine Verkaufsposition. Genau diesem Moment mssen wir das Ergebnis der geschlossenen Order betrachten. Wenn wir einen Gewinn erhalten, knnen wir diesn Alarm strken. Lain wir knnen erachten, dass es keinen Fehler gibt und wir nichts korrigieren werden. Wenn wir einen Verlust erhalten, korrigieren wir die Gewichtungen der Schichten in einer solchen Weise, dass die Eingabe durch den Alarm des X 1 Vektors OUT 1 lt0,5 anzeigt. Nun wollen wir den Wert der Lern - (Ziel) - Ausgabe berechnen. Lassen Sie uns daher den Wert eines Sigmoiden aus dem erhaltenen Verlust (dalam Punkten) nehmen und multiplizieren ihn mit dem Zeichen der Handelsrichtung. Folglich gilt, dass je grer der Verlust ist, desto strenger das Netzwerk bestraft und seine Gewichtungen durch den greren Wert korrigieren werden wird. Wenn wir zum Beispiel 50 Verlustpunkte bei einer Andafposition haben, dann wird die Korrektur fr die Ausgabeschicht wie unten dargestellt berechnet: Wir knnen die Handelsregeln fr die Handelsanepeczessparameter von TakeProfit (TP) und StopLoss (SL) di Punkten begrenzen. Wir mssen juga 3 Ereignisse verfolgen: 1) nderung des OUT Zeichens, 2) Kursnderungen vom Erffnungspreis durch kemudian Wert von TP, 3) Kursnderungen vom Erffnungskurs durch den Wert - SL. Wenn eines dieser Ereignisse auftritt, wird die Korrektur der Gewichtungen auf analoge Weise durchgefhrt. Wenn wir einen Gewinn erhalten, bleiben mati Gewichtungen entweder unverndert sie lainnya werden korrigiert (strkeres signal). Wenn wir einen Verlust haben, werden die Gewichtungen korrigiert, mati mati Eingabe durch den Alarm vom X 1 Vektor OUT 1 mit dem gewnschten Zeichen anzeigt. Der einzige Nachteil dieser Begrenzung ist die Tatsache, dass wir absolut TP und SL Werte verwenden, adalah bei einem langen Zeitraum unter aktuellen Marktbedingungen nicht jadi gut fr mati Optimierung eine Netzwerks ist. Meine persnliche Bemerkung dazu ist, dass TP und SL nicht weit voneinander entfernt sein sollten. Das bedeutet, dass das System symmetrisch sein muss, um wh derend Einarbeitung eine Abweichung hinsichtlich der Richtung eually globaleren Kauf-oder Verkaufstrend zu vermeiden. Es gibt auch eine Meinung, dass der TP 2-4 mal grer als der SL sein sollte - jadi erhhen wir knstlich das Verhltnis von profitablen und verlustbringenden Trades. Aber in solch einem Fall besteht die Gefahr, dass die Einarbeitung des Netzwerks mit einer Verschiebung in Richtung Trend erfolgt. Natrlich knnen beide Varianten existieren, aber Sie sollten beide bei Ihren Untersuchungen berprfen. Liste 4. Eine Wiederholung des Setups fr die Netzwerkgewichtung Durch diese einfachen Arbeitsgnge wird das Netzwerk letztendlich die erhaltenen Klassen aus der Kohonen-Schicht di einer solchen Weise verteilen, dass es fr jede einen Alarm zum Markteinstieg mit dem entsprechenden Maximalgewinn gibt. Aus der Sicht der Statistics - wird jedes Eingabemuster durch das Netz fr mati Gruppenarbeit angepasst. Whrend ein und derselbe Eingabevektor whrend des Vorgangs zur Gewichtungsanpassung Alarme in verschiedenen Richtungen geben kann, wird allmhlich die maximale Anzahl der richtigen Vorhersagen erhalten. Diese Methode kann als dynamisch beschrieben werden. Das verwendete Verfahren wird auch als MPS (Profit Maximizing System) bezeichnet. Hier sind Ergebnisse der Anpassung von Netzwerkgewichtungen. Jeder Punkt im Diagramm ist der Wert des erhaltenen Gewinns di Punkten whrend des Einarbeitungszeitraums. Das System ist immer Marktaktuell, TakeProfit StopLoss 50 Punkte, Fixierung erfolgt nur durch eine Stop-Order, Gewichtungen werden bei Gewinn oll Verlust korrigiert. Sie sehen, nach dem negativen Mulai werden mati Gewichtungen der Schichten angepasst, jadi dass nach etwas hundert Wiederholungen, der Gewinn positiv wird. Interessant ist die Tatsache, dass das Sistem bei einigen Niveaus etwas langsamer wird. Dies hngt mit den Parametern der Einarbeitungsgeschwindigkeit zusammen. Wie Sie in der Liste 2 sehen knnen, wird der Gewinn ProfitPos durch die Schlusskurse der Balken berechnet, auf denen wir die Posisi erffnet und auf welchem die Bedingungen (Stop-Order oder Alarmnderung) eingetroffen sind. Natrlich ist meninggal ein grobes Verfahren, insbesondere im Fall von Stop-Orders. Wir knnen durch das Analisier von Hochs und Tiefs des Balkens (bar1ipat und bar2ipat) eine Verfeinerung hinzufgen. Sie knnen versuchen, mati selbst zu tun. Suche nach Einstiegen Wir haben juga das dynamische Einarbeitungsverfahren studiert, welches das Netzwerk durch seine eigenen Fehler einarbeitet. Sie haben sicher bemerkt, dass wir entsprechend dem Algorithmus immer den Markt betreten mit fixem GewinnVerlust. Wir mssen daher unsere Einstiege begrenzen und versuchen, nur bei gnstigen Eingabevektoren den Markt zu betreten. Das bedeutet, dass wir die Netzwerk-Alarmstufe zum Einstieg in den Markt von den profitablenverlustbringenden Perdagangan abhngig machen mssen. Dies kann sehr leicht durchgefhrt werden. Lassen Sie uns die Variable 0ltMlt0,5 vorstellen, die das Kriterium mengirimi Markteintritts sein wird. Wenn Outgt0,5M, dann kaufen Sie, wenn Outlt0,5-M, dann verkaufen Sie. Wir kristallisieren Ein-und Ausstiege mit Hilfe von Vektoren heraus, die zwischen 0,5-MltOutlt0,5M liegen. Ein weiteres Verfahren zum Aussieben von unntigen Vektoren ist das Sammeln von statistischen Daten ber die Rentabilitt einer Pesan anhand von den Werten bestimmter Ausgaben des Netzwerks. Nennen wir es eine visuelle Menganalisa. Davor sollten wir das Verfahren zur Positionsschlieung definieren - Erreichen der Stop-Order, nderung des Netzwerk-Ausgabesignals. Lassen Sie uns eine Tabelle erstellen Out ProfitPos. Die Werte von Out dan ProfitPos wingden fr jeden Eingabevektor (das heit fr jeden Balken) berechnet. Dann lassen Sie uns eine bersichtstabelle zum ProfitPos Feld machen. Als Ergebnis werden wir die Abhngigkeit zwischen dem Out Wert und dem erhaltenen Gewinn sehen. Whlen Sie den Bereich Out M Lo. M Hai. Di kemudian kutunjukkan bahwa Gewinn biasa-biasa saja pergi dari Sie seine Werte fr den Handel. Zurck zu MQL4 Nachdem wir mit der Entwicklung di VC begonnen haben, haben wir nicht versucht, matikan Mglichkeiten von MQL4 zu wrdigen. Dies perang aus Grnden der Bequemlichkeit. Ich werde Ihnen ein Erlebnis erzhlen. Vor kurzem hat einer meiner Bekannten versucht, eine Datenbank ber Firmen di unserer Stadt anzulegen. Es gibt eine Menge von Verzeichnissen im Internet, aber niemand wollte die Datenbank verkaufen. Wir schrieben juga mengerjakan Skript di MQL4. Das die HTML-Seite scannt und einen Bereich mit Informasi dan Informasi lebih lanjut tidak tersedia di einer Datei speichert. Danach haben wir die Datei in Excel bearbeitet und die Datenbank von drei groen gelben Seiten mit allen Telefonnummern, Adressen und Firmenaktivitten war fertig. Dies perang mati vollstndigste Datenbank der ganzen Stadt fr mich perang es das Gefhl von Stolz und Leichtigkeit, adalah mati Mglichkeiten von MQL4 betrifft. Natrlich kann man ein und dieselbe Aufgabe in verschiedenen Programmiersprachen lsen, aber es ist besser die eine zu whlen, die hinsichtlich MglichkeitenSchwierigkeit fr eine bestimmte Aufgabe die optimale ist. Nach dem Einarbeiten des Netzwerks sollten wir jetzt alle seine Parameter di einer Datei speichern, um sie nach MQL4 zu transferieren. - Gre des Eingabevektors - Gre des Ausgabevektors - Anzahl der Schichten - Anzahl der Neuronen nach Schichten - von Eingabe zur Ausgabe - Gewichtungen der Neuronen nach Schichten Der Indikator wird nur eine Funktion aus dem Arsenal der Klasse CNeuroNet verwenden CalculateLayer. Lassen Sie uns einen Eingabevektor fr jeden Balken bilden, den Wert der Netzwerkausgabe berechnen und den Indikator 6 bauen. Wenn wir uns bereits fr Eingabepegel entschieden haben, knnen wir Teile der erhaltenen Kurve in verschiedenen Farben malen. Ein Beispiel des Codes NeuroInd. mq4 ist dem Artikel angehngt. IV. Kreativer Ansatz Fr eine gute Umsetzung sollten wir einen breiten Verstand haben. Neuronale Netzwerke sind nicht mati Ausnahme. Ich denke nicht, dass die angebotene Variante ideal ist und fr jede Aufgabe geeignet ist. Deshalb sollten Sie immer nach Ihren eigenen Lsungen suchen, das allgemeine Bild aufzeichnen, systematisieren und Ideen berprfen. Nachfolgend finden Sie einige Warnungen und Empfehlungen. - Netzwerk-Anpassung. Ein neuronales Netzwerk ist ein Annherer. Ein neuronales Netzwerk stellt eine Kurve dia, wenn es Knotenpunkte bekommt. Wenn die Menge der Punkte zu gro ist, wird der zuknftige Aufbau schlechte Ergebnisse liefern. Alte Verlaufsdaten sollten von der Einarbeitung entfernt und neue sollten hinzugefgt werden. Dies ist, wie die Annherung sebuah nein neon Polynom durchgefhrt wird. - bereinarbeiten. Dies kommt bei der idealen Anpassung vor (oder wenn es bei der Einarbeitung zu viele Eingabewerte gibt). Wenn einem Netzwerk ein Testwert gegeben wird, erhalten wir als Ergebnis ein falsches Resultat (Abb 9). Abb. 9: Ergebnis einer bereingearbeiteten Netzwerks - falsche Prognose. - Komplexitt, Wiederholbarkeit, Widersprchlichkeit einer Einarbeitungsprobe. Di den Arbeiten 8, 9 analysieren Autoren mati Abhngigkeit zwischen den aufgezhlten Parametern. Ichneh an, es ist klar, dass wenn verschiedene Lernvektoren (oder jatuh noch schlimmer, widersprchliche) ein und demselben Lernvektor entsprechen, ein Netzwerk nie lernen wird, sie richtig zu klassifizieren. Zu diesem Zweck sollten groe Eingabevektoren erzeugt werden, jadi dass sie Daten enthalten, mit denen Sie den Raum der Klassen abgrenzen knnen. Abb. 10 zeigt diese Abhngigkeit. Je hher die Komplexitt eines Vektors ist, desto geringer ist die Wiederholbarkeit und Widersprchlichkeit von Mustern. Abb. 10: Abhngigkeit der Eigenschaften von Eingabevektoren. - Einarbeiten des Netzwerks nach der Methode von Boltzmann. Diese Methode ist hnlich wie verschiedene mgliche Gewichtungsvarianten zu versuchen. Die knstliche Intelligenz eine Expert Advisors hinsichtlich des Lernens nach einem hnlichen Prinzip. Beim Einarbeiten eine Netzwerks geht sie durch alle Varianten der Gewichtungswerte (wie beim Knacken eines Mailgox-Passworts) und whlt die beste rekombinasi aus. Dies istine arbeitsintensive Aufgabe fr einen Computer. Daher ist meninggal Anzahl aller Gewichtungen eine Netzwerks auf zehn begrenzt. Wenn sich die Gewichtung zum Beispiel von 0 auf 1 (mit einem Schritt von 0,01) ndert, bentigen wir dafr 100 Schritte. Celana tidur Fr 5 Gewichtungen meninggal 5100 Kombinationen. Dies ist eine groe Zahl und diese Aufgabe geht ber die Leistung eines Computers hinaus. Der einzige Weg, um ein Netzwerk nach dieser Metoda zu bauen ist, eine groe Anzahl von Computern zu verwenden, wobei jeder davon einen bestimmten Teil verarbeitet. Diese Aufgabe kann von 10 Computern ausgefhrt werden. Jeder wird 510 Kombinationen verarbeiten, jadi dass ein Netzwerk komplexer gemacht werden kann, denn es kann eine grere Anzahl von Gewichtungen, Schichten und Schritten verwendet werden. Im Unterschied zu einem solchen Brachialen Angriff, wirkt die Methode von Boltzmann sanfter und schneller. Bei jeder Wiederholung wird eine zufllige Verschiebung auf die Gewichtung eingestellt. Wenn das System mit der neuen Gewichtung seine Eingabecharakteristik verbessert, wird die Gewichtung akzeptiert und eine neue Wiederholung durchgefhrt. Wenn eine Gewichtung den Ausgabefehler erhht, wird sie akzeptiert, wenn sie durch die Boltzmann Verteilungsformel berechnet wurde. Somit kann die Netzwerkausgabe am Anfang absolut unterschiedliche Werte haben. Eine allmhliche Abkhlung bringt das Netzwerk zum erforderlichen globalen Minimum 10, 11. Natrlich ist dies nicht die vollstndige Liste Ihrer weiteren Studien. Es gibt auch genetische Algorithmen, Methoden zur Verbesserung der Konvergenz, Netzwerke mit Speicher, Radialnetzwerke, Verbund von Rechern, usw. Ich mchte hinzufgen, dass ein neuronales Netzwerk kein Heilmittel fr alle Probleme beim Handeln ist. Der eine whlt eine unabhngige Arbeit und die Erstellung seiner eigenen Algoritma und eine andere Person bevorzugt das Verwenden von bereiten Neuro-Paketen, von denen eine groe Anzahl im Markt gefunden werden kann. Haben Sie nur keine Angst vor Bereksperimen Viel Glck und groe Gewinne Der Markt ist ein Intellekt, das Finanzportfolio pada neuronales Netzwerk. Referenzen 1. Baestaens, Dirk-Emma Van Den Bergh, Willem Max Wood, Douglas. Solusi Jaringan Syaraf Tiruan untuk Perdagangan di Pasar Keuangan. 2. Voronovskii G. K. dan lain-lain. Geneticheskie algoritmy, iskusstvennye neironnye seti saya problemme virtualnoy realnosti (Genetische Algorithmen, knstliche neuronale Netzwerke und Probleme der virtuellen Realitt). 3. Galushkin A. I. Teoriya Neironnyh setei (Theorie von neuronalen Netzwerken). 4. Debok G. Kohonen T. Menganalisis Data Keuangan dengan menggunakan Peta Self-Organizing. 5. Ezhov A. A. Shumckii S. A. Neirokompyuting i ego primeneniya v ekonomike i biznese (Neuronale Datenverarbeitung und ihre Verwendung in der Wirtschaft und Unternehmen). 6. Ivanov D. V. Prognozirovanie finansovyh rynkov s ispolzovaniem neironnyh setei (Prognose der Finanzmrkte mit knstlichen neuronalen Netzwerken) (Diplomarbeit) 7. Osovsky S. Neural Networks for Data Processing . 8. Tarasenko R. A. Krisilov V. A. Vybor razmera opisaniya situatsii pri formirovanii obuchayushchey vyborki dlya neironnyh setei v zadachah prognozirovaniya vremennyh ryadov (Die Wahl der Situation, Beschreibung, Gre beim Formen einer Einarbeitungsprobe fr neuronale Netzwerke zur Prognose bei Zeitreihen). 9. Tarasenko R. A. Krisilov V. A. Predvaritelnaya otsenka kachestva obuchayushchey vyborki dlya neironnyh setei v zadachah prognozirovaniya vremennyh ryadov (Vorlufige Schtzung der Qualitt einer Einarbeitungsprobe fr neuronale Netzwerke zur Prognose bei Zeitreihen). 10. Philip D. Wasserman. Neral Computing: Theory and Practice. 11. Simon Haykin. Neural Networks: A Comprehensive Foundation. 12. wikipedia. org 13. Das Internet. bersetzt aus dem Russischen von MetaQuotes Software Corp. Originalartikel: mql5ruarticles1562
Comments
Post a Comment