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

 
Urain:
Komm schon, zeig, was du kannst.

Auch stark interessiert an Sparse Nets.

Und Modelle, die sich auf Fuzzy-Logik beziehen - hurra!!! Ich habe mir den Namen eines der Modelle gemerkt, hier ist ein Link zur Beschreibung. Das Tsukamoto-Modell.

____

Wenn sie erfolgreich umgesetzt werden, werden sie wahrscheinlich einschlagen wie eine Bombe.

 
Ich bin mir nicht sicher, wie sich SVN = Support Vector Machine grundlegend von MLP unterscheidet?
 

TheXpert:

...


Dafür muss das Produkt auf dem Niveau von Neuro-Paketen vom Typ NSDT sein, niasilim.

...

Schade)) Dies ist das Programm, das derzeit am besten für Benutzer aller Niveaus geeignet ist. Erster Platz in der 9-Jahres-Rangliste des Stocks & Commodities Magazins für die beste Analysesoftware laut Umfragen unter Händlern. Aber es ist zu cool für OpenSource. ))

Renat 2011.10.18 00:45 #

Ich habe die Idee, eine neuronale Netzwerk-Engine verschiedener Typen zu entwickeln, die jeder Trader mit minimalem Aufwand nutzen kann.

Der Code wird im Quellcode von MQL5 bereitgestellt und als Teil des Terminals verteilt.

Ich denke, wenn es sich um einen Code handelt, kann ihn kein Händler mehr verwenden. Jeder Händler und Programmierer, ja. Für jeden Händler wäre es geeignet, das Neuronet über den MQL5-Assistenten in ein Handelssystem einzubinden, aber ich nehme an, dass der Assistent dann erheblich geändert werden müsste.

Ich lese dieses Thema und beginne zumindest jetzt zu verstehen, wie kompliziert alles ist.))

Мастер MQL5: Создание эксперта без программирования
Мастер MQL5: Создание эксперта без программирования
  • 2010.12.15
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы хотите быстро проверить торговую идею, не тратя времени на программирование? Выберите в "Мастере MQL5" нужный тип торговых сигналов, подключите модули сопровождения позиций и управления капиталом - на этом вся работа закончена. Создайте свои реализации модулей или закажите их через сервис "Работа" - и комбинируйте новые модули с уже существующими.
 

Ich schlage aber vor, für einen separaten Abschnitt des Forums zu fragen, alles in einem Thema ist die Hölle. Als Aufbewahrungsort für angehäufte Gedanken ist es in Ordnung, aber wenn die Diskussion beginnt ...

Wer sich beteiligen möchte, kann dies öffentlich tun. Erstellen Sie Threads zu einzelnen Aspekten des Systems, und die Administratoren der Threads würden die endgültigen Entscheidungen im ersten Beitrag treffen, wenn sie diskutiert werden. Falls erforderlich, sollten Sie eine öffentliche Abstimmung in einzelnen Threads usw. durchführen.

Es wäre übrigens schön, wenn es auf allen Seiten des Zweigs die Funktion eines angehefteten Beitrags gäbe (der vom Administrator angezeigt wird), so dass man immer eine Art Zusammenfassung der Diskussion vor Augen hätte.

 

Für Interessierte werde ich versuchen, in mehreren kurzen Beiträgen zu erläutern, warum ich neuronale Netze, die auf biologischen Methoden der Informationsumwandlung basieren und das Prinzip der Sparsamkeit nutzen, für sehr vielversprechend halte.

Vorlesung 1: Biologische Grundlagen der Sparsamkeit in neuronalen Netzen.

Das sich entwickelnde Babygehirn durchläuft eine Phase des Aufbaus einer großen Anzahl von Synapsen (Verbindungen zwischen Neuronen), gefolgt von einer Phase, in der fast die Hälfte der Verbindungen bis zum Jugendalter wieder abgebaut wird. Viele Wissenschaftler vermuten, dass diese Entfernung von Synapsen notwendig ist, um den Energieverbrauch des Gehirns aufgrund eines langsameren Stoffwechsels und hormoneller Veränderungen zu verringern. Die große Anzahl von Synapsen ermöglicht es dem kindlichen Gehirn, sich viele Informationen zu merken, was erklärt, warum Fremdsprachen vor der Pubertät leichter zu lernen sind. Wenn die Hälfte der Verbindungen bis zur Pubertät entfernt wird, kann das Gehirn Informationen besser zusammenfassen. Der Mechanismus, durch den die Hälfte der Verbindungen im sich entwickelnden jugendlichen Gehirn unterbrochen wird, ist noch unbekannt. Viele glauben, dass die Stoffwechselveränderungen die Menge an Biogenen (Nährstoffen) reduzieren, die für die Aufrechterhaltung der Synapsen benötigt werden. Die begrenzte Menge dieser Stoffe führt zu einem Wettbewerb zwischen den Eingangsverbindungen des Neurons um seine Existenz. Dieser Wettbewerb wird durch Methoden des kompetitiven Lernens modelliert, bei denen entweder die Summe der absoluten Werte der Eingangsgewichte des Neurons oder die Summe ihrer Quadrate konstant gehalten wird. Diese Methoden werden in selbstlernenden Netzen eingesetzt. In lehrerunterstützten Lernnetzen (z. B. direkten Propagierungsnetzen) wird der Wettbewerb zwischen den Eingangsgewichten der Neuronen normalerweise nicht berücksichtigt. In solchen Netzen werden die Verbindungen zwischen den Neuronen entfernt, nachdem ihre Gewichte trainiert wurden. Die entfernten Gewichte sind entweder die kleinsten Gewichte oder die Gewichte, die nur geringe Auswirkungen auf den durchschnittlichen Lernfehler haben.

