Wie man die Eingabewerte für die NS richtig bildet. - Seite 23

 
StatBars писал (а) >>

Ich entwickle nicht NS, ich bin derzeit auf der Suche nach optimalen Eingaben und Ausgaben, um eine Trainingsstichprobe zu erstellen, ich denke, dass die richtige Probenahme wichtiger ist als NS, es gibt viele NS-Varianten in verschiedenen Sprachen im Internet...

Richtig. Architektur mit guten Inputs ist kein Problem. Man könnte sagen: Inputs sind alles, Architektur ist nichts.


Hier haben die Herren normale Eingaben aufgenommen und mit MTS "Сombo" ordentliche Ergebnisse erzielt :




--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Dies ist der Fall, wenn der EA mit einem festen Los arbeitet. Ich habe ihm noch kein MM hinzugefügt.
Antwort 11.05.2008 14:17 zxc
Valio:

Ich habe auch versucht, meine Hand auf dieses Wunder zu legen. Ich habe es eine Woche lang ausprobiert, den Algorithmus in der Basisversion debuggt und einige eigene Funktionen in basicTradingSystem hinzugefügt, d.h. "basic BTS" in der Sprache des Autors nachgebaut. Die Ergebnisse sind fantastisch auf historischen Daten: Rentabilität von 8 bis 12, erwartete Auszahlung ist etwa 1000, aber es ist real mit meinem eigenen Indikator. Ich habe es auf 1H EUR getestet, Zeitintervall ist etwa ein halbes Jahr. Nächster Monat nach - Ergebnis

"Der Monat danach - das Ergebnis"?

Valio, welches Ergebnis erzielst du in der Zukunft? Sehr interessant!

Es ist nur so, dass ich diesen EA auch neu gemacht habe, und am Anfang war die Rentabilität auf euromoney für ein Jahr (nicht einmal für ein halbes Jahr, sondern für ein Jahr) von H1 über 18 (und höher)! Aber die Vorwärtsbewegung erwies sich als nicht so gut, um es milde auszudrücken...

Jetzt, nach einer weiteren Überarbeitung, ist die Rentabilität während der Optimierung niedriger (etwa 10), aber jetzt hält sie sich anständig (mehr als 3 Monate). Bei mehr als 3 Monaten liegt die Rentabilität bei mehr als 2,5. Ich arbeite noch daran, ich denke, es kann ein sehr interessanter Expert Advisor werden.

Antwort
 
Reshetov писал (а) >>

Richtig. Die Architektur ist, mit den richtigen Eingaben, kein Problem mehr. Man könnte sagen: Inputs sind alles, Architektur ist nichts.


Hier haben die Herren mit MTS "Combo" die richtigen Inputs aufgenommen und die entsprechenden Ergebnisse erzielt :

Ich stimme Ihnen bis zu einem gewissen Grad zu. Aber die Netzarchitektur spielt eine große Rolle ... z.B. sind RBF-Netze viel besser in der Lage, einige Interpolationsprobleme zu lösen.

 
rip писал (а) >>

Ich stimme mit Ihnen in einigen Punkten überein. Aber die Netzarchitektur spielt eine große Rolle ... RBF-Netze zum Beispiel können einige Interpolationsprobleme viel besser lösen.

Bei der Anwendung auf den Handel sind Interpolations- und Approximationsprobleme absolut nutzlos, da sich der Markt ständig verändert und die Kurse keine glatten Funktionen sind. Hier müssen wir die Extrapolationsprobleme lösen, damit die Handelsstrategie die Vorwärtstests erfolgreich bestehen kann, anstatt sich auf die Anpassung an die Historie zu beschränken. Wir brauchen nicht zu wissen, welchen Wert der Preis zwischen dem soundsovielten und dem soundsovielten Datum hatte, denn er ist bereits ohne Interpolation bekannt.


Verschwenden Sie also nicht Ihre Zeit mit Interpolationen und Architekturen. Darüber hinaus können Interpolation und Approximation mit verschiedenen Methoden durchgeführt werden und sind viel einfacher und genauer.


Wählen Sie geeignete Eingaben, damit die Musterklassifizierung auch bei einer einfachen Architektur möglich ist. Danach ist es nicht mehr nötig, die entsprechende Architektur auszuwählen. Der Versuch, das Gegenteil zu tun, ist reine Zeitverschwendung.


