"New Neural" ist ein Open-Source-Projekt für neuronale Netzwerke für die MetaTrader 5-Plattform. - Seite 12

 
NeuroOpenSource:
Es müsste etwas zu codieren sein. Wir warten immer noch auf den Projektadministrator, um den Umsetzungsplan zu besprechen.

Es besteht sogar die Möglichkeit, sich bei der gleichen Sorsforge anzumelden und...

Aber es ist wahrscheinlich besser zu warten, bis die Metakwots die richtige Umgebung gefunden haben.

 
Übrigens ist es keine schlechte Idee, über Parallelisierung nachzudenken. Ich habe nur keine Ahnung, wie das umgesetzt werden kann.
 
TheXpert:
Übrigens ist es keine schlechte Idee, über Parallelisierung nachzudenken. Ich habe nur keine Ahnung, wie das umgesetzt werden kann.
Sie sprechen davon, die NS-Ausbildung zu parallelisieren? Meiner Meinung nach ist das nicht möglich, es sei denn, der Netzwerkausschuss parallelisiert sie irgendwie.
 
TheXpert:
Übrigens ist es gut, über Parallelisierung nachzudenken. Ich habe nur keine Ahnung, wie ich es umsetzen soll.

Andrey, ich habe deine Nachricht über die Rekursion überprüft, du hast Recht, die Rekursion ist 1,5 mal langsamer und in der Tiefe begrenzt, also haben Schleifen eindeutig gewonnen.


Machen Sie sich keine Sorgen über Parallelisierung, bis es eine API für Grafikprozessoren gibt, ist es keinen Pfifferling wert, neuronale Netze sind zu einfache Aufgaben, um sie zwischen Kernen zu parallelisieren (Thread-Aufruf dauert Hunderte von Taktzyklen).

Es sei denn, MQ wird uns zumindest eine API für neuronale Netze zur Verfügung stellen, aber das erfordert eine Formalisierung des universellen Netzes. Also erst ein Projekt, und dann an die Tür klopfen und mir eine API für die GPU geben.

 

Ich habe ein erklärendes Bild zu dem Code auf Seite 5 gemacht:

Die gelben sind verknüpfte Speicherzellen (genauer gesagt handelt es sich um ein und dieselbe Speicherzelle, die sich nur auf unterschiedliche Speicherobjekte bezieht),

die anderen, Assoziationen von Gedächtnisobjekten, rot next, grün prev, blau side.

Die Richtung des Pfeils gibt die Richtung an, in der der Zeiger weitergegeben wird.

Die Nullzelle des Verzögerungsoperatorspeichers wird als Ausgangsspeicherzelle verwendet.


Der Speicher ist in umgekehrter Reihenfolge verknüpft, da ein Eingang nur einen Ausgang hat (von dem er Daten erhält), aber nicht umgekehrt.

Nun, es ist wahrscheinlich intuitiv klar, dass Kreise Eingänge sind, Quadrate Gewichte, Dreiecke Verzögerungsoperator (Null-Operator-Zelle Z Neuronenausgang).

ZZZY Das Schema ist endgültig und ich werde es nicht mehr ändern :o)

 

1. imha, das Wichtigste ist die Spezialisierung auf den Handel, und hier ist es wichtig, die Vorverarbeitung der Eingangsdaten zu systematisieren. Es sollten sowohl diskrete Signale (z. B. Durchbrechen eines bestimmten Extremwerts oder Preisänderungen innerhalb eines Zeitraums, die einen bestimmten Schwellenwert überschreiten) als auch kontinuierliche Signale (z. B. Abstand zwischen 2 Rädern oder Preisänderungen innerhalb eines Zeitraums) eingegeben werden. Natürlich kann NS diskrete Lernvorgänge von kontinuierlichen Lernvorgängen ableiten, aber dann kommt es zu Blackboxing, und das ist nicht immer erforderlich. Im Allgemeinen benötigen wir für die Eingaben eine separate Klasse, in der die Preis-Aktions-Berechnung durch eine virtuelle Methode definiert wird und die Benutzer aus bereits geschriebenen Methoden auswählen oder sie selbst schreiben können.

