Tuesday, 25 April 2017

Forex Neuronales Netzwerk Forum

MetaTrader 4 - Beispiele mit Neuronalen Netzwerken in MetaTrader Einführung Viele von Ihnen haben wahrscheinlich die Möglichkeit der Verwendung von neuronalen Netzwerken in Ihrem EA betrachtet. Dieses Thema war sehr heiß nach 2007 Automated Trading Championship und die spektakuläre Gewinnung von Better mit seinem System auf neuronale Netze basiert. Viele Internet-Foren wurden mit Themen über Neuronale Netze und Devisenhandel überflutet. Leider ist das Schreiben nativer MQL4-Implementierung von NN nicht einfach. Es erfordert einige Programmierkenntnisse und das Ergebnis wäre nicht sehr effizient, besonders wenn youd wie Sie Ihr Endergebnis in Tester auf große Anzahl von Daten zu testen. In diesem Artikel zeigen wir Ihnen, wie Sie die frei verfügbare (unter LGPL), bekannte Fast Artificial Neural Network Library (FANN) in Ihrem MQL4-Code nutzen können, ohne dabei gewisse Hindernisse und Einschränkungen zu vermeiden. Weiter gehe ich davon aus, dass der Leser mit künstlichen neuronalen Netzwerken (ann) und Terminologie in Bezug auf dieses Thema vertraut ist, so krank konzentrieren sich auf praktische Aspekte der Verwendung bestimmter Umsetzung von ann in MQL4 Sprache. FANN-Funktionen Um die Möglichkeiten der FANN-Implementierung zu verstehen, müssen Sie sich mit der Dokumentation und den am häufigsten verwendeten Funktionen vertraut machen. Der typische Einsatz von FANN besteht darin, ein einfaches Feedforward-Netzwerk zu erstellen, es mit einigen Daten zu trainieren und auszuführen. Das erstellte und trainierte Netzwerk kann dann in einer Datei gespeichert und später für die weitere Verwendung wiederhergestellt werden. Um ein ann zu erstellen, muss man die fanncreatestandard () Funktion verwenden. Lets see seine Syntax: Wo numlayers die Gesamtzahl der Ebenen einschließlich der Eingabe-und Output-Layer darstellt. Das lNnum und die folgenden Argumente repräsentieren die Anzahl der Neuronen in jeder Ebene, beginnend mit der Eingabeschicht und endend mit der Ausgabeschicht. Um ein Netzwerk mit einer versteckten Schicht mit 5 Neuronen, 10 Eingängen und 1 Ausgang zu erstellen, müsste man es wie folgt aufrufen: Nach der Erstellung der Ann wird die nächste Operation mit einigen Ein - und Ausgangsdaten trainiert. Die einfachste Trainingsmethode ist ein inkrementales Training, das durch folgende Funktion erreicht werden kann: Diese Funktion nimmt den Zeiger auf struct fann zurück, der zuvor von fanncreatestandard () und dem Eingangsdatenvektor und dem Ausgangsdatenvektor zurückgegeben wurde. Die Eingangs - und Ausgangsvektoren sind vom Array vom Fankype-Typ. Diese Art ist in der Tat ein Doppel-oder Float-Typ, je nachdem, wie die FANN kompiliert wird. In dieser Implementierung werden die Eingangs - und Ausgangsvektoren Arrays von double sein. Sobald die Ann geschult ist, würde das nächste gewünschte Merkmal sein, dieses Netzwerk auszuführen. Die Funktion, die implementiert, ist wie folgt definiert: Diese Funktion nimmt den Zeiger auf struct fann, der das zuvor erstellte Netzwerk repräsentiert, und einen Eingabevektor des definierten Typs (double array). Der zurückgegebene Wert ist ein Ausgabevektorarray. Diese Tatsache ist wichtig, da für ein Versorgungsnetzwerk immer ein Elementarray mit dem Ausgangswert und nicht dem Ausgangswert selbst erhalten wird. Leider verwenden die meisten FANN-Funktionen einen Zeiger auf eine Struktur fann, die die Ann darstellt, die nicht direkt von MQL4 behandelt werden kann, die Strukturen nicht als Datentypen unterstützt. Um diese Einschränkung zu vermeiden, müssen wir das in irgendeiner Weise einpacken und uns vor MQL4 verstecken. Die einfachste Methode besteht darin, ein Array von struct fann-Zeigern mit den richtigen Werten zu erstellen und sie mit einem Index zu verweisen, der durch eine int-Variable dargestellt wird. Auf diese Weise können wir den nicht unterstützten Variablentyp durch einen unterstützten ersetzen und eine Wrapper-Bibliothek erstellen, die einfach in den MQL4-Code integriert werden kann. Wrapping der FANN rund Nach meinem besten Wissen MQL4 nicht unterstützt Funktionen mit variablen Argumenten-Liste, damit wir mit, dass zu behandeln. Wenn andererseits die C-Funktion (mit variabler Argumentlänge) mit zu vielen Argumenten aufgerufen wird, passiert nichts falsch, so dass wir eine feste maximale Anzahl von Argumenten in der an die C-Bibliothek übergebenen MQL4-Funktion annehmen können. Die resultierende Wrapper-Funktion würde wie folgt aussehen: Wir änderten den führenden fann mit f2M (was für FANN TO MQL steht), verwendete statische Anzahl von Argumenten (4 Ebenen) und der zurückgebende Wert ist nun ein Index für das interne Array von anns, das das struct enthält Die von FANN für den Betrieb benötigt werden. Auf diese Weise können wir diese Funktion einfach aus MQL-Code aufrufen. Das gleiche gilt für: Last, but not least ist die Tatsache, dass Sie Ihre einmal erstellte Ann durch den Aufruf zu zerstören: Um Freigabe Ann Handles sollten Sie Netzwerke in umgekehrter Reihenfolge zu zerstören, als sie erstellt wurden. Alternativ können Sie: Im Im ziemlich sicher einige von euch vielleicht bevorzugen, um ihre geschultes Netzwerk für die spätere Verwendung mit speichern: Natürlich kann das gespeicherte Netz später geladen werden (oder eher neu erstellt) mit: Sobald wir wissen, die grundlegenden Funktionen, die wir versuchen könnten Verwenden Sie das in unserem EA, aber zuerst müssen wir das Fann2MQL Paket installieren. Installieren von Fann2MQL Um die Verwendung dieses Pakets zu erleichtern, habe ich das msi-Installationsprogramm erstellt, das den gesamten Quellcode sowie vorkompilierte Bibliotheken und die Fann2MQL. mqh-Header-Datei enthält, die alle Fann2MQL-Funktionen deklariert. Das Verfahren der Installation ist recht einfach. Zuerst werden Sie informiert, dass Fann2MQL unter GPL-Lizenz ist: Installation von Fann2MQL, Schritt 1 Dann wählen Sie den Ordner, um das Paket zu installieren. Sie können das Standard-Programm FilesFann2MQL verwenden oder direkt in Ihr Meta Traderexperts Verzeichnis installieren. Das spätere wird alle Dateien direkt in ihre Plätze sonst youll müssen sie manuell zu kopieren. Installation von Fann2MQL, Schritt 2 Das Installationsprogramm stellt Dateien in folgende Ordner ein: Wenn Sie sich für die Installation im dedizierten Fann2MQL-Ordner entschieden haben, kopieren Sie bitte den Inhalt der zugehörigen Unterordner und Bibliotheken in das entsprechende Meta Trader-Verzeichnis. Das Installationsprogramm installiert auch die FANN-Bibliothek in den Ordner Systembibliotheken (Windowssystem32 in den meisten Fällen). Der src-Ordner enthält den gesamten Quellcode von Fann2MQL. Sie können den Quellcode lesen, der eine ultimative Dokumentation ist, wenn Sie mehr Informationen über die Interna benötigen. Sie können den Code auch verbessern und zusätzliche Eigenschaften hinzufügen, wenn Sie mögen. Ich ermutige Sie, schicken Sie mir Ihre Patches, wenn Sie etwas Interessantes umzusetzen. Verwenden von neuronalen Netzwerken in Ihrem EA Sobald die Fann2MQL installiert ist, können Sie beginnen, Ihre eigene EA oder Indikator zu schreiben. Theres viel der möglichen Nutzung von NN. Sie können sie verwenden, um zukünftige Preisbewegungen zu prognostizieren, aber die Qualität solcher Vorhersagen und die Möglichkeit, sie wirklich zu nutzen, ist zweifelhaft. Sie können versuchen, Ihre eigene Strategie mit Reinforcement Learning Techniken, sagen ein Q-Learning oder etwas ähnliches zu schreiben. Sie können versuchen, NN als Signalfilter für Ihre heuristische EA verwenden oder kombinieren Sie alle diese Techniken und was auch immer Sie wirklich wollen. Youre begrenzt durch Ihre Fantasie nur. Hier zeige ich Ihnen ein Beispiel für die Verwendung von NN als einfachen Filter für Signale, die von MACD erzeugt werden. Bitte betrachten Sie es nicht als wertvolle EA, sondern als Beispielanwendung von Fann2MQL. Während der Erklärung, wie das Beispiel EA: NeuroMACD. mq4 funktioniert Ill zeigen Ihnen, wie die Fann2MQL effektiv in MQL verwendet werden kann. Das erste, was für jede EA ist die Deklaration der globalen Variablen, definiert und Abschnitt einschließen. Hier ist der Anfang von NeuroMACD, der diese Dinge enthält: Der Befehl include sagt, die Fann2MQL. mqh-Header-Datei zu laden, die die Deklaration aller Fann2MQL-Funktionen enthält. Danach stehen alle Fann2MQL-Paketfunktionen für das Skript zur Verfügung. Die ANNPATH-Konstante definiert den Pfad zum Speichern und Laden von Dateien mit geschulten FANN-Netzwerken. Sie müssen diesen Ordner erstellen, d. H. C: ANN. Die NAME-Konstante enthält den Namen dieses EA, der später zum Laden und Speichern von Netzwerkdateien verwendet wird. Die Eingabeparameter sind ziemlich offensichtlich, und diejenigen, die arent sind, werden später erläutert, sowie globale Variablen. Der Eintrittspunkt jeder EA ist ihre init () - Funktion: Zuerst prüft sie, ob die EA angewendet wird, um die Zeitrahmenperiode zu korrigieren. AnnInputs Variable enthält die Anzahl der neuronalen Netzeingänge. Ebenso verwenden 3 Sätze von verschiedenen Argumenten wollen wir es durch 3 teilbar. AnnPath wird berechnet, um die EA NAME und MagicNumber widerspiegeln. Die aus dem SlowMA berechnet wird. FastMA - und SignalMA-Eingangsargumente, die später für die MACD-Anzeigesignalisierung verwendet werden. Sobald es die AnnPath kennt, versucht die EA, neuronale Netze mit annload () - Funktion zu laden, die Ill unten beschreiben. Die Hälfte der geladenen Netze ist für die Langpositionsfilterung und die andere Hälfte für Kurzschlüsse bestimmt. Die Variable AnnsLoaded wird verwendet, um anzuzeigen, dass alle Netzwerke korrekt initialisiert wurden. Wie Sie wahrscheinlich bemerkt haben, dieses Beispiel EA versucht, mehrere Netzwerke zu laden. Ich bezweifle es wirklich notwendig in dieser Anwendung noch wollte ich Ihnen zeigen, das volle Potenzial von Fann2MQL, die Handhabung mehrere Netzwerke zur gleichen Zeit und kann sie parallel unter Ausnutzung von mehreren Kerne oder CPUs verarbeiten. Um es zu ermöglichen, nutzt Fann2MQL die Intel Threading Building Blocks Technologie. Mit der Funktion f2Mparallelinit () wird diese Schnittstelle initialisiert. Hier ist die Art und Weise, wie ich Netze zu initialisieren: Wie Sie sehen können, wenn die f2Mcreatefromfile () fehlschlägt, was durch den negativen Rückgabewert angezeigt wird, wird das Netzwerk mit f2Mcreatestandard () - Funktion mit Argumenten, dass das erstellte Netzwerk sollte 4 Schichten (Einschließlich Eingang und Ausgang), AnnInput Eingänge, AnnInput Neuronen in der ersten versteckten Schicht, AnnInput 21 Neuronen in der 2. versteckten Schicht und 1 Neuron in der Ausgabeschicht. F2Msetactfunctionhidden () wird verwendet, um die Aktivierungsfunktion von ausgeblendeten Layern auf SIGMOIDSYMMETRICSTEPWISE zu setzen (siehe FANN Dokumentation von fannactivationfuncenum) und das gleiche gilt für die Ausgabeschicht. Dann gibt es den Aufruf von f2mrandomizeweights (), mit dem Neuron-Verbindungsgewichte im Netzwerk initialisiert werden. Hier habe ich die Reichweite von lt-0.4 0.4gt, aber Sie können alle anderen je nach Ihrer Anwendung verwenden. An diesem Punkt haben Sie wahrscheinlich die Funktion debug () bemerkt, die ich ein paar Mal verwendet habe. Seine eine der einfachsten Methoden, um das ausführliche Niveau Ihres EA zu ändern. Zusammen mit ihm und dem Eingangsparameter DebugLevel können Sie einstellen, wie Ihr Code die Debug-Ausgabe erzeugt. Wenn das erste Argument der Funktion debug () die Debug-Ebene höher als DebugLevel ist, erzeugt die Funktion keine Ausgabe. Wenn sein unterer Wert gleich der Textfolge ist, wird gedruckt. Wenn die Debug-Ebene 0 ist, wird der String ERROR: an den Anfang angehängt. Auf diese Weise können Sie von Ihrem Code erzeugte Debugging auf mehrere Ebenen aufteilen. Die wichtigsten sind wahrscheinlich Fehler, so dass sie der Ebene 0 zugeordnet sind. Sie werden gedruckt, es sei denn, Sie senken Ihre DebugLevel auf unter 0 (was nicht empfohlen wird). Auf der Ebene 1 werden einige wichtige Informationen gedruckt, wie die Bestätigung der erfolgreichen Netzwerkbeladung oder - erstellung. Auf Stufe 2 oder höher nimmt die Bedeutung der gedruckten Information allmählich ab. Vor der ausführlichen Erklärung der start () - Funktion, die sehr langwierig ist, muss ich Ihnen einige weitere Funktionen zeigen, die den Netzwerkeingang vorbereiten und die eigentlichen Netzwerke vorbereiten sollen: Die Funktion annprepareinput () wird verwendet, um den Input-Namen für die Netzwerke vorzubereiten (Also der Name). Der Zweck davon ist ganz einfach, aber das ist der Punkt, den ich daran erinnern muss, dass die Eingangsdaten richtig normalisiert werden müssen. Es gibt keine anspruchsvolle Normalisierung in diesem Fall habe ich einfach die MACD Haupt-und Signalwerte, die nie überschreiten den gewünschten Bereich auf den Rechnungsdaten. In dem realen Beispiel sollten Sie wahrscheinlich mehr Aufmerksamkeit auf dieses Problem zu zahlen. Wie Sie vermutlich vermuten, die richtige Eingabe Argumente für Netzwerk-Eingang, Codierung, Zerlegung und Normalisierung ist einer der wichtigsten Faktoren in der neuronalen Netzwerk-Verarbeitung. Wie ich bereits erwähnt habe, hat die Fann2MQL die Möglichkeit, die normale Funktionalität von MetaTrader zu erweitern, dh eine parallele Multithread-Verarbeitung neuronaler Netzwerke. Das globale Argument Parallel steuert dieses Verhalten. Die runanns () - Funktion führt alle initialisierten Netzwerke aus und erhält die Ausgänge und speichert sie im AnnOutput-Array. Die Funktion "annsrunparallel" ist verantwortlich für die multithreaded Bearbeitung des Jobs. Es ruft die f2mrunparallel () auf, die als erstes Argument die Anzahl der zu verarbeitenden Netzwerke annimmt, das zweite Argument ist ein Array, das Handles für alle Netzwerke enthält, die Sie ausführen möchten, und liefert den Eingabevektor als drittes Argument. Alle Netze müssen auf den gleichen Eingangsdaten laufen. Das Abrufen der Ausgabe aus dem Netzwerk erfolgt über mehrere Aufrufe zu f2mgetoutput (). Nun sehen wir die start () Funktion: Ill beschreiben sie kurz, da sie gut kommentiert ist. Die tradeallowed () prüft, ob sie handeln darf. Grundsätzlich prüft es die AnnsLoaded-Variable, die angibt, dass alle Anns ordnungsgemäß initialisiert wurden, prüft dann auf den richtigen Zeitrahmen Zeitraum minimalen Kontostand und am Ende erlaubt nur den ersten Tick einer neuen Bar handeln. Die nächsten zwei Funktionen, die verwendet werden, um die Netzwerkeingabe vorzubereiten und die Netzwerkverarbeitung durchzuführen, wurden nur wenige Zeilen oben beschrieben. Als nächstes berechnen und setzen wir Variablen für die spätere Verarbeitung der MACD-Werte von Signal und Hauptleitung für die letzte Aufbauleiste und die vorherige. Der aktuelle Balken wird weggelassen, da er noch nicht aufgebaut ist und wahrscheinlich neu gezeichnet wird. Das SellSignal und das BuySignal werden entsprechend dem MACD-Signal und dem Hauptnetz-Crossover berechnet. Beide Signale werden für die Long - und Short-Positionsverarbeitung verwendet, die symmetrisch sind, so dass ich nur den Fall für longs beschreibe. Die LongTicket-Variable enthält die Ticketnummer der aktuell geöffneten Position. Wenn er gleich -1 ist, wird keine Position geöffnet, wenn das BuySignal gesetzt ist, das eine gute Gelegenheit zum Öffnen der Long-Position anzeigen könnte. Wenn die Variable NeuroFilter nicht gesetzt ist, wird die Long-Position geöffnet und das ist der Fall ohne die neuronale Netzwerk-Filterung von Signalen - die Bestellung wird gesendet, um zu kaufen. An dieser Stelle soll die Variable LongInput den InputVector berücksichtigen, der von annprepareinput () für die spätere Verwendung vorbereitet wird. Wenn die LongTicekt-Variable die gültige Ticketnummer enthält, prüft die EA, ob sie noch geöffnet ist oder durch den StopLoss oder TakeProfit geschlossen wurde. Wenn die Bestellung nicht abgeschlossen ist, geschieht nichts, wenn der Auftrag jedoch geschlossen ist, wird der Trainings-Vektor, der nur einen Wert hat, berechnet, um den Wert -1 zu erhalten, wenn der Auftrag mit Verlust abgeschlossen wurde oder 1, wenn der Auftrag mit Gewinn abgeschlossen wurde . Dieser Wert wird dann an die anntrain () - Funktion übergeben und alle Netzwerke, die für die Handhabung der Long-Position verantwortlich sind, werden damit trainiert. Als Eingangsvektor wird die Variable LongInput verwendet, die den InputVector zum Zeitpunkt des Öffnens der Position hält. Auf diese Weise wird das Netzwerk gelehrt, welches Signal Gewinn bringt und welches nicht. Sobald Sie ein geschultes Netzwerk haben, schalten Sie den NeuroFilter auf true um. Das annwiselong () verwendet das neuronale Netzwerk, das als Mittelwert von Werten berechnet wird, die von allen Netzwerken zurückgegeben werden, die für die Verarbeitung der Langposition gedacht sind. Der Delta-Parameter wird als Schwellenwert verwendet, der anzeigt, dass das gefilterte Signal gültig oder nein ist. Wie viele andere Werte wurde es durch den Prozess der Optimierung erhalten. Jetzt, sobald wir wissen, wie es funktioniert Ill zeigen Ihnen, wie es verwendet werden kann. Das Testpaar ist natürlich EURUSD. Ich verwendete die Daten von Alpari. Konvertiert in M5 Zeitrahmen. Ich habe den Zeitraum von 2007.12.31 bis 2009.01.01 für Trainingsoptimierung und 2009.01.01-2009.03.22 für Testzwecke verwendet. Im allerersten Versuch habe ich versucht, die profitabelsten Werte für StopLoss, TakeProfit, SlowMA, FastMA und SignalMA Argument zu erhalten, die ich dann in die Datei NeuroMACD. mq4 codiert habe. Der NeuroFlter wurde ebenso ausgeschaltet wie SaveAnn. Wurde die AnnsNumber auf 0 gesetzt, um eine neuronale Verarbeitung zu vermeiden. Ich habe den genetischen Algorithmus für die Optimierung verwendet. Sobald die Werte erhalten wurden, sah der resultierende Bericht wie folgt aus: Bericht über Trainingsdaten nach grundsätzlicher Parameteroptimierung. Wie Sie sehen können, habe ich diese EA auf dem Mini-Konto mit der Lot-Größe von 0,01 und der Anfangs-Balance von 200 ausgeführt. Allerdings können Sie diese Parameter entsprechend Ihren Account-Einstellungen oder Einstellungen abstimmen. An diesem Punkt haben wir genug profitable und verlieren Trades, so konnten wir die SaveAnn einschalten und die AnnsNumber auf 30 setzen. Einmal getan, so laufe ich das Tester noch einmal. Das Ergebnis war genau das gleiche mit Ausnahme der Tatsache, dass der Prozess viel langsamer war (als Ergebnis der neuronalen Verarbeitung) und der Ordner C: ANN wurde mit den ausgebildeten Netzwerken, wie auf dem Bild unten gezeigt bevölkert. Stellen Sie sicher, dass vor dem Ausführen des Ordners C: ANN der Ordner C: ANN vorhanden war. Sobald wir Netzwerke trainiert haben, ist es Zeit zu testen, wie es sich verhält. Versuche es zuerst mit den Trainingsdaten. Ändern Sie den NeuroFilter auf true und SaveAnn auf false und starten Sie den Tester. Das Ergebnis, das ich erhalten habe, ist unten gezeigt. Beachten Sie, dass es leicht variieren kann für Sie Fall, da es einige Zufälligkeit in Netzwerken in Neuron-Verbindung Gewichte bei der Netzwerk-Initialisierung (in diesem Beispiel habe ich explizite Aufruf von F2Mrandomizeweights () innerhalb annload ()). Ergebnis bei Trainingsdaten mit eingeschalteter Signalneuralfilterung. Der Reingewinn ist etwas größer (20,03 gegenüber 16,92), der Gewinnfaktor ist jedoch deutlich höher (1,25 gegenüber 1,1). Die Anzahl der Trades ist viel geringer (83 vs 1188) und die durchschnittliche aufeinander folgende Verlustzahl wird von 7 auf 2 gesenkt. Allerdings zeigt es nur, dass die neuronale Signal-Filterung funktioniert, aber es sagt nichts darüber, wie es auf Daten, die nicht verwendet wurden, arbeitet Während des Trainings. Das Ergebnis, das ich aus dem Testzeitraum (2009.01.01 - 2009.30.28) erhalten habe, ist nachfolgend dargestellt: Ergebnis aus Testdaten mit Neuronalfilterung eingeschaltet. Die Anzahl der ausgeführten Trades ist recht niedrig und es ist schwer zu sagen, die Qualität dieser Strategie, aber ich war nicht dabei, Ihnen zu zeigen, wie die besten profitable EA zu schreiben, sondern zu erklären, wie Sie neuronale Netze in Ihrem MQL4-Code verwenden könnte. Die wirkliche Wirkung der Verwendung von neuronalen Netzwerken in diesem Fall kann nur gesehen werden, wenn die Ergebnisse der EA auf Testdaten mit NeuroFilter ein-und ausschalten verglichen. Unten ist das Ergebnis der Testdatenperiode ohne neuronale Signalfilterung: Ergebnisse aus Testdaten ohne Neuronalfilterung. Der Unterschied ist ganz offensichtlich. Wie Sie sehen können, die neuronale Signal-Filterung verließ die EA zu einem profitablen Fazit Ich hoffe, dass Sie aus diesem Artikel gelernt haben, wie man neuronale Netze in MetaTrader verwenden. Mit Hilfe der einfachen, kostenlosen und opensource Paket Fann2MQL können Sie leicht hinzufügen, die neuronale Netzwerk-Ebene in praktisch jedem Expert Advisor oder starten Sie Ihre eigenen, die vollständig oder teilweise auf neuronale Netze basiert schreiben. Die einzigartige Multithreading-Fähigkeit beschleunigt die Verarbeitung oft, je nach Anzahl der CPU-Kerne, speziell bei der Optimierung bestimmter Parameter. In einem Fall verkürzte es die Optimierung meiner Reinforcement Learning basierten EA-Verarbeitung von etwa 4 Tagen auf nur 28 Stunden auf einer 4-Core Intel CPU. Während des Schreibens dieses Artikels habe ich beschlossen, Fann2MQL auf seiner eigenen Website: fann2mql. wordpress setzen. Dort finden Sie die aktuelle Fann2MQL-Version und eventuell alle zukünftigen Versionen sowie die Dokumentation aller Funktionen. Ich verspreche, diese Software unter GPL-Lizenz für alle Versionen zu halten, so dass, wenn Sie mir Kommentare, Feature-Anfragen oder Patches, die ich interessant finden, sicher sein, es zu finden nächsten Releases. Bitte beachten Sie, dass dieser Artikel nur die sehr grundlegende Verwendung von Fann2MQL zeigt. Da dieses Paket ist nicht viel mehr als FANN können Sie alle Werkzeuge für die Verwaltung von FANN-Netzwerken, wie verwenden: Und theres viel mehr über FANN auf der Fast Artificial Neural Network Library Homepage: leenissen. dk fann Post Scriptum Nach dem Schreiben dieses Artikels habe ich Fanden einen unwesentlichen Fehler in NeuroMACD. mq4. Die OrderClose () - Funktion für die Short-Position wurde mit einer Long-Position-Ticketnummer gespeist. Es führte zu einer schiefen Strategie, die eher Shorts und schließen longs: In der richtigen Version des Skripts habe ich diesen Fehler behoben und entfernt die OrderClose () - Strategie überhaupt. Dies änderte nicht das Gesamtbild des Einflusses der neuronalen Filterung auf die EA noch die Balance-Kurve Form war ganz anders. Sie finden beide Versionen dieser EA zu diesem Artikel beigefügt. Finally ein echtes neuronales Netzwerk EA Free - etwas Neues Kommerzielles Mitglied Registriert seit Sep 2008 911 Beiträge Hello Everyone, its been a while. Ich normalerweise dont nehmen so lange Pausen von der Teilnahme an diesem Forum aber für mehr als ein Jahr Ive an einem sehr intensiven Projekt gearbeitet und nach einem Jahr der Vorwärts-Tests Im hier, um es mit allen von Ihnen zu teilen. Im Freunde mit vielen professionellen Händlern und einem Haufen von uns zusammen, kombiniert unsere Kompetenz und erstellt ein neuronales Netzwerk automatisiertes System für Metatrader, die tatsächlich funktioniert. Da waren bewusst, dass die meisten EAs absolut wertlos oder schlechter sind, Betrug, dachten wir wed liefern etwas einzigartiges für den durchschnittlichen Einzelhändler von Menschen, die tatsächlich vertraut werden können. Diese Gruppe heißt Metaneural. Weve nutzte neuronale Netze und wandte sie an den Handel von Forex erfolgreich in der Vergangenheit an und beschloss, diese Methode in ein Metatrader-System zu übersetzen. Es ist allgemein bekannt, dass die Großhandelsunternehmen und Hedgefonds anspruchsvolle künstliche Intelligenz und nutzale Netzwerksysteme nutzen, um von den Finanzmärkten mit erstaunlicher Genauigkeit zu profitieren. Wir dachten, warum kann diese Macht auch uns zur Verfügung stehen - die kleinen Geldanleger Also nahm ich eine Pause von allen meinen anderen Aktivitäten und arbeitete hart mit Metaneural dieses System zu entwickeln, das ich die einzige wirkliche neuronale Netz EA zu sein glauben. In der Tat, es doesnt sogar ein EA zu sein, kann der Code in C geschrieben werden, um genau die gleiche Weise in Tradestation zu arbeiten, eSignal, neuroshell oder jede Plattform, die DLL-Import und Datenerfassung ermöglicht, weil das neuronale Netz Schöpfung geschieht Neurolösungen. Ive bildete Indikatoren und Handelssysteme für die forexfactory Gemeinschaft seit Jahren, also wollte ich Ihnen Kerle die einzige freie Version des Metaneural EA im Internet geben. Ich möchte Feedback und Eindrücke bekommen. Wenn dieser Thread geht gut und doesnt get sidetracked Ill verlängern die Studie. Ive hatte Spaß, den Forexmarkt mit den großen Köpfen auf diesem Forum seit Jahren zu entziffern, und es ist mein Vergnügen, zurück zu geben. Neuronale Netze in EAs ist die Zukunft, ich hoffe, ihr könnt das realisieren und eure eigenen Systeme entwickeln. Der erste Schritt bei der Schaffung eines künstlichen neuronalen Netzwerk Gehirns ist es, die Daten zu sammeln, um die die Struktur des Gehirns wird gebildet werden. Da wir versuchen, ein Gehirn zu schaffen, das wissen, wie man die Märkte tauscht, müssen wir Marktdaten sammeln. Allerdings können wir nicht einfach sammeln eine Masse von Daten und Dump es in unsere neuronale Maschine, um die Struktur unseres Gehirns zu schaffen. Wir müssen die Daten in dem Format zu sammeln, die wir das Gehirn wollen, dass die Daten zu verarbeiten und schließlich das gleiche Format, das wir es schaffen wollen Ausgabe in. Mit anderen Worten, waren nicht nur unser Gehirn sagt, was zu denken, indem sie Rohdaten geben, Aber wir müssen es sagen, wie man denken, indem man diese Rohdaten in eine intelligible Konfiguration formuliert. In diesem Fall ist unsere verständliche Konfiguration Muster. Wir sammeln Daten in Segmenten, jedes Segment besteht aus einer Reihe von Bars, die durch den Händler in unserem proprietären Sammelindikator, die mit allen unseren Paketen kommt. Diese Gruppierung von Bars wird in Bezug auf die nächste Bar, die nach der Gruppierung kommt gesammelt - wir nennen dies die Zukunft bar. Wann waren die Erhebung Marktdaten die Zukunft Bar bekannt ist, weil es alle historischen Daten ist, ist es die nächste Bar nach der Gruppierung. Die Idee ist, dass das Gehirn des neuronalen Netzes komplexe Muster in der Balkengruppierung findet und die gesammelten Informationen, einschließlich der nächsten Balken nach der Gruppierung, verwendet, um festzustellen, welche komplexen Muster dem Ergebnis des nächsten Takts vorangehen. Während des tatsächlichen Handels, das Ergebnis wird die Zukunft Bar, die in der Tat macht es möglich, mit einem hohen Maß an Genauigkeit der Richtung des Marktes, bevor es passiert wissen. Die gesammelten Daten werden in eine Kalkulationstabelle extrahiert, die Preisdaten als offen, hoch, niedrig, geschlossen (OHLC) anzeigt. Die OHLC von jedem Balken wird gesondert gesammelt und in einer eigenen Säule plaziert. Im obigen Beispiel repräsentiert jede Zeile insgesamt 3 Balken. Daher stellen die Säulen Hunderte oder Tausende von Bars gehen zurück in history. In hinaus gesammelt Sie EHTS - können auch die Werte von fast jedem Indikator sammeln Sie auswählen, die im Wesentlichen, dass Indikator die Fähigkeit geben zu denken, basierend Marktbedingungen ändern und vorhersagen Den nächsten Wert. Neural Network Building und Schulung Jetzt, wo wir unsere gesammelten Daten haben, extrahiert in eine Tabellenkalkulationsdatei in verständlicher Form, können wir es in unser neuronales Netz Engine laden, die die Struktur des künstlichen Gehirns schaffen, trainieren sie und testen ihre Genauigkeit vor Speichern der Struktur. Sobald die gesammelten Daten in das Netzwerk-Building-Programm importiert werden Sie die Wahl zu wählen, welche Bits von Daten, die Sie verwenden möchten, um Ihr Gehirn zu bauen. Dies ist ein wichtiges Merkmal, da es dem Benutzer ermöglicht, viele verschiedene Strategien zu erstellen, basierend darauf, welche Daten als notwendig erachtet werden. Was in diesem Schritt im Wesentlichen getan wurde, ist die Bestimmung, was der Motor zur Erzeugung der oben erwähnten komplexen Muster verwenden wird, was letztendlich die Projektionsfähigkeit des neuronalen Netzwerks EA bestimmt. Zum Beispiel sagen, Sie wollten das neuronale Netzwerk zu sagen, nur für Muster in den offenen Preisen von Bars in Bezug auf die Indikatorwerte aus Ihrem Favoriten-Indikator zu suchen. Sie wählen dann Ihr Kennzeichen im Kollektor und wählen nur die offenen und Dateneingaben in der oben dargestellten Gebäudesoftware. Sie können auch alle Eingänge auswählen, mit Ausnahme der Spalte output1, die Ihren Ausgabewert anzeigt. Wenn Sie alle Eingaben auswählen, wird das komplexeste Lernmuster ermöglicht, so dass Ihr Gehirn auf viele verschiedene Szenarien reagieren kann. Sobald die gewünschten Eingänge und Ausgänge ausgewählt sind, erzeugt die Software die Struktur Ihres neuronalen Netzwerkhirns und Sie können damit beginnen, es zu trainieren. Ein Teil der gesammelten Daten wird beiseite gestellt und verwendet, um die Genauigkeit Ihres künstlichen Gehirns zu trainieren und zu testen. Sie werden sehen, dass die gewünschte Ausgabe anfängt, sich den Testdaten anzupassen, wie sie es erlernt. Sobald dieser Prozess abgeschlossen ist, können Sie das strukturierte künstliche Gehirn in Form einer DLL exportieren, die von der MetaNeural EA verwendet wird. Sobald das Gehirn gebaut, trainiert, getestet und als DLL exportiert, können Sie beginnen, mit einem automatisierten neuronalen Netzwerk Gehirn, das komplexe Muster, die unmöglich für einen Menschen zu erreichen sind, zu sehen. Holen Sie sich die Metaneural EA FREI jetzt durch die Finanzierung eines Kontos bei FinFX mit jedem Betrag und mit unserem Handel Kopierer Service zu spiegeln unsere professionelle gewinnende Trades in Ihrem Konto. Nachdem 50 volle Lots gehandelt werden, erhalten Sie die Metaneural EA mit voller Funktionalität für FREI Konten müssen mit dem Link finanziert werden, der im Preisbereich der Metaneural Website bereitgestellt wird. Legen Sie diese Dateien in den folgenden Ordnern in Metatrader Expert Advisor - Metatrader 4experts Collector Indicator (DatacollectorV2a) - Metatrader 4expertsindicators Neural Network Indicator (Metaneural NN Indicator) - Metatrader 4expertsindicators MQLLock und MT4NSAdapter DLL-Dateien - Metatrader 4expertslibraries Sie müssen installieren Neurosolutions 6 und Visual Studio 6 für sie funktionieren, Anweisungen zu diesen Installationen finden Sie in der sehr detaillierte Anleitung zu diesem Beitrag beigefügt. DAS HANDBUCH MÜSSEN Ja, es kann gleichzeitig auf mehrere Währungen angewendet werden, da es für jede Währung individuell trainiert werden kann und für jede Währung eine neuronale Netzstruktur erstellt werden kann. Würde ich sagen, die einzige Broker Abhängigkeit wäre die Integrität ihrer Preiszufuhr, desto stabiler und konsequenter ihre Futtermittel, desto besser werden die Trainingsdaten werden und anschließend die Trades. Waren nicht scalping unbedingt so Ausführung Geschwindigkeit ist nicht sehr wichtig. Danke für Ihr Interesse. Herzlichen Glückwunsch zur Entwicklung eines Systems, das gesunde Erträge gibt. Immer besser als Wunder EAs, die in der Regel am Ende weht das Konto. Ich bin ein kommerzielles Mitglied mich teilen meine Fibonacci Makeover-System (ForexFibs) hier, so kann ich verstehen, warum Sie eine kostenlose EA anbieten. Meine Frage ist, kann dieses EA auf mehrere Währungen angewendet werden, da es auf Real Neural Networks basiert Ist es abhängig von Broker und Ausführungsgeschwindigkeit


No comments:

Post a Comment