Beim Bau eines Hauses ist das Wichtigste das Fundament, nicht der Ausbau. Allerdings sieht die Oberfläche attraktiver aus als die Grundierung.


Das gilt auch für die Architektur der NS. Sie bietet zwar zusätzliche Funktionen, aber nur, wenn die Eingaben angemessen sind. Wenn der Putz unzureichend ist, wird er das Haus nicht vor dem Einsturz bewahren, wenn das Fundament zusammenbricht.

 
Reshetov писал (а) >>

Das Wichtigste beim Bau eines Hauses ist das Fundament, nicht der Ausbau. Allerdings sieht das Finish attraktiver aus als die Grundierung.

Das gilt auch für die Architektur des NS. Sie bietet zwar zusätzliche Funktionen, aber nur, wenn die Eingaben angemessen sind. Wenn sie unzureichend sind, wird der Putz das Haus nicht vor dem Einsturz bewahren, wenn das Fundament zusammenbricht.

OK, ich stimme zu - Eingangs- und Ausgangssignale sind wichtig. Dies ist die Problemstellung, die die NS-Architektur definiert. Die Klassifizierung von Mustern ist eine davon.

Warum kann ein Einstiegssignal nicht aus der Bestimmung des Vorzeichens des nächsten Balkens + der Bestimmung der Extrema desselben Balkens bestehen? Was ist los?


Auch bei der Klassifizierung kommt es darauf an, welchen NS Sie nehmen und wie Sie die Daten aufbereiten. Ein Netzwerk ist kein genaues Instrument, es kann nicht

Um das Ergebnis auf die Hundertstel zu geben, kann es aber die Kriterien geben ... in Bezug auf die ein anderes Tool die Berechnung vornimmt.

 
Reshetov писал (а) >>

Für den Handel sind Interpolations- und Approximationsprobleme absolut unbrauchbar, da sich der Markt ständig ändert und die Kurse keine glatten Funktionen sind. Hier müssen wir die Probleme der Extrapolation lösen, damit die Handelsstrategie die Vorwärtstests erfolgreich besteht, anstatt sich auf die Anpassung an die Historie zu beschränken. Wir brauchen nicht zu wissen, wie hoch der Preis zwischen dem soundsovielten und dem soundsovielten Datum war, denn er ist bereits ohne Interpolation bekannt.

Verschwenden Sie also nicht Ihre Zeit mit Interpolationen und Architekturen. Außerdem kann die Interpolation und Annäherung durch verschiedene andere Methoden erfolgen und ist viel einfacher und genauer.


Wählen Sie geeignete Eingaben, damit die Musterklassifizierung auch bei einer einfachen Architektur möglich ist. Danach ist es nicht mehr nötig, die entsprechende Architektur auszuwählen. Der Versuch, das Gegenteil zu tun, ist reine Zeitverschwendung.


Beim Bau eines Hauses ist das Wichtigste das Fundament, nicht der Ausbau. Allerdings sieht das Finish attraktiver aus als die Grundierung.


Das gilt auch für die Architektur des NS. Das ist sicherlich ein Plus an Funktionalität, aber nur, wenn die Eingänge angemessen sind. Ist der Putz unzureichend, wird er das Haus nicht vor dem Einsturz bewahren, wenn das Fundament zusammenbricht.

Ich bin absolut einverstanden. Wie ein geschätzter Genosse (Steve Ward) zu mir sagte: "Suchen Sie nach Eingängen" )))))

 
TheXpert писал (а) >>

Keine Bewegung!!! Ich habe bereits eine fertige VC++ Libc.

Allerdings gibt es 2 Probleme:

1. Bindung an Boost, ich möchte es loswerden, es ist besser, es manuell zu serialisieren, es glitches sowieso.

2. etwas mit adaptiver Tonhöhe.


Warum ein Fahrrad bauen? Besonders dort

1. MLP mit der Möglichkeit, eine Baumstruktur zu erstellen.

2. std::valarray + aggressive Optimierung der Operationen für schnelleres Zählen.

3. es gibt eine adaptive Stufe

4. Muster mit Auto-Normalisierung.

5. reichlich Möglichkeiten zur Expansion.



Ы ?

Ja, das ist sehr gut, danke für den Vorschlag. Aber wie man so schön sagt: Es ist besser, es einmal selbst zu tun :)

Ich habe an diesem Wochenende wirklich eine Menge gelernt.