2. die Standard-EA ist im Wesentlichen das gleiche wie die elementaren Preis-Aktion-Signale und Boolesche Algebra mit ihnen (und/oder/nicht). Daher kann die Standard-EA auch in Form von NS einer bestimmten Topologie und Gewichtung beschrieben werden. Vielleicht eine gute Option - die automatische Konvertierung von Standard-EAs in NS (es ist schwierig, es zu tun :)), oder zumindest zu ermöglichen, die NS mit Boolesche Logik Muster zu entwerfen. Um einen Ausgangspunkt für die Schaffung eines logischen, aus der Sicht des Handels, NS, aber nicht nur eine Reihe von Schichten mit einigen Topologie.

Und auch, um Elemente der Booleschen Algebra in das konstruierte NS einzufügen. Wir haben z.B. ein CS erstellt und wollen den Einfluss eines einfachen Filters darauf überprüfen, z.B. kaufen wir, wenn der Preis über МА200 liegt und verkaufen - umgekehrt. Natürlich können wir einen neuen Eintrag eingeben und das Netz neu trainieren usw. Oder wir können diesen Filter einfach als boolesche Logik hinzufügen und seinen Einfluss auf das Ergebnis überprüfen.

D.h. es geht um die Kombination von intuitiv verständlicher Boolescher Logik und NS in verschiedenen Phasen des TS-Designs.

Es ist logisch, eine Möglichkeit zu schaffen, einige Verbindungen zu fixieren, damit sie nicht an der nachfolgenden Ausbildung teilnehmen. D.h. es gibt ein Rückgrat des Systems, das nicht häufig umgebaut werden sollte, und es gibt einen häufiger anpassbaren Teil. Die Umschulung aller Gewichte ist eine Erhöhung der Anpassung.

4. Es ist nicht schlecht, wenn das Backbone aus Punkt 3 automatisch ausgewählt werden kann. So haben wir zum Beispiel einen Testabschnitt. Sie ist in N Teile unterteilt. NS wird sukzessive an jedem Teil trainiert, aber so, dass ein Teil davon fest bleibt (nicht an jedem Teil neu trainiert wird).

D.h. es geht darum, robuste NS zu bauen, die ein Minimum an Anpassung an den aktuellen Markt erfordern.

5. Das Ziel der f-Studie sind nicht einzelne Vorhersageerfolge (Trades), sondern ein Merkmal der Aktienkurve. Zum Beispiel einen Gewinnfaktor oder einen benutzerdefinierten Faktor.

6. eine visuelle Schnittstelle für die NS-Projektierung ist für alle oben genannten und andere Möglichkeiten erforderlich.

 

Für den Anfang könnten Sie eine Art objektorientiertes Open-Source-Modell wie http://www.basegroup.ru/library/analysis/neural/fastneuralnet/ in Betracht ziehen .

Was ist sinnvoll, um in Analogie zu tun, was sind die Nachteile angesichts der Besonderheiten des Handels und MQL5. Oder ein fortschrittlicheres Open-Source-Modell, um das Rad nicht neu zu erfinden :)

BaseGroup.ru :: NeuralBase - нейросеть за 5 минут
  • basegroup.ru
Библиотека компонентов , предназначена для программной реализации нейронных сетей. В качестве примера, созданы компоненты реализующие две нейросетевые парадигмы: рекуррентную нейронную сеть, в нашем случае – это сеть Хопфилда и многослойную нейронную сеть обучаемую по алгоритму обратного распространения ошибки (back propagation). Основным...
 
Avals:

1. imha, das Wichtigste ist die Spezialisierung auf den Handel, und hier ist es wichtig, die Vorverarbeitung der Eingangsdaten zu systematisieren. Es sollten sowohl diskrete Signale (z. B. Durchbrechen eines bestimmten Extremwerts oder Preisänderungen innerhalb eines Zeitraums, die einen bestimmten Schwellenwert überschreiten) als auch kontinuierliche Signale (z. B. Abstand zwischen 2 Rädern oder Preisänderungen innerhalb eines Zeitraums) eingegeben werden. Natürlich kann NS diskrete Lernvorgänge aus kontinuierlichen Lernvorgängen ableiten, aber dann kommt es zu Blackboxing, und das ist nicht immer erforderlich. Im Allgemeinen benötigen wir für die Eingaben eine separate Klasse, in der die virtuelle Methode zur Berechnung der Preisaktion definiert wird und die Benutzer aus bereits geschriebenen auswählen oder ihre eigene schreiben können.

Ja, ich habe darüber geschrieben. Ich habe es jedoch anders geschrieben. Können Sie ein kleines, einfaches Beispiel dafür geben, wie eine Preisaktions-Eingabe aussehen würde?

Und fügen Sie auch Elemente der Booleschen Algebra zu dem konstruierten NS hinzu. Wir haben z.B. ein NS aufgebaut und wollen den Einfluss eines einfachen Filters prüfen, z.B. Handel nur kaufen, wenn der Preis höher als МА200 ist und umgekehrt verkaufen. Natürlich können wir einen neuen Eintrag eingeben und das Netz neu trainieren usw. Oder wir können diesen Filter einfach in Form einer booleschen Logik hinzufügen und seinen Einfluss auf das Ergebnis überprüfen.

Welchen Sinn hat es, sie ins Netz zu stellen? Es ist leicht und einfach zu überprüfen, ohne das Netz...

D.h. es geht um die Kombination von intuitiver, menschlich verständlicher Boolescher Logik und NS in verschiedenen Phasen des TC-Designs.

Was ist dann der Sinn des NS? Imho sollte NS auf jeden Fall als eine Blackbox betrachtet werden, die Eingaben in Ausgaben umwandelt.

Es ist logisch, eine Möglichkeit zu schaffen, einige Verbindungen zu fixieren, damit sie nicht am weiteren Lernen teilnehmen. D.h. es gibt ein Rückgrat des Systems, das nicht häufig umgebaut werden sollte, und es gibt einen häufiger anpassbaren Teil. Alle Gewichte neu zu trainieren bedeutet, die Passform zu verbessern.

Und nach welchem Prinzip? Nun, die Topologie kann geändert werden (hehe :) ). Es ist möglich, die Menge zu reduzieren. Aber um nur manuell ausgewählte Synapsen zu trainieren...

4 Es wäre schön, wenn die unveränderte Achsschenkel aus Schritt 3 automatisch ausgewählt werden könnten. So haben wir zum Beispiel einen Testabschnitt. Sie ist in N Teile unterteilt. NS wird sukzessive für jeden Teil trainiert, ein Teil von NS bleibt jedoch fix (wird nicht für jeden Teil neu trainiert).

Überprüfen Sie einfach den Vorgang auf dem Klebstoff. Mit solchen Machenschaften wird man die Passform sowieso nicht mehr los.

D.h. es geht darum, robuste NS zu bauen, die ein Minimum an Anpassung an den aktuellen Markt erfordern.

(5) Das Ziel der f-Studie sind nicht einzelne Erfolge bei der Vorhersage (Trades), sondern eine Charakteristik der Aktienkurve. Profit-Faktor, zum Beispiel, oder einen vom Benutzer festgelegten.

So funktioniert das nicht. Nicht alle Einträge können in die Strategie übernommen werden. Schließlich ist der NS vom TS getrennt, sie sind unabhängig. Aber es kann auf der Ebene der Bildung von Ein- und Ausgängen der Trainingsstichprobe erfolgen.

_________________________________

Oder man muss sich generell andere Ziele setzen.

 
TheXpert:

Ja, darüber habe ich geschrieben. Aber auf eine etwas andere Art und Weise. Können Sie mir ein einfaches kleines Beispiel geben, wie eine Preisaktions-Eingabe aussehen könnte?

bool F1(int period){

wenn (High[0]>iHighest(NULL,0,MODE_HIGH,period,1)) return(true); sonst return(false);

}

double F2(int ma1P,int ma2P){

return(iMA(...ma1P ...)-iMA(...ma2P....))

}

TheXpert:

Welchen Sinn hat es, sie ins Netz zu stellen? Es ist leicht und einfach, sie ohne Netzwerk zu überprüfen...

Was ist dann der Sinn des NS? Imho sollte die NS auf jeden Fall als Blackbox betrachtet werden, die Eingaben in Ausgaben umwandelt.

NS und konventionelle Logik zu kombinieren. Die Lösung von NS kann nur einen Teil eines Handelsproblems lösen, z. B. das Filtern, und das Ergebnis seiner Arbeit wird entweder ein Kauf- oder Verkaufshandel oder überhaupt kein Handel sein. Die Ein- und Ausstiegspunkte sowie andere Filter können jedoch in der booleschen Standardlogik enthalten sein. Wie kann man das benötigte NS unterrichten, wenn es ohne den booleschen Teil nicht funktionieren soll (Gewinne angeben oder Preisänderungen vorhersagen)? D.h. jeder Schritt des NS-Trainings muss den Start des Algorithmus auf Boolescher Logik beinhalten.

TheXpert:

Und nach welchem Prinzip? Nun, Sie können die Topologie ändern (hehe :) ). Es ist möglich, eine Menge zu reduzieren. Sie können aber auch nur manuell ausgewählte Synapsen trainieren.

warum nicht? :) Zum Beispiel ein Ausschuss aus mehreren NS, von denen jeder im Wesentlichen verschiedene Probleme löst. Sie müssen doch nicht an exakt denselben Proben und mit derselben Periodizität trainiert werden, oder? Unterschiedliche Aufgaben erfordern unterschiedliche Einarbeitungszeiten.

Es gibt zum Beispiel einen NS, der recht gut in der Lage ist, einen Trend/Flop zu erkennen. Wir können sie in verschiedenen Projekten verwenden und sie z. B. in andere NSs einbauen. Aber nicht, um sie jedes Mal neu zu trainieren, wenn Sie sie trainieren müssen.

TheXpert:

Überprüfen Sie einfach seine Arbeit beim Verkleben. Mit solchen Machenschaften werden Sie den Anfall ohnehin nicht los.

Ich glaube, das ist die einzige Möglichkeit, wie es bei NS funktionieren wird :)

TheXpert:

Schließlich ist der NS vom TS getrennt, sie sind im Allgemeinen unabhängig. Aber es kann auf der Ebene der Bildung von Ein- und Ausgängen der Trainingsstichprobe erfolgen.

Und warum können sie nicht kombiniert werden? Dann wird der NS nur einen Teil der Probleme lösen, aber er wird als Teil des Gesamtsystems ausgebildet werden. Und im Allgemeinen, kombinieren Sie den Prozess der Strategie-Optimierung und Ausbildung der NS, die Teil davon ist, denn es ist im Wesentlichen die gleiche Sache. D.h. bei jedem Durchlauf des Prüfgeräts wird der NS beispielsweise auf das Testmuster trainiert. Dies macht natürlich Sinn, wenn der NS kein eigenständiger Preis für den Läufer)))) ist, sondern nur ein Teil der Gesamtlogik des Systems.

 

Nein, so funktioniert das nicht.

So zu reden ist Demagogie. Wir können über verschiedene Dinge sprechen, ohne einander zu verstehen, und sie doch ungefähr als dasselbe bezeichnen.

Grund der Beschwerde: