Entwicklung algorithmischer Bitcoin-Handelsstrategien

Die Entwicklung algorithmischer Handelsmodelle und -strategien ist keine einfache Aufgabe. Erschwerend kommt hinzu, dass der aktuelle Zustand der Krypto sehr volatil ist und sich schnell ändert. Der Markt ist aufgrund von Vorschriften der SEC und verschiedener Regierungen, die auf Krypto-Börsen abzielen, zu einem Kriegsgebiet geworden. Trotz aller negativen Nachrichten machen es viele Händler im Tageshandel mit Krypto-Assets groß.

In unserem vorherigen Beitrag habe ich über unsere Fortschritte bei der Erstellung kurzfristiger Vorhersagen geschrieben. In diesem Beitrag bringe ich es auf eine nächste Ebene. Ich werde unsere Bemühungen veranschaulichen, wie wir die Vorhersagen in eine erfolgreiche Handelsstrategie integrieren.

Manuelle Modellierung

D Die Entwicklung eines algorithmischen Modells / einer algorithmischen Strategie beginnt normalerweise mit der Betrachtung der Rohdaten, vor allem aber mit der Analyse mehrerer Indikatoren wie SMA, MACD, EMA und RSI. Der springende Punkt des Prozesses ist es, einige Muster zu finden, die für das menschliche Auge ziemlich offensichtlich sind, aber auch, dass diese Muster im Laufe der Geschichte immer wieder auftreten und dies hoffentlich auch in Zukunft tun werden.

Theoretisch

Die meisten Strategien basieren auf der Erzielung eines Gewinns. Daher suchen die Benutzer nach Möglichkeiten, ein Tal zu erkennen, um ein Kaufsignal auszulösen, und lassen das System dann warten, bis ein Höhepunkt erreicht ist, um ein Verkaufssignal auszulösen. Dies ist ein riskantes Geschäft, da es keine Garantien gibt, d. H.: Ein System kann (angesichts historischer Ereignisse) nicht genau sagen, ob sich dieser Marktpreis in einem Tal befindet oder nicht – es kann nur eine kalkulierte Vermutung anstellen. Und das ist der springende Punkt, wir versuchen eine kalkulierte Vermutung anzustellen, das ist die Plausibilität, sich in einem Tal / Gipfel zu befinden und ein Handelssignal auszulösen (entweder kaufen oder verkaufen).

In Wirklichkeit

Die Realität ist viel schwieriger als die Theorie. Ein System kann anzeigen, dass es sich in einem Tal befindet, aber einige Minuten später sinkt der Preis noch weiter.

Wenn Sie jemals Code für große Softwareprojekte geschrieben haben, wissen Sie, dass die Fehler- / Fehlerrate proportional zu jeder neu hinzugefügten Codezeile steigt. Dies bedeutet, je mehr Code Sie schreiben, desto mehr Fehler / Bugs / Fehler verursachen Sie – Menschen sind nicht perfekt, und Programmierer sind auch nicht, egal wie brillant sie sind. Wenn wir Code schreiben, haben wir normalerweise ein klares Ziel vor Augen, daher wissen wir, welche Ausgabe eine klar definierte Eingabe erhalten soll. Wenn Sie dies jedoch mit dem Eingabedatum von (Krypto-) Assets (z. B. Bitcoin) tun, werden Sie schnell feststellen, dass dies keine triviale Aufgabe ist. Die Eingabe ist nie dieselbe, und wir können uns nicht einfach auf eine Reihe von “Wenn dies – mach das” -Code verlassen. Dies ist jedoch die einzige Sprache, die ein Computer versteht. Sie ist unser zuverlässigstes Werkzeug für diesen Job.

Um unsere Arbeit zu erleichtern, müssen wir Mathematik und Statistik einführen, um uns zu helfen. Dazu werden, wie bereits erwähnt, Indikatoren wie SMA und MACD erstellt. Ein Indikator ist eine Funktion, die Rohdaten aufnimmt, transformiert und etwas Neues ausspuckt. Indikatoren erleichtern unser Leben bei der Analyse der Rohmarktdaten und ermöglichen es uns, Muster zu erkennen / zu sehen, die wir sonst nicht sehen würden. Wenn Sie sich mit Trading auskennen, wissen Sie, wie nützlich der MACD ist, long & amp; kurze SMA-Diagramme sind.

Da Indikatoren ausschließlich auf historischen Daten basieren, können sie keine Vorhersagen treffen, sind aber auch nicht völlig nutzlos. Schauen Sie sich zur Veranschaulichung die folgende Tabelle an:

Oben ist der Preis für Bitcoin als Kerzenhalter angegeben. Dann habe ich einen Indikator (EMA) von einiger Größe erstellt, der auf den Werten Öffnen und Schließen basiert. Der nächste Schritt wäre die Verwendung von Code, dh “if this – do that” -Anweisungen, um eine grundlegende Strategie zu entwickeln, die einen positiven ROI (einschließlich Handelsgebühren) hätte. Erinnern Sie sich an meine Geschichte von Spitzen & amp; Täler früher? Nun, hier sehen wir es in Aktion. Mein Algorithmus verwendet den EMA-Indikator, um ein erstes Kaufsignal zu generieren (in der Tabelle mit “B” gekennzeichnet). In diesem Fall ist er so konzipiert, dass er ein Tal vorwegnimmt, da nach Regen normalerweise Sonnenschein kommt. Nach diesem Kauf kam jedoch keine Sonne mehr, sondern nur noch mehr Regen (der Preis ging weiter zurück). Und später wird ein Verkaufssignal an einem lokalen Höhepunkt erzeugt.

In diesem Diagramm können wir deutlich sehen, wie ein einfacher Algorithmus Entscheidungen trifft. Der traurige Teil ist, dass seine Entscheidungen nicht optimal sind. Der Grund ist offensichtlich, da der Algorithmus bei jedem Schritt nur die Vergangenheit betrachten kann – er kann die Zukunft nicht vorhersagen, um die „beste“ Entscheidung zu treffen. Der andere traurige Teil ist, dass solch ein einfacher Algorithmus fest codierte Parameter hat, wie beispielsweise die Parameter des Indikators (z. B. EMA-Größe). Für uns Menschen können wir uns diese erzeugten Signale ansehen und sagen: „Was für eine dumme Entscheidung“ – wir können überhaupt nicht argumentieren, eine Maschine kann nur die Entscheidungen treffen, für die wir sie programmieren. Wenn die Parameter nicht optimal sind, ist dies auch das Ergebnis.

Im unteren Teil des Bildes gebe ich den ROI der erzeugten Signale an, der etwas über 94% liegt, was bedeutet, dass das System einen Verlust von etwa 6% verzeichnete – Grund: Es kaufte höher als es verkaufte und um Dinge zu machen Schlimmer noch, es wurde eine Gebühr von 0,1% für jeden Trade gezahlt.

Unten ist ein anderes Szenario. Dieses Mal verwenden wir drei Indikatoren, aber nur einer wird angezeigt. Die braunen Balken stellen den MACD-Indikator dar, der aus zwei verschiedenen EMA-Indikatoren aufgebaut ist:

Die Grundidee hinter der Verwendung von MACD als Handelsstrategie besteht darin, erneut Spitzen & amp; Täler. Dies wird deutlich, wenn Sie sich ansehen, wo die Kauf- / Verkaufssignale erscheinen, d. H. Auf dem Höhepunkt / Tal eines lokalen MACD. Diese Strategie scheint besser zu funktionieren als die vorherige, da der ROI über 99% liegt (dh immer noch einen Verlust von etwa 1%) – aber wir können die beiden möglicherweise nicht einfach so vergleichen, da das vorherige Beispiel nur zwei Handelssignale hatte und dieser hat viel mehr.

Hier ist ein drittes und letztes Beispiel. Unten finden Sie eine Tabelle mit Signalen, die auf dem EMA-Signal basieren (genau wie in unserem ersten Fall). Aber diesmal habe ich eine andere Region und mehr Daten ausgewählt.

Der ROI oben liegt bei über 99%, genau wie bei unserem MACD. Ein genauerer Blick auf die Signale ist ziemlich faszinierend. Es wurden zwei kurze Kauf- / Verkaufstransaktionen durchgeführt, die nur wenige Minuten voneinander entfernt sind. In diesem Fall habe ich versucht, das System in sehr kurzer Zeit einen Gewinn erzielen zu lassen, indem ich die hohe Volatilität nutzte.

Überprüfen einer Strategie

Diese drei Beispiele basierten auf sehr wenigen Daten. Alles, was auf dem Chart angezeigt wird, wurde verwendet, um die Handelssignale zu generieren und den ROI zu berechnen. In der Praxis müssen wir unseren Algorithmus an Daten im Wert von Tagen, Wochen, Monaten oder sogar Jahren ausführen, um die Erfolgsrate zu überprüfen. Leider haben sich nur sehr wenige dieser Strategien in unseren Tests als erfolgreich erwiesen. All dies kann zu einem ROI von über 100% führen – wenn keine Handelsgebühren anfallen, da die Börsen auf diese Weise verhindern, dass wir über Nacht Millionäre werden.

Tiefe Daten

U sing rohe Marktdaten (z. B. Preis & amp; Volumen) in Kombination mit einigen Indikatoren ergeben selten eine profitable Handelsstrategie. Es sei denn, Ihr Algorithmus ist ziemlich ausgefeilt und gut gestaltet. Wenn ja, überprüfen Sie alles noch einmal, da Sie möglicherweise einen Fehler haben oder das Szenario doch nicht berücksichtigt wird.

Nach langer Zeit und unzähligen Versuchen gelang es mir, einige profitable Handelsalgorithmen zu entwickeln. Dies wurde durch die Verwendung einiger Standardindikatoren erreicht, die ich vor der Anwendung auf verschiedene Weise anpassen musste. Noch wichtiger ist jedoch, dass diese Art von Daten diese Methoden erfolgreich macht. Sie basieren nicht mehr nur auf dem Preis und / oder dem Volumen, sondern berücksichtigen auch andere Faktoren wie die Stimmung (aus unseren Stimmungsanalysen).

In der obigen Tabelle sehen Sie eine dieser Strategien in Aktion. Achten Sie genau darauf, wo die Kauf- / Verkaufssignale erzeugt werden – sie scheinen viel optimaler zu sein als in den vorherigen drei Beispielen, aber alles andere als perfekt. Eine noch wichtigere Bemerkung ist der positive ROI (116%), der sich auf eine durchschnittliche Steigerung von 1% pro Tag beläuft.

Unten sehen Sie ein weiteres Diagramm, das genau dieselbe Strategie verwendet, jedoch zu einem anderen Datum / einer anderen Uhrzeit. Wiederum sind die Ergebnisse mit einem ROI von 125% und einem täglichen Anstieg von etwa 3% phänomenal.

Diese Strategie teste, validiere und optimiere ich bis heute – sie scheint die beste zu sein, die ich bisher entwickeln konnte. Beachten Sie, wie weit die Kauf- und Verkaufssignale von unseren vorherigen Beispielen entfernt sind. Hier sind sie viele Stunden oder sogar mehrere Tage voneinander entfernt, während es vorher nur Minuten oder einige Stunden waren. Bevor ich meine Niere verkaufe und All-In gehe, muss ich sicherstellen, dass es wirklich funktioniert. Hoffentlich stecke ich es in ein paar Wochen ein und schreibe einen neuen Beitrag mit meinen Ergebnissen.

Künstliche Intelligenz

O ne kann so viele Modelle entwickeln, wie er / sie möchte, oder zumindest so viele, wie er / sie den Mut dazu hat. Es ist kein einfacher Entwicklungsprozess. Es ist ziemlich schwierig, neue Hypothesen zu testen und zu verifizieren, während gleichzeitig die vielen Parameter angepasst und verschiedene Werte ausprobiert werden. Aber was ist, wenn wir A.I. um uns zu helfen, noch bessere Modelle und Strategien zu entwickeln?

Dieser Forschungsbereich ist noch komplexer als das Erstellen manueller Modelle, aber es ist bereits die Zukunft – und wenn Sie nicht dabei sind, sind Sie im Rückstand. Irgendwann, wenn nicht bereits, hat A.I. wird bessere Handelsentscheidungen treffen (sowohl langfristig als auch kurzfristig) als Menschen. Wenn Sie ein A.I. Forscher / Entwickler, Sie wissen genau, wie komplex es ist, ein System mit einer Handelsstrategie zu entwickeln. Es ist bereits komplex genug, um es für die Ausführung einfacher Aufgaben wie das Erkennen von Objekten in Bildern zu trainieren.

Hybridmodellierung

Bis vor einigen Wochen verwendete ich eine manuell entworfene Strategie, die unsere Vorhersagen verwendete, um Handelssignale zu generieren. Die Ergebnisse waren zu dieser Zeit ziemlich „okay“, aber sie enthielten keine Handelsgebühren – also sind sie tatsächlich „nicht mehr so ​​okay“.

Eine dieser Strategien bestand darin, die höchsten und niedrigsten Vorhersagepunkte zu betrachten und in diesen jeweiligen Intervallen ein Verkaufs- / Kaufsignal zu generieren. Wenn Sie darüber nachdenken, wird es bei weitem keine optimale Strategie sein. Man kann genauso gut zufällig anfangen zu kaufen / verkaufen und dadurch mehr Glück haben. Aber ich würde diese Idee noch nicht in den Müll werfen. In meinem vorherigen Beitrag habe ich unsere jüngsten Verbesserungen der Vorhersagen veranschaulicht. Es lohnt sich also auf jeden Fall, diese alte Strategie für einige neue Daten erneut auszuführen.

Was mir in den Sinn kommt, ist, dass diese Strategien kurzfristig sind, was bedeutet, dass sie alles verwenden, was vorhergesagt wurde, um im Moment eine Entscheidung zu treffen. Da unsere Prognosen in der Regel nicht länger als 3 bis 15 Minuten in der Zukunft liegen, müssen sie ausreichend große Margen generieren, um die Handelsgebühren abzuzahlen und somit einen positiven ROI zu erzielen.

Es gibt eine bestimmte Sache, die ich in den Mix aufgenommen habe: Vorhersage des nächsten Kauf- / Verkaufssignals . Ich wollte unserem System beibringen, lohnende Kauf- / Verkaufssignale vorherzusagen, genauso wie wir es den zukünftigen Preis vorhersagen lassen. Dazu musste ich das System zunächst darauf trainieren, wie eine gute Kauf- und Verkaufsposition aussieht. Ich habe dazu alle Daten durchgesehen und ein Vorausschau-Konzept verwendet: Wenn bei einer Position ‘t’ der Preis in naher Zukunft stark fallen wird, sollte ‘t’ ein ‘Verkaufssignal’ anzeigen – aber wenn der Preis steigen wird, sollte ‘t’ stattdessen ein ‘Kauf’ sein. Die nahe Zukunft wurde durch die nächsten 10 oder so Intervalle definiert. Jedes zweite “t” würde ein “nichts tun” -Signal anzeigen. Unten sehen Sie eine Tabelle, die das Ergebnis meiner Bemühungen zeigt:

In der obigen Grafik sehen wir die Preisvorhersagen im blau / schwarzen Candlestick-Diagramm. Die violette Linie ist das Ergebnis meiner Signalvorhersage “Ding”, wie gerade erklärt. Ich habe dem System beigebracht, dass ein Verkaufssignal dem Wert 100 entspricht. Ein Kauf ist gleich 50 und “nichts tun” ist gleich Null. Am Ende respektiert das System meine Werte nicht vollständig, so dass es entweder etwas nahe Null, ungefähr 50 oder nahe 100 erzeugt. Aber es hat einige interessante Ergebnisse. Wenn Sie genau hinschauen, zeigt dies einige interessante Kaufsignale an (= Wert 50), und dann müssen Sie raten, für welches Intervall in naher Zukunft das Verkaufssignal einem Kaufsignal entspricht. Letztendlich mag sich dies als nützliche Handelsstrategie erweisen, aber es ist wirklich schwer zu interpretieren und zu verstehen, wie es ist. Ich muss viel mehr Forschung und Entwicklung betreiben, um es zu verbessern.

Q-Learning

Dies ist eine Form des Verstärkungslernens (RL), eine Technik zum Trainieren von A.I. bestimmte Sachen zu machen. RL ist der Trick, der dahinter steckt, einer Maschine das Spielen von Schach, Go und sogar Space Invaders beizubringen.

Wenn wir einer Maschine das Spielen von Pac Man beibringen können, können wir ihr auch beibringen, Kauf- / Verkaufssignale zu erzeugen. Genau das habe ich getan. Die Logik dahinter ist, dem System eine Belohnung zu geben (wie ein Klopfen auf den Rücken), wenn es gute Entscheidungen trifft, und wenn nicht, bestrafen wir es. Die Belohnung / Bestrafung wird als Zahl ausgedrückt. Daher trainieren wir das System, um sich selbst zu optimieren und die höchstmögliche Punktzahl zu erzielen. Zu Beginn macht es eine Reihe von zufälligen Vermutungen, erhält seine Belohnung / Bestrafung und lernt / trainiert sich dann basierend auf diesen Ergebnissen neu. Dieser Prozess wird auf unbestimmte Zeit fortgesetzt, bis wir ihm sagen, dass er aufhören soll. Wir möchten nicht, dass das System in Bezug auf die Eingabedaten überpasst wird, aber wir möchten auch nicht, dass es sehr zufällig ist. Deshalb müssen wir es nach einer bestimmten Anzahl von Iterationen stoppen.

Die Implementierung von Q-Learning erfolgte mithilfe eines Open-Source-Projekts. Ich musste nur & amp; Passen Sie es an meine Bedürfnisse an. Ich habe auch festgestellt, dass das Rückgrat von Q-Learning-Systemen normalerweise auf einem vorwärtsgerichteten neuronalen Netzwerk basiert. Ich bin (noch) nicht auf eine Lösung gestoßen, die stattdessen ein wiederkehrendes neuronales Netzwerk verwendet. Aber das habe ich umgesetzt. Ich habe schnell gelernt, dass das Trainieren eines Systems durch RL ein sehr langwieriger und langer Prozess ist. Die Fertigstellung dauert buchstäblich Stunden / Tage, abhängig von der Anzahl der Iterationen und einigen anderen Faktoren.

Nach vielen schmerzhaften Stunden Training sah ich einige nette Kauf- / Verkaufssignale erscheinen, aber für mich waren sie eher zufällig als intelligent. Insgesamt hat sich Q-Learning nicht als erfolgreiche Technik erwiesen, aber ich werde es verbessern, weil ich glaube, dass es ein Goldnugget ist.

Vielen Dank fürs Lesen und bleiben Sie dran für die nächste Folge! 🙂
– Ilya Nevolin

Diese Geschichte wurde in The Startup veröffentlicht, der größten Publikation für unternehmerische Initiative von Medium, gefolgt von mehr als 310.538 Personen.

Abonnieren Sie, um unsere Top-Storys hier zu erhalten.