Vor allem, als es mir gelang, die Anzahl der Schleifen von 10e7 auf etwa 10e4 zu reduzieren.

Ich habe es auf zwei Arten getan.

1. Das Neuron mit dem größten Fehler wird mit doppelter Geschwindigkeit korrigiert. (ich habe versucht, es durch ein Neuron mit minimalem Fehler zu ersetzen - schlechter)

2. Ist die Korrektur eines Neurons kleiner als ein bestimmter Mindestwert (z. B. 10e-6), erhöht sich seine Korrektur um das Zehnfache.

Es hat mir sehr gut gefallen. :)

Nun, was die Verwendung der Daten anderer angeht: Solange Sie nicht verstehen, dass Sie etwas brauchen, brauchen Sie es noch nicht.

Vor allem, weil Geschwindigkeit hier wichtig ist und eine Erhöhung der Funktionalität auf Kosten der Geschwindigkeit inakzeptabel ist. Meiner Meinung nach ist es besser, ein Raster für eine bestimmte Aufgabe zu schreiben. Natürlich nicht, ohne normale Objekte und eine durchdachte Struktur zu haben, aber...

Zu Punkt 2 und 3 ist es schon interessant. Gibt es eine Möglichkeit, herauszufinden, welche Methoden Sie verwenden?

-----------------------------------

Ich habe die Beiträge gelesen. Schade, dass wir noch hier sind. :) Ich schreibe nur, WIE WICHTIG DIE EINGABEN SIND!!!.Architektur ist nichts - Eingaben sind alles, Suchen Sie nach Eingaben. usw.

Aber es gibt nichts Konkretes. Vielleicht möchten die Gurus etwas dazu sagen? А?

 
rip писал (а) >>

>> Was ist ein Lib?

Meine eigene, ich habe sie bereits auf RSDN gepostet. Ich bin noch nicht zu SourceForge gekommen, und es braucht noch etwas Arbeit...

 
sergeev писал (а) >>

Ich habe dies auf zwei Arten getan.

1. Das Neuron mit dem größten Fehler wird mit doppelter Geschwindigkeit korrigiert. (ich habe versucht, es durch ein Neuron mit minimalem Fehler zu ersetzen - schlechter)

2. Ist die Korrektur eines Neurons kleiner als ein bestimmter Mindestwert (z. B. 10e-6), erhöht sich seine Korrektur um das Zehnfache.

Es hat mir sehr gut gefallen. :)

Ja, cool, warum baue ich es nicht einfach selbst?

Nun, was die Verwendung der Daten anderer angeht: Solange Sie nicht verstehen, dass Sie etwas brauchen, brauchen Sie es noch nicht.

Umso mehr, dass es hier auf Geschwindigkeit ankommt, und eine Erhöhung der Funktionalität auf Kosten der Geschwindigkeit unzulässig ist. Meiner Meinung nach ist es besser, ein Raster für eine bestimmte Aufgabe zu schreiben. Natürlich nicht, ohne normale Objekte und eine durchdachte Struktur zu haben, aber...

Was die Geschwindigkeit angeht - ich habe mein Bestes getan, ich denke, ich kann den Code in meiner Lib um höchstens 3-5% beschleunigen. Und es wird nicht einfach sein :).

Was die Punkte 2 und 3 betrifft, so bin ich schon neugierig. Gibt es eine Möglichkeit, herauszufinden, welche Methoden verwendet werden?

2. "C++-Sprache", Bjorn Straustrup, suchen Sie nach aggressiver Optimierung, es geht darum, Kopiervorgänge zu reduzieren.

3. V. Golovko's Vorlesungsunterlagen, versuchen Sie seine Werke zu suchen oder googeln Sie "adaptive step learning", ich kann jetzt keinen bestimmten Link angeben.

5. Die Erweiterung geht nicht zu Lasten der Geschwindigkeit, es gelten Schablonen :).

 
sergeev писал (а) >>

-----------------------------------

Ich habe die Beiträge gelesen. Es ist eine Schande, dass es immer noch da ist. :) Alle schreiben nur, WIE WICHTIG es ist, Inputs zu schaffen!!! Architektur ist nichts - Inputs sind alles, Suchen Sie nach Inputs, etc.

Und es gibt null Spezifität. Vielleicht können die Gurus etwas dazu sagen? А?

