Einsatz neuronaler Netze im Handel.

 

Liebe Gewerbetreibende! In letzter Zeit hat sich die Begeisterung für den Einsatz neuronaler Netze in

Prognosen auf den Finanzmärkten. Ich denke, dass sich die Zuhörerschaft in diejenigen aufteilt, die es versucht haben, aber angesichts der

Fragen und wurde enttäuscht (es ist einfacher, die Hände zu benutzen) oder vorübergehend zurückgezogen, und diejenigen, die einige (und vielleicht sehr gute) Ergebnisse haben.

Ergebnisse und arbeiten im Stillen daran, ihr System zu verbessern... Allerdings tauchen neue Betroffene auf mit

Erfolgshunger und Fragen. Vieles wurde bereits besprochen, aber vielleicht haben erfahrene Neuro-Trader

neue Gedanken?

Ich interessiere mich seit kurzem für Nicht-Wachstumsländer und habe einige Fragen gesammelt. Ich würde gerne die Meinung von Leuten hören, die gut darin sind.

Ich verstehe, dass beim Einsatz neuronaler Netze im Handel viele Details wichtig sind... Der Reihe nach.

1. Welche Aufgabe ist für NS zu stellen? Ich denke, dass das Problem der Klassifizierung (d.h. die Einteilung der Marktmomente in Klassen)

"Kaufen", "Verkaufen", "Aus dem Markt heraushalten") ist die vielversprechendste, wenn es darum geht, gute Ergebnisse beim Handel zu erzielen.

2. Wie ist diese Aufgabe zu formulieren? Ich sehe zwei Möglichkeiten.

а. Die erste besteht darin, dem Netz beizubringen, selbständig die günstigsten

Steigen Sie in den Markt ein, wenn es am wahrscheinlichsten ist, dass Sie einen Gewinn erzielen.

In diesem Fall analysiert das Netz ständig den Markt (z. B. bei der Eröffnung jeder neuen Bar) und ermittelt

Wie sollte also die Ausbildungsstichprobe aussehen? Sie sollte natürlich Folgendes enthalten

Eingabewerte (Preis- oder Indikatorwerte) von jedem Balken der Stichprobe

den gewünschten Ausgangswert. WIE? Dies ist eine Frage der Fragen! In dem Programm Neuronale Netze 4 von STATISTICA ist es also wünschenswert

dass jeder Balken einen festen Wert erhält, der angibt, zu welcher Klasse er gehört...

einer bestimmten Klasse zuordnen... wie 1, 0 oder -1... oder sogar mit Text "verkaufen" "aus dem Markt" "kaufen"

Andererseits habe ich gelesen, dass die Ausgabewerte einer Trainingsstichprobe nicht diskret sein sollten

und sollte in einem Bereich von (z.B.) -1, was 100% Verkauf! bedeutet, bis 1, was 100% Kauf bedeutet, verteilt werden, und 0 wäre dann

"weiß nicht" oder "nicht auf dem Markt". Das heißt, jeder Balken sollte eine Reihe von Eingaben und einen Ausgabewert von (zum Beispiel) 0,8745 haben.

was bedeuten würde, dass 87 von 100 Chancen zum Kauf bestehen.

Und natürlich, wie findet man solche Ausgangswerte? Benutze ich einen Zick-Zack-Kurs? Und zwischen den Gipfeln des Zick-Zack

seine "Chancen" berechnen?

б. Die zweite Möglichkeit besteht darin, Signale eines Systems zu filtern... ein gutes System, das an sich

und Neuronics nur "erlaubt" oder nicht, mit ihnen zu handeln.

... in diesem Fall sollte die Trainingsstichprobe nur auf den Balken gezogen werden, auf denen das System das Handelssignal gibt ... oder doch auf allen Balken?

Und noch einmal: Soll die Ausgabe (disaer) diskret oder mit Zwischenwerten erfolgen?

3. Werte eingeben. Sie schlagen vor, Indikatorwerte nicht als solche zu betrachten. Ich glaube, das ist ein Missverständnis.

Die Indikatoren "schauen" in die Geschichte, jeder in seiner eigenen Tiefe und aus seinem eigenen Blickwinkel, und auf dieser Grundlage geben sie die

Wenn wir eine Reihe von Indikatorwerten nehmen, erinnert der eingehende Vektor an einen bestimmten "Strichcode" des Marktes

und die NS werden Marktsituationen anhand dieser Strichcodes erkennen und zusammenfassen. Es wird vorgeschlagen, als Variante die Differenz zu nehmen

von Indikatorwerten (um das Netz mit Informationen über die Richtung der Preisbewegung zu versorgen). Welche anderen Varianten gibt es?

WAS IST DER RICHTIGE WEG? Ich habe versucht, den Phi-Winkel einer komplexen Zahl (Phi-Winkel ist eine geometrische

Interpretation einer komplexen Zahl) durch Cloth, aber in meinen Experimenten mit NeuroSolution im Vergleich zu einer Reihe von

der Indikatorwerte viel schlechter ausfiel. Was sagt die Fachwelt dazu? ;-)

4. Normalisierung der Eingabewerte. Der Sinn des Verfahrens ist klar, aber es ist nicht klar, wie man es richtig umsetzt. Lassen Sie mich das erklären. Normalisierung -

ist die Zusammenfassung von Werten in einem einzigen Bereich. Dazu müssen wir den Höchstwert in der Stichprobe und den Mindestwert finden.

Das ist in Ordnung. In welcher Tiefe sollen wir suchen? Angenommen, wir haben 100 Indikatorwerte in der Stichprobe. Wir müssen normalisieren

75. Wert. Wo sollen wir das Minimum und das Maximum suchen? Bei 74 vorher? oder bei 50 vorher? oder bei allen 100 (d.h.

Es besteht ein Bedürfnis nach Sicherheit... denn bei der Klassifizierung sollte jeder Balken unabhängig und nach den folgenden Kriterien berechnet werden

oder es ist alles Unsinn... Ich denke, sie sollte sich nur auf Werte aus der Vergangenheit stützen und die

Ich denke, es ist notwendig, nur vergangene Werte anzugeben und eine streng definierte Einheitstiefe zu nehmen (z.B. immer 100 Takte vor oder 500 oder den Wert eines Trainingsbeispiels).

5. Zufallsstichprobe der eingehenden Stichprobe. Biene oder nicht Biene! Die Meinungen gehen auseinander... Die Theorie besagt, dass der Fall für

der Klassifizierung nützlich ist. Aber wie sieht es in der Realität aus? Wer hat es ausprobiert? Irgendwelche Meinungen?

6. Und schließlich eine letzte Frage zum Netzwerktraining. Benutzt irgendjemand C.V. (Kreuzvalidierung) Stichproben?

Ist das notwendig? Hilft es wirklich, ein Übertraining des Netzes zu verhindern? Und wie gehen Sie im Allgemeinen damit um?

Schleichendes Übertraining? Das verdirbt alles! Wie bei den Lehrproben ist alles schön! Und bei Out of

Beispiel - Unsinn.

Ich persönlich verwende NeuroSolution 5 DE, um die Nützlichkeit von NS im Handel zu untersuchen. Es ist ein gutes, flexibles Programm.

Es ermöglicht , Ergebnisse als DLL zu erzeugen.

Ziemlich schlau. (aber es ist nicht klar, wie man nach dem Training und der Optimierung herausfindet, welche Werte aus der Eingabeauswahl nützlich sind und welche Werte ausgeschlossen werden.

Ich möchte nur herausfinden, welche Werte nützlich sind und welche vom Programm als schädlich oder unnötig ausgeschlossen werden.

Bitte gehen Sie nicht vorbei. Kritik! Vorschläge! Teilen Sie Ihre Gedanken mit!

 
Natürlich ist das eine Menge Kauderwelsch, aber schauen Sie sich wenigstens die Links unter Ihrem Beitrag an, das Thema ist schließlich nicht neu.
 
читайте================================>хайкина=========================> :О)
 
PraVedNiK >> :
читайте================================>хайкина=========================> :О)

Schon gefunden! Ich werde es auf jeden Fall lesen.

 
sayfuji >> :
Natürlich sind das viele Worte, aber schauen Sie sich wenigstens die Links unter Ihrem Beitrag an, das Thema ist schließlich nicht neu.

Ich habe kein Problem mit zu vielen Wörtern. Es ist alles da... es ist alles da... du denkst, es ist vorbei, nicht wahr?

 

полагаете что тема исчерпана полность?

Niemals. Im Gegenteil, es wird gegraben und gegraben, eine größere Schaufel und eine Menge Zeit benötigt.


 
alexish писал(а) >>

4. Normalisieren Sie die Eingabewerte. Die Bedeutung des Verfahrens ist klar. Unklar ist jedoch, wie sie richtig umgesetzt werden kann. Lassen Sie mich das erklären. Normalisierung -

ist die Zusammenfassung von Werten in einem einzigen Bereich. Dazu müssen wir den Höchstwert in der Stichprobe und den Mindestwert finden.

Das ist in Ordnung. In welcher Tiefe sollen wir suchen? Angenommen, wir haben 100 Indikatorwerte in der Stichprobe. Wir müssen normalisieren

75. Wert. Wo sollen wir das Minimum und das Maximum suchen? Bei 74 vorher? oder bei 50 vorher? oder bei allen 100 (d.h.

Es besteht ein Bedürfnis nach Sicherheit... denn bei der Klassifizierung muss jeder Balken unabhängig und nach den folgenden Kriterien berechnet werden

oder es ist alles Unsinn... Ich denke, sie sollte sich nur auf Werte aus der Vergangenheit stützen und die

Ich denke, wir sollten nur vergangene Werte verwenden und die gleiche Tiefe nehmen (z.B. immer vor 100 Balken oder 500 oder den gleichen Wert wie ein Trainingsbeispiel). - Suchen Sie nach einer universellen Methode und lesen Sie Artikel auf speziellen Websites über neuronale Netze.

5. Zufällige Neusortierung der eingehenden Stichprobe. - kein wesentlicher Punkt

6. Und schließlich die letzte Frage zum Netzwerktraining. Benutzt irgendjemand C.V. (Kreuzvalidierung) Stichproben?

Ist das wirklich notwendig? Hilft es wirklich, ein Übertraining des Netzes zu verhindern? Und wie gehen Sie im Allgemeinen damit um?

Schleichendes Übertraining? Das verdirbt alles! Wie bei den Lehrproben ist alles schön! Und bei Out of

Beispiel - Unsinn... - In jedem Fall entscheidet die Stichprobe über alles.

Unsinn über OOS: 1. keine repräsentative Stichprobe 2. Keine stationären Daten 3. Falsche Vorverarbeitung, möglicherweise einige andere Dinge...

Ich persönlich verwende NeuroSolution 5 DE, um die Nützlichkeit von NS im Handel zu untersuchen. Es ist ein gutes und flexibles Programm.

Es ist möglich, die Ergebnisse als DLL unter zu generieren.

Ziemlich schlau. (aber es ist nicht klar, wie man nach dem Training und der Optimierung herausfindet, welche Werte aus der Eingabeauswahl nützlich sind und welche Werte ausgeschlossen werden.

Das Einzige, was ich herausfinden möchte, ist, welche Werte nützlich sind und welche vom Programm als schädlich oder unnötig ausgeschlossen werden).

Bitte gehen Sie nicht vorbei. Kritik! Vorschläge! Teilen Sie Ihre Ideen mit!

Ich werde wohl oder übel alles selbst schreiben müssen, zumindest um besser zu verstehen, was passiert und warum...

 
alexish писал(а) >>

1. Was ist die Aufgabe der NS? Ich denke, dass die Aufgabe der Klassifizierung (d. h. die Einteilung der Marktmomente in Klassen)

"Kaufen", "Verkaufen", "Aus dem Markt herausbleiben") ist am vielversprechendsten, wenn es darum geht, gute Handelsergebnisse zu erzielen.

Ja, das ist sie. Und, der Staat "raus aus dem Markt" ist in der Regel mit einer Spreizung verbunden, alles andere verfolgt der NS und sollte zu seinem Vorteil ausnutzen. Deshalb ist die Einstufung nur auf der Grundlage von "kaufen" oder "verkaufen" für NS entscheidend, und im TS selbst setzen wir "Erlaubnis-Verbot" für den Handel je nach dem aktuellen Wert der Maklerunternehmen Kommission.

2. Wie ist diese Aufgabe zu formulieren? Ich sehe zwei Möglichkeiten.

а. Die erste besteht darin, dem Netz beizubringen, die profitabelsten Momente des Marktes zu bestimmen.

б. Die zweite Möglichkeit: Theoretisch sollte die Trainingsstichprobe nur auf den Balken gezogen werden, auf denen ein Handelssignal des Systems vorliegt... oder doch auf allen Balken?

Und wieder... sollte die Ausgabeprobe (disaer) diskret oder mit Zwischenwerten sein?

Richtig - um die vom NS zu lösende Aufgabe maximal zu erleichtern, sollten wir zu diesem Zweck den optimalen TS (für bestimmte Bedingungen) selbständig bestimmen und ihn mit bereits sezierten Zeitreihen als Eingangsdaten füttern, d.h. nicht jeden Balken, sondern wahrscheinliche Schlüsselpunkte, und erst dann können wir erwarten, dass der NS eine adäquate Einstiegs-/Ausstiegsentscheidung trifft. Und sie wird entscheiden, ob der von Ihnen vorgeschlagene kritische Punkt ein solcher ist oder nicht.

Die Antwort auf die Frage nach der Diskretion der NS-Ausgangswerte ist nicht eindeutig und hängt in erster Linie vom Gesetz der Verteilung der Amplituden von Inkrementen des Quotienten ab, der vom Eingangssignal des NS "geschnitten" wird. Wenn die Verteilung annähernd symmetrisch ist, können wir uns auf eine diskrete Ausgabe +/-1 (Kauf/Verkauf) beschränken, aber wenn die Verteilung nicht symmetrisch ist, müssen wir neben dem Vorzeichen auch ihre Amplitude (Wahrscheinlichkeit) berücksichtigen.

3. Werte eingeben.

Die Antwort wurde oben gegeben.

4. Normalisierung der Eingabewerte.

Die Normalisierung ist notwendig, damit der NS korrekt funktioniert.

Der korrekte Weg zur Durchführung dieses Verfahrens besteht darin, den gesamten Bereich der empfangenen Werte an den Eingängen/Eingängen des NS im Bereich von +/-1 mit gleichmäßiger (hohler) Verteilung abzubilden. Dies kann geschehen, indem man den Eingangsvektor mit einer hyperbolischen Tangente bearbeitet und dann die Verteilung auf irgendeine Weise glättet (optional).

5. Zufällige Sortierung der eingehenden Stichprobe. Bi oder ort tu bi! Die Meinungen gehen auseinander.

Das Verfahren ist nutzlos!

Der Punkt ist, dass wir bei der Methode der umgekehrten Fehlerfortpflanzung die Fehler über die gesamte Trainingsstichprobe aufsummieren und es für uns keinen Unterschied macht, in welcher Reihenfolge wir die einzelnen Ausreißer aufsummieren - das Umordnen der Silbenstellen ändert nichts an der Summe.

6. Und wie geht man überhaupt mit diesem schleichenden Übertraining um?

Es besteht eine eindeutige Beziehung zwischen der Mindestlänge der Trainingsstichprobe P, der Anzahl der Gewichte W im NS und der Dimension der Eingabe d: P>4*(W^2)/d

Wenn diese Bedingung erfüllt ist, kann es natürlich nicht zu Übertraining kommen. Der Lernprozess muss beendet werden, wenn der Parameter, der den Lernfehler charakterisiert, die Asymptote erreicht.

Ich persönlich verwende NeuroSolution 5 DE, um die Nützlichkeit von NS im Handel zu untersuchen. Es ist ein gutes und flexibles Programm.

Ziemlich knifflig.

Schade!

Sie sollten den Quellcode des NS direkt in MQL schreiben. Nur so können Sie die vielen Fallstricke vermeiden und Zeit und Mühe sparen.

 
Neutron >> :


1.

Das Richtige ist, es dem NS so einfach wie möglich zu machen, das Problem zu lösen, dazu müssen Sie den optimalen TS (für bestimmte Bedingungen) selbst bestimmen und als Eingabedaten bereits sezierte Zeitreihen senden, d.h. nicht jeden Balken, aber wahrscheinliche Schlüsselpunkte, und erst danach können Sie vom NS eine adäquate Lösung für den Einstieg-Ausstieg aus dem Markt erwarten. Sie wird entscheiden, ob der von Ihnen vorgeschlagene kritische Punkt ein solcher ist oder nicht.


2.

Schlecht!

Sie sollten den NS-Code direkt in MQL schreiben. Nur so können Sie die vielen Fallstricke vermeiden und Zeit und Mühe sparen.


1. Durch die einfache Handhabung gehen keine Daten verloren. Das Wichtigste ist, das Netz nicht mit im Wesentlichen denselben Daten zu füttern. Denken Sie lieber darüber nach, was den Preis beeinflussen kann und wie man es als Daten für das neuronale Netz darstellen kann.


2. Schreiben Sie NICHT den NS-Code für MQL. Sie werden viel Zeit und Nerven aufwenden müssen und alles wird sehr langsam ablaufen. Lernen Sie lieber, wie Sie Ihre DLL mit MT4 verbinden und Ihr eigenes neuronales Netz in C schreiben, zum Beispiel mit dem FANN-Paket. Dadurch lassen sich viele Probleme vermeiden, auch bei der Portierung des Codes auf das neue MQL5-Terminal.

 
Neutron писал(а) >>

Die korrekte Vorgehensweise besteht darin, den gesamten Bereich der Eingangs-/Eingabewerte des NS mit einer gleichmäßigen (hohlen) Verteilung im +/-1-Bereich erscheinen zu lassen. Dies kann geschehen, indem man den Eingangsvektor mit einer hyperbolischen Tangente bearbeitet und dann die Verteilung (optional) auf die eine oder andere Weise glättet.

Es besteht eine eindeutige Beziehung zwischen der Mindestlänge der Trainingsstichprobe P, der Anzahl der im NS einstellbaren Gewichte W und der Dimension der Eingabe d: P>4*(W^2)/d

Wenn diese Bedingung erfüllt ist, kann es natürlich nicht zu Übertraining kommen. Der Lernprozess muss beendet werden, wenn der Parameter, der den Lernfehler charakterisiert, die Asymptote erreicht.

Schlecht!

Es ist notwendig, den NS-Code für MQL auf einmal zu schreiben. Nur so können Sie die vielen Fallstricke vermeiden und Zeit und Mühe sparen.

Eine sigmoidale Funktion an sich gleicht die Verteilung nicht aus... Meiner Meinung nach ist es wichtiger, das Problem der Stationarität der Daten im Preprocessing zu lösen.

Übrigens, mit der von Ihnen zitierten Formel erhalte ich W=420, d=14, also P>50400 - erscheint Ihnen die Stichprobe nicht ein wenig zu groß?

Meiner Erfahrung nach hängt die Anzahl der Beispiele in der Probe nicht davon ab, was Sie vorschlagen...

 
alexish писал(а) >> Ich persönlich benutze NeuroSolution 5 DE, um die Nützlichkeit von NS im Handel zu untersuchen.

Im Allgemeinen ist es ratsam, vor der Anwendung derartiger spezifischer und recht komplexer Programme die Entwickler dieser Software zu konsultieren, um zu erfahren, ob ihr Einsatz in diesem Bereich, d. h. auf den Finanzmärkten, angemessen ist. Wenn Sie sich also mit ihnen beraten, werden sie Ihnen sagen, dass NeuroSolution nicht für den Einsatz auf den Finanzmärkten gedacht ist, und ein anderes Programm empfehlen. NeuroSolution ist für die Lösung allgemeiner Probleme konzipiert, während die Verwendung neuronaler Netze auf den Finanzmärkten einige Besonderheiten aufweist, die in dieser Software nicht berücksichtigt werden. Vielleicht kann NeuroSolution irgendwie mit den Finanzmärkten verbunden werden, aber das ist ziemlich schwierig und steht unter der Macht von großen Spezialisten auf dem Gebiet der neuronalen Netze + Händlern in einer Person, die klar verstehen, welches Ergebnis und vor allem, wie man es von neuronalen Netzen zu bekommen. Daraus ergeben sich alle Probleme, die Sie oben aufgeführt haben - Problemstellung, Datennormalisierung, Übertraining und so weiter.....