Referenzen:

https://en.wikipedia.org/wiki/Synaptic_pruning

Huttenlocher, P. R. (1979).
Synaptische Dichte im menschlichen frontalen Kortex - entwicklungsbedingte Veränderungen und Auswirkungen des Alters.
Brain Res. 163, 195--205.

Braitenberg, V., Schuz, A. (1998).
Kortex: Statistik und Geometrie der neuronalen Konnektivität.
Berlin: Springer.

LeCun, Y., Denker, J. S., Solla, S. A., Howard, R. E., Jackel, L. D. (1990).
Optimale Hirnschädigung.
In Touretzky, D. S. (Eds), Advances in Neural Information Processing Systems 2, NIPS*89, Morgan Kaufmann, Denver, CO, 598--605.

Hassibi, B., Stork, D. G., Wolff, G. J. (1993).
Optimale Gehirnchirurgen und allgemeine Netzbereinigung.
Proc. IEEE Int. Konf. Neural. Netzwerke, 1, 293--299.

Miller, K. D., & MacKay, D. J. C. (1994).
Die Rolle von Zwängen beim Hebbschen Lernen.
Neural Computat, 6, 100--126.

Miller, K. D. (1996).
Synaptische Ökonomie: Wettbewerb und Kooperation in der synaptischen Plastizität.
Neuron, 17, 371--374.

Synaptic pruning - Wikipedia, the free encyclopedia
Synaptic pruning - Wikipedia, the free encyclopedia
  • en.wikipedia.org
In neuroscience, synaptic pruning, neuronal pruning or axon pruning refer to neurological regulatory processes, which facilitate changes in neural structure by reducing the overall number of neurons and synapses, leaving more efficient synaptic configurations. Pruning is a process that is a general feature of mammalian neurological development...
 
Mischek:
Imho mehr. Es ist unwahrscheinlich, dass Sie draußen einen Fachberater finden, der Ihren Anforderungen entspricht. Wenn Sie ein Budget haben, egal welches, ist es effizienter, es am Ende des Projekts zwischen Ihnen aufzuteilen, entweder zu gleichen Teilen oder nicht zu gleichen Teilen, basierend auf einer subjektiven Bewertung der Meta-Angebote.

Ich werde einen externen Experten unterstützen. Erstens glaube ich, dass Sie mindestens zwei brauchen (idealerweise sogar mehr), und zweitens ist es nicht sicher, dass zumindest ein paar der Forumsnutzer hier qualifizierter sind.

sergeev:

Es geht sogar noch einfacher.

In dieser Situation gehen wir vom Speziellen zum Allgemeinen über, wobei wir versuchen, zu universellen Modellen zu abstrahieren.

1. Zeichnen Sie (auf Papier + verbaler Algorithmus des Mathematikmodells) die Netzwerke, die wir realisieren können (Topologien und Lehrmethoden für sie).
2. Finden Sie gemeinsame Andockpunkte in den gezeichneten Modellen, um abstrakte Motorklassen zu erstellen.


Dies ist wahrscheinlich der am besten geeignete Ansatz.
 

tol64:

Ich denke, wenn es sich um einen Code handeln würde, könnte jeder Händler ihn nicht mehr verwenden. Jeder Händler und Programmierer, ja. Für jeden Händler die Möglichkeit der Einbeziehung der neuronet in das Handelssystem durch MQL5 Wizard wäre in Ordnung, aber dann würde ich vermuten, der Assistent müsste erheblich geändert werden.

Ich lese dieses Thema und beginne zumindest jetzt zu verstehen, wie kompliziert alles ist)).

1. Meiner Meinung nach muss es erstens eine leistungsfähige und vielseitige Bibliothek sein, die es einem Händler-Programmierer (oder einfach nur einem MQL-Programmierer) ermöglicht, ein neuronales Netz der erforderlichen Komplexität und Funktionalität zu erstellen. In diesem Stadium muss meiner Meinung nach eine Kernbibliothek erstellt werden, die aus einer kleinen Anzahl von Objekten besteht (maximale Abstraktion und Universalität sind hier wichtig).