Genauer gesagt, kann ich Sie beraten, wie Sie nach geeigneten Inputs suchen können.


Nehmen wir das einfachste Perzeptron (siehe Wie findet man eine profitable Handelsstrategie?) und schließen Sie an seinen Eingang bestimmte Induktionen und deren Kombinationen an. Was bei diesem Perzeptron den größten Gewinnfaktor ergibt, d. h. die beste Anpassung beim Testen mit konstantem Los (ohne MM), wird mit großer Wahrscheinlichkeit auch den Vorwärtstest bei einer komplexeren Architektur bestehen. Warum, das ist leicht zu erklären. Schließlich handelt es sich beim Perzeptron um eine lineare Klassifikation. Das bedeutet, dass wir eine lineare Trennbarkeit der Eingaben durch Muster erhalten. Fügen wir der Architektur eine Klassifizierung nach nicht linearen Parametern hinzu und erhalten wir ein besseres Ergebnis.


Wenn Sie das Gegenteil tun, bekommen Sie nichts. Eine ausgeklügelte Architektur verbraucht immense Ressourcen und sucht nach den Zeichen der Muster auf einmal, indem sie die nichtlineare Trennbarkeit ignoriert und die lineare Trennbarkeit ignoriert. Und Nichtlinearität ohne Linearität ist nichts als bloße Anpassung. Was wir bekommen, ist Zeitverschwendung.


Ein weiterer Snack. Wenn das Netz trainierbar ist, sollte es nie bis zum Ende trainiert werden. Es muss immer untertrainiert sein. Für ein vollständiges Training werden beispielsweise 1000 Epochen benötigt, dividiert durch 3 ergibt dies etwa 300 Epochen. Das ist völlig ausreichend. Warum? Wenn wir das Netz komplett übertrainieren, wird es nur für stationäre Umgebungen geeignet sein. Und bei Finanzinstrumenten handelt es sich um ein nicht-stationäres, wechselhaftes Umfeld. Das heißt, er kann nur teilweise von einem stationären Zustand in einen anderen wechseln, während er größtenteils in demselben Zustand bleibt. Es kann aber auch zum vorherigen Zustand zurückkehren. Daher ist eine vollständige Umschulung des Netzes eine nackte Anpassung an eine vorübergehend veränderbare Umgebung.


Und schließlich kann ich den Nerds, die glauben, dass NS-Interpolationsfähigkeiten für den Handel notwendig sind, ein konkretes Gegenargument liefern. Nehmen Sie einfach einen beliebigen Redrawing-Indikator oder Oszillator und Sie erhalten eine erstaunliche Interpolation der Geschichte ohne neuronale Netze und komplizierte Architekturen. Natürlich scheuen Händler die Neuberechnung von Indizes, denn was für die Interpolation oder Approximation geeignet ist, eignet sich nicht für die Extrapolation unter nicht-stationären Bedingungen.



 
Reshetov писал (а) >> Ein weiterer Snack. Wenn das Netz trainierbar ist, darf es nie bis zum Ende trainiert werden. Es muss immer untertrainiert sein. Sie benötigen zum Beispiel 1000 Epochen, um es vollständig zu trainieren, teilen Sie durch 3 und Sie erhalten etwa 300 Epochen. Das ist völlig ausreichend. Und warum? Wenn wir das Netz komplett übertrainieren, wird es nur für stationäre Umgebungen geeignet sein. Und bei Finanzinstrumenten handelt es sich um ein nicht-stationäres, wechselhaftes Umfeld. Das heißt, er kann nur teilweise von einem stationären Zustand in einen anderen wechseln, während er größtenteils in demselben Zustand bleibt. Es kann aber auch zum vorherigen Zustand zurückkehren.
Ich würde diesen Rat noch verstärken: Teilen Sie durch 10. Aus irgendeinem Grund kommt mir ein Zweig über stochastische Resonanz in den Sinn. Das Lernen des Netzes bis zum Ende kann die Zielfunktion auf ein tiefes Minimum, d.h. auf einen stabilen Zustand bringen. Stabile Zustände sind überhaupt nicht typisch für Finanzmärkte. Sie sind quasistabil, d.h. solche, die unter dem Einfluss auch nur eines kleinen "Rauschens" jederzeit in eine Katastrophe (Trend) umschlagen können. Aber das ist nur eine philosophische Überlegung...
Grund der Beschwerde: