Neuronale Netze und Handel. Praktische Anwendung

Die Handelsmode erlebt zusammen mit dem Bitcoin-Wechselkurs Höhen und Tiefen. Jetzt ist dieses Thema nach einem unglaublichen Wachstum im Jahr 2018 auf einem Tiefpunkt. Viele haben es in dieser Zeit geschafft, sich mit Krypto-Börsen vertraut zu machen - sie haben sich mit dem Thema befasst, studiert, gehandelt, Geld verloren und manchmal sogar verdient. Infolgedessen ging die Mode vorbei, aber die Erfahrung blieb, wenn auch negativ. Die Wörter "lang", "kurz", "verbreitet", "Taucher" sind von denen zu hören, von denen Sie dies sicherlich nicht erwarten. Aber nicht nur der Handel mit HĂ€nden hat Aufmerksamkeit erregt, es gibt auch Handelsbots. Was haben wir in diesem Bereich, worĂŒber sprechen die Erfahrungen der letzten 2-3 Jahre?

Leider gibt es auch in diesem Bereich nichts Gutes. Es gibt viele Tools zum Schreiben von Trading Bots, aber es gibt keine stabil profitablen Strategien. Im besten Fall muss eine funktionierende Lösung stĂ€ndig von einem Paar HĂ€ndler-Programmierer gewartet werden, die die Einstellungen fĂŒr den aktuellen Markt Ă€ndern. Das Standardergebnis nach dem Anschließen eines vollstĂ€ndig autonomen Bots an die LagerstĂ€tte besteht darin, die LagerstĂ€tte zu entleeren.

Die letzte Hoffnung bleibt - neuronale Netze. Dies sollte sicherlich passieren, da das neuronale Netzwerk als Person lernt und sich an den Markt anpasst. Wie geht es dir in diesem Bereich? Nun ... du hast es erraten. Alles ist schlecht, es wird viel geredet, aber es gibt keine funktionierenden Lösungen. Alles ist sehr schlecht! Ein anschauliches Beispiel hierfĂŒr ist der MQL5 Community Application Store. Hinter der Marke MQL5 steht eine professionelle Handelsplattform - MetaTrader5 sowie eine riesige Community von HĂ€ndlern und Programmierern. In diesem GeschĂ€ft gibt es also einen Abschnitt fĂŒr Lösungen, die auf neuronalen Netzen basieren. Es gibt viele Bots, aber keinen einzigen echten. Das HinzufĂŒgen eines Bots ĂŒber ein neuronales Netzwerk ist nach den Regeln verboten. Es ist schwer zu glauben, aber es ist. Das Verbot der Verbindung einer externen API schließt die Verwendung neuronaler Netze aus, und die in MQL5 integrierten Tools funktionieren in der Praxis nicht. Ich habe dieses Problem mit dem technischen Support von MQL5 besprochen.Ich habe keine klare Antwort erhalten. Infolgedessen gibt es auf dem Markt nichts, was wirklich von der Stange ist. Die auf dem Github dargestellten Lösungen aus der Reihe „Teach yourself“ werden nicht berĂŒcksichtigt.

Okay, ich bin mit der EinfĂŒhrung fertig und komme zur Sache. Ich habe es geschafft, ein neuronales Netzwerk zu trainieren, es gibt wĂŒrdige Ergebnisse auf dem realen Markt. Weiter, ohne auf Details einzugehen, werde ich beschreiben, wie dies getan wurde.

Der erste und wichtigste Fehler aller, die versuchen, dem neuronalen Netz den Handel beizubringen, ist das Denken des Handels ĂŒber den Markt. Normalerweise versucht ein HĂ€ndler zusammen mit einem Programmierer, der zuvor Bots geschrieben hat, eine auf neuronalen Netzen basierende Lösung zu implementieren. Der Trading-Bot-Algorithmus löst das Problem, den richtigen Einstiegspunkt fĂŒr die Position zu finden und "Take" und "Stop" zu bestimmen. Wenn Sie diese Aufgabe beim Entwerfen eines neuronalen Netzwerks berĂŒcksichtigen, funktioniert nichts. Sie können endlose Varianten von Eingabedaten endlos aussortieren, Indikatoren angeben oder nicht angeben, verschiedene Arten von neuronalen Netzen ausprobieren, KrĂŒcken in Form von Training nur in bestimmten Bereichen ersetzen oder nur bekannte Muster trainieren. Wird nicht funktionieren.

Bei einem neuronalen Netzwerk mĂŒssen Sie wie ein Kind aussehen, die Welt mit den Augen betrachten und mit einfachen Aufgaben beginnen. Die einfachste Frage, die gestellt werden kann, lautet: "Wo wird der Preis durch X Kerzen steigen oder fallen?". Es spielt keine Rolle, wie stark sich der Preis Ă€ndert, und es spielt keine Rolle, dass die Antwort nicht in eine Handelsstrategie umgewandelt werden kann. Wir vergessen den Handel, jetzt ist die Hauptaufgabe, das Netzwerk zumindest etwas zu erziehen, nur die richtige Antwort zu bekommen.

Ich hatte diese anfĂ€ngliche Aufgabe nach 100.500 Eingabeauswahlen gelöst. Verwendet TensoFlow plus Keras, ein Netzwerk von Sequental Dense. Eingabedatensatz fĂŒr 200-300 Tausend Beispiele, Eingabevektor 250-350. Die Form der Antwort ergibt sich aus dem gestellten Netzwerk der Frage - der binĂ€ren Klassifikation „hoch“ oder „runter“. Die Eingabe wurde vom Bot in MQL5 vorbereitet. Ein Bot, der eine Geschichte durchlĂ€uft, bildet eine regulĂ€re CSV-Datei. Jede Zeile ist ein Vektor. Am Ende jedes Vektors lautet die richtige Antwort 1: 0, wenn oben, 0: 1, wenn unten.

Hier sind einige VorschlĂ€ge fĂŒr diejenigen, die es versuchen:

  1. Er studiert gut innerhalb der Prognose von 15 Minuten bis 60 Minuten. In kĂŒrzerer Zeit wĂ€chst das Chaos der Preisbewegung, in grĂ¶ĂŸerer Zeit nimmt der externe Einfluss zu - Nachrichten usw., 15-60 Minuten die „technischste“ Zone.
  2. BTCUSD, EURUSD. — .
  3. « ? ?». , .
  4. , 50% . , .

Sie mĂŒssen verstehen, mit welchem ​​Material wir es zu tun haben. Der Markt ist zu 95% chaotisch. Wenn wir Trainingsdaten an das Netzwerk senden und die richtige Antwort angeben, speisen wir das Chaos. Es ist wie der Versuch, ein neuronales Netzwerk zu trainieren, um eine Katze von einem Hund zu unterscheiden, und beim Training, um Schmetterlinge, Sterne und Sternzeichen zu zeigen, wird es kein Ergebnis geben. Es ist also hier, aber zum GlĂŒck gibt der Markt ungefĂ€hr 5% der wirklich funktionierenden Muster an, die das Netzwerk erfassen kann, und dies wird sich in seinen Antworten widerspiegeln. Achten Sie daher auf die Analyse der Testergebnisse.

Mit diesem Ansatz habe ich folgendes Ergebnis erhalten:
In etwa 2% der Antworten schÀtzt das Netzwerk die weitere Bewegung im VerhÀltnis von 2 richtigen Antworten zu 1 falschen. Beim Testen auf dem realen Markt passiert genau dies, aber es tritt ein anderes Problem auf. Immerhin haben wir nur 2% der Fragen beantwortet, ignorieren Sie den Rest. Jene. Wir starten ein Neuro in einem Zeitraum von 5 Minuten auf dem realen Markt und warten ... bei 2% - es werden nur alle 50 Kerzen beantwortet, eine Antwort in 4 Stunden! Und was soll man damit machen? Nun, wenn die Antwort "Kaufen / Verkaufen" war, dann sind 6 Transaktionen pro Tag normal, und hier das abstrakte "Auf / Ab" und dann ungenaue, völlige EnttÀuschung.

Infolgedessen habe ich dieses Problem relativ einfach gelöst - nur alle 5 Minuten mĂŒssen Sie nicht ein Modell, sondern 20 bis 30 Modelle interviewen. Aufgrund der Antworten wird es genug geben. Modelle werden auf verschiedenen Eingabedaten trainiert und dementsprechend auf verschiedenen Mustern trainiert. In der Praxis stellt sich heraus, dass die Modelle auf verschiedenen Kerzen hupen, sich nur an offensichtlichen, vorhersehbaren Stellen zusammen aktivieren und sich nicht ĂŒberlappen.

Zusammenfassend lĂ€sst sich sagen, dass es jetzt etwas gibt, das auf dem realen Markt eingefĂŒhrt werden kann und bei durchschnittlichem Bergbau Auf- / Ab-Signale aufweist. Schon mehr Spaß, aber der praktische Sinn ist immer noch Null.

Ein paar Worte zur Implementierung. Es hat bei mir auf einer Reihe von MQL5 plus Keras funktioniert. Ein in MetaTrader5 auf jedem Candlestick gestarteter Bot bereitete Daten fĂŒr ein neuronales Netzwerk vor und leitete einen Socket an ein Python-Skript weiter, das wiederum alle Modelle abfragte und, wenn es einen akzeptablen Schwellenwert ĂŒberschritt, ein Signal an den Telegrammkanal sendete.

Die Schaltung funktioniert also, kann aber nicht angewendet werden. Es war nicht möglich, einer Strategie Signale hinzuzufĂŒgen. Der Hauptnachteil ist die Diskretion der Antworten. Die Antwort ist ein Ereignis, auf das Sie irgendwie reagieren mĂŒssen - schauen Sie sich die Marktsituation an, ĂŒberlegen Sie, ob das Netzwerk richtig ist oder nicht usw. Bei einer Kerze konnte ein Modell nach oben und ein anderes nach unten signalisieren, und welches sollte man glauben? Infolgedessen entstand die Idee, die Schwelle fĂŒr das Weitergeben der Antwort aufzugeben und jede Antwort des Netzwerks zu respektieren, wenn auch mit einem geringen Maß an Vertrauen. Wenn Sie anfangen, alle Antworten zu einer gemeinsamen Meinung zusammenzufassen und dies als Antwort des Netzwerks betrachten, wird die Antwort zu einer völlig anderen QualitĂ€t. In diesem Fall nimmt das Wissen aller Modelle Gestalt an, und dies ist eine enorme Menge an gemeinsamem Training.

Wie lange, kurz, aber nach all den Änderungen, erhielt ich fĂŒr jede Kerze einzelne Antworten des neuronalen Netzwerks, ausgedrĂŒckt als Prozentsatz der erwarteten Arbeitszeit von -100% bis + 100%. Das Zeichen gibt die erwartete Auf- / Ab-Richtung wieder. Es wurde klar, dass jetzt in jeder Antwort ein Sinn steckt. Es klappt! Ich selbst habe Handelserfahrung und habe gesehen, wie das Verhalten des Netzwerks vor meinen Augen bedeutsam wurde. Manchmal war seine Logik verstĂ€ndlich, manchmal nicht, aber seine Antworten fĂŒhlten sich immer wie eine eigene, oft paradoxe Vision des Marktes an. DarĂŒber hinaus stellte sich heraus, dass die erwartete Entwicklung umso nĂ€her am richtigen Zeitpunkt liegt, je höher das Netzwerkvertrauen ist und umgekehrt. Geringes Vertrauen schien zu sagen: "Was in 15 Minuten passieren wird, weiß ich nicht, aber der allgemeine Trend ist gestiegen."

Von diesem Ort aus wurde mir klar, dass der Versuch, all dies in Kauf- / Verkaufssignale umzuwandeln, wie das HĂ€mmern von NĂ€geln mit einem Mikroskop ist. Was benötigt wurde, war eine Art Werkzeug zur Visualisierung der Signale des neuronalen Netzwerks - eine grafische Anzeige des Vertrauensniveaus jeder Kerze. Eine breite Palette von MQL5-Tools ermöglichte es, all dies in Expert for MetaTrader5 zu integrieren. "Experte" ĂŒber die API empfĂ€ngt die Antworten des neuronalen Netzwerks und ist nur mit dem Rendern beschĂ€ftigt. Hier ist ein Beispiel seiner Arbeit an BTCUSD M1: Der

Bild

farbige Bereich oben ist die Prognose „unten“, der Bereich unten ist die Prognose „oben“, die Dicke ist der Grad des Vertrauens.

Zu diesem Zeitpunkt spielt die QualitÀt der Prognose keine Rolle. Es ist wichtig, dass das neuronale Netz eine hinreichende Meinung zur Marktsituation aufweist. Sie können das Netzwerk jederzeit noch weiter aktualisieren. Hauptsache, es funktioniert!

Daher gibt es heute Expert fĂŒr MetaTrader5 mit zwei Arten von Prognosen - kurzfristig und langfristig. Die Statistiken hĂ€ufen sich allmĂ€hlich, es gibt RĂŒckmeldungen von HĂ€ndlern. Das erzielte Ergebnis inspiriert zu weiterer Arbeit. Jetzt mĂŒssen wir zu den geschĂ€tzten "Kauf / Verkauf" -Teams gelangen. Dies kann erreicht werden, indem die QualitĂ€t der Prognose deutlich erhöht wird. Dann sehe ich diesen Entwicklungspfad:

  1. Es ist notwendig, ein Dutzend Vorhersagen im Abstand zwischen 15 und 60 Minuten zu erstellen. Jene. Beginnen Sie mit der Vorhersage von „Auf / Ab“ fĂŒr 20, 25, 30, 35 Minuten usw. bis zu 60. Jede Vorhersage basiert, wie ich mich erinnere, auf den Antworten von etwa 20 Modellen.
  2. Mit einem solchen Informationsvolumen auf jeder Minute Kerze ist es möglich und notwendig, es mit einem anderen neuronalen Netzwerk zu analysieren. Die Verbindung zwischen Vorhersagen in verschiedenen Zeitintervallen kann völlig trivial sein, daher ist hier ein neuronales Netzwerk angebracht.
  3. Der Datensatz fĂŒr dieses neuronale Netzwerk ist nicht so laut wie der seiner jĂŒngeren Kameraden. Daher muss er nicht in einem banalen „Auf / Ab“ geschult werden, sondern in der Vorhersage der StĂ€rke der Bewegung eines Vermögenswerts. Dies ist ein direkter Ausstieg aus „Kaufen / Verkaufen“.

Das ist alles, was ich dir heute sagen wollte. Die Arbeit geht weiter, ich denke es wird mehr Artikel geben.

Dieser Experte fĂŒr MetaTrader5 wird ĂŒbrigens kostenlos verteilt. Wenn Sie die Arbeit eines neuronalen Netzwerks auf dem realen Markt sehen möchten, wenden Sie sich bitte an.

All Articles