2. Im zweiten Schritt ist es notwendig, die Bibliotheksfunktionalität detaillierter und ausführlicher zu schreiben (um die Netzwerktypen, Trainingsmethoden, Topologievarianten usw. zu bestimmen).

Und im dritten Schritt müssen Sie entscheiden, was genau in den Input eingespeist wird und wie er trainiert wird.

4. Zum Schluss noch das meiner Meinung nach Interessanteste. Zusammen mit MQ wäre es schön, eine Art "Assistent für neuronale Netze" zu entwickeln, mit dem eine Vorlage für ein neuronales Netz erstellt werden kann, wobei alle Merkmale konsistent angegeben werden.

Aus der Sicht eines Laien müsste es in etwa so aussehen. Starten Sie den Assistenten und geben Sie darin an: ein Netz von solchem und solchem Typ, so viele Schichten, Neuronen von solchem und solchem, verarbeiten Sie die Parameter von solchem und solchem Truthahn (oder analysieren Sie einfach einen bestimmten Informationsfluss), am Ausgang erhalten wir ein bestimmtes Signal.

Das Ergebnis des Assistenten sollte (zumindest scheint es mir eine gute Idee zu sein) eine Vorlage sein, die als separates Modul verwendet werden kann oder zur Entwicklung einer EA-Vorlage in einem bestehenden VISARD genutzt werden kann.

5. Wenn die Frage die Verwendung eines neuronalen Netzes für die Erstellung einer Vorlage des Experten durch den Assistenten betrifft, muss das Formular angegeben werden, in dem ein neuronales Netz hinzugefügt werden kann (es kann mehr als eines sein).

In diesem Fall müssen sich die Muster der neuronalen Netze an einem bestimmten Ort befinden (wie Signale usw.) und bestimmte Anforderungen erfüllen.

PS

Es wäre gut, die "Bedeutung" des gesamten neuronalen Netzes, einer einzelnen Schicht (oder eines Teils einer Schicht) und eines einzelnen Neurons bei diesem Ansatz zu definieren.

 
gpwr:
Das ist es, wozu ich Sie bringen wollte :) . Setzen Sie Ihre gute Arbeit fort.
 
Vitalität:

Ich schlage jedoch vor, dass wir einen separaten Bereich des Forums beantragen, denn es ist lästig, alles in einem Thread zu haben. Als Aufbewahrungsort für aufgestaute Gedanken ist es in Ordnung, aber wenn die Diskussion beginnt...

Es gibt ein Login für die Speicherung.
 

All diese kniffligen Netze sind lösbar - das Wichtigste ist handelsorientiert))) Und das bedeutet Integration in funktionierende EAs. Das bedeutet, dass es für die meisten typischen EAs nicht notwendig ist, eine Reihe von Hilfsmaßnahmen zu ergreifen, wie z. B. die Vorverarbeitung von Eingabedaten oder die Vorbereitung einer Trainingsstichprobe, und dass dies systematisiert und automatisiert werden sollte. D.h. wenn jemand eine Maske eingeben wollte, müsste er nicht erst eine Reihe von Maskenwerten generieren, dann eine Reihe von vorhergesagten Werten (z.B. den Preisanstieg für einige Barren), alles normalisieren usw. Dann das Netz trainieren.

Aus rein technischer Sicht könnte es so aussehen: Für die Eingabe von Neuronen haben wir eine virtuelle Funktion EnterData, die double zurückgibt. Wenn Sie einige Indikatoren oder was auch immer eingeben wollen, schreiben Sie einfach alles in diese Funktion.

Das Gleiche gilt für das Ausgangsneuron mit der Funktion ExitData, die berechnet, was vorhergesagt wird.

Ich möchte zum Beispiel Preisänderungen für 5 Balken vorhersagen: Ich habe die Funktion neu definiert

double ExitData(){

return(Open[-5]-Open[0]) ;

}

Oder ich möchte die Volatilität vorhersagen

double ExitData(){

return(High[iHighest(...,5,-5)]-Low[iLowest(....,5,-5)]) ;

}

usw.

Außerdem können Sie den Lernzeitraum und das Out-of-Sample als Eigenschaft des Netzobjekts festlegen. Und nach dem Training könnten wir die Merkmale der Equity-Kurve auf den Stichproben erhalten (z. B. Gewinnfaktor)

d.h.

Net.StartTime=2005

Net.FinishTime=2008 Jahr

Net.StartOutOfSamples=2009 Jahr

Net.FinishOutOfSamples=2011 Jahr

Net.Teach;

Net.OutOfSamples;

if (Net.PFOutOfSamples>3) Print("Gut");

Oder, wenn das Netz nicht selbst handelt, sondern z.B. die Volatilität vorhersagt, definiert der Nutzer die Funktion zur Bewertung der Netzqualität für OutOutOfSamples selbst neu.

Dann können die Tester und Optimierungswerkzeuge verwendet werden, um die beste Topologie zu finden oder den Netzwerktyp auszuwählen und vieles mehr