Einen Bitcoin Trading Bot in 10 Minuten erstellen

Automatischer Handel mit einem Bitcoin-Trading-Bot

Der Handel mit Bitcoin ist erneut aufgeflammt und wird bei Investoren und Tradern sprichwörtlich heiß gehandelt. Die Möglichkeit, tatsächlich von dem $1.000 Candlestick zu profitieren, der aus dem Nichts geschossen kommt, ist sehr verlockend.

Es ist jedoch nicht einfach diese Schwankungen vorherzusagen und sich im Markt zu verlieren, ist vielen Tradern zu gut bekannt.

In diesem Artikel werden wir einen Bitcoin-Trading-Bot programmieren und das in weniger als 11 Minuten! Ein Trading-Bot hat den Vorteil, dass er keine Emotionen beim Betrachten von Kerzen, Kursen und Marktverhalten in sein Verhalten mit einbezieht. Beim Trading werden ausschließlich Algorithmen und fest konfigurierte Werte verwendet. Das ermöglicht kurzfristig nicht immer die bestmöglichen Ergebnisse, aber langfristig kann man ohne weiteres Zutun automatisch gute Profite erzielen. Der Handel mit Bitcoin und anderen Kryptowährungen erfolgt natürlich auf eigene Gefahr. Hier wird nur eine Möglichkeit aufgezeigt, wie automatisiertes Trading funktionieren kann.

Vor dem Start mit der Programmierung müssen wir zunächst eine praktikable Strategie finden, um ein gesundes Marktverhalten zu spiegeln und das menschliche Handelsverhalten nachzubilden. Für diesen Artikel habe ich mich für eine einfache volumenbasierte Handelsstrategie entschieden.

Die Strategie ist einfach: Bei Volumenspitzen besteht mehr Interesse am Markt, und das bedeutet, dass sich der Trend mit dem Volumenspitzenwert in Zukunft wahrscheinlich fortsetzen wird.

In der folgenden Abbildung sind drei unterschiedliche Volumenspitzen eingekreist. Die Pfeile zeigen, dass selbst wenn dem Volumenspitzenwert ein Dump folgt, dieser in der Regel in naher Zukunft über dem aktuellen Marktwert liegen wird, da der Trend immer noch nach oben geht.

Jetzt, da wir eine Grundstrategie für den Bitcoin-Trading-Bot im Kopf haben, können wir mit der Programmierung beginnen!

Die vielleicht einfachste Sprache, in der wir unseren Trading-Bot schreiben können, ist PineScript, die Sprache von TradingView zum Schreiben von Indikatoren und Scripts.

Um mit der Programmierung zu beginnen, navigieren wir zum PineScript-Editor im TradingView-Konto (siehe unten).

Jetzt öffnen wir den Editor und erstellen ein neues Skript über das Menü New > Blank. Anschließend sollte der Editor wie folgt aussehen:

//@version=4
strategy("My Strategy", overlay=true)

longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(sma(close, 14), sma(close, 28))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

  

Wir räumen zunächst ein wenig auf, damit es übersichtlicher wird und löschen alles bis auf die ersten beiden Zeilen. Nun können wir mit dem Programmieren des Bots beginnen.

Zuerst müssen wir eine algorithmische Methode ableiten, um einen “Peak” in Bitcoin Volumen zu finden, basierend auf den Volumina der umgebenden Kerzen. Um Werte für das Volumen zu erhalten, fügen wir die folgenden Zeilen in den Script-Editor ein:

volumeOne = volume[1]
volumeTwo = volume[2]
volumeThree = volume[3]
lastVolume = volume[0]
averageVolume = (volumeOne+volumeTwo+volumeThree)/3

Im Wesentlichen werden diese Code-Zeilen für jede Kerze auf unserem Diagramm die 3 Volumen davor heranziehen und dann ihren Durchschnitt berechnen. Diese Werte werden für unseren nächsten Schritt notwendig sein.

Um festzustellen, ob das Volumen bei einer bestimmte Kerze seinen Höhepunkt erreicht hat, werden wir eine einfache Methode verwenden, um zu bestimmen, ob das Volumen des aktuellen Balkens 5 mal größer ist als das des Durchschnitts der 3 Balken davor.

Hinweis: In einem fortgeschritteneren Trading-Bot können wir die Standardabweichung oder den IQR (Interquartilsabstand) der Daten berechnen, um Spitzenwerte zu bestimmen.

Diese Berechnung wird als zwei boolesche Werte eingegeben, wie unten gezeigt, entweder true to long, true to short, oder false to not long, false to not short.

longCondition = lastVolume > averageVolume * 5 and close[0] > open[0]
shortCondition = lastVolume > averageVolume * 5 and close[0] < open[0]

Nachdem wir unsere Long- und Short-Konditionen definiert haben, können die Kauf- und Verkaufsaufträge schließlich in unser Trading-Skript aufgenommen werden. Dies geschiet wie unten gezeigt.

Hinweis: Limit-Orders werden verwendet, da die meisten Börsen hohe Teilnehmergebühren erheben, und unser Trading-Bot versucht, diese zu vermeiden, da er mit hoher Frequenz handelt.

strategy.order("long", true, limit = close - 1, when = longCondition)
strategy.order("short", false, limit = close + 1, when = shortCondition)

Schließlich ist unser Bitcoin-Trading-Bot fertig und technisch funktionstüchtig. Es gibt jedoch noch eine weitere Sache, die wir hinzufügen müssen: Stop-Loss- und Take-Profit-Orders

Stop-Loss-Aufträge verhindern, dass schlechte Trades zu viel Geld verlieren und Take-Profit-Aufträge erlauben es uns, ohne Gewinn auszusteigen, bevor der Preis einen Treffer einstecken könnte.

Um dies zu implementieren, werden wir zwei Werte hinzufügen, die der Benutzer eingeben kann: die prozentuale Änderung, um einen Stop-Loss zu verursachen, und die prozentuale Änderung, um einen Take-Profit zu verursachen. Die Aufträge werden wie unten gezeigt geschrieben, und auf dem nächsten Bild werden die beiden benutzerdefinierten Variablen oben programmiert.

strategy.exit("exit", "long", profit = abs(close*profit - close), loss = abs(close*stopLoss - close))
strategy.exit("exit", "short", profit = abs(close*profit - close), loss = abs(close*stopLoss - close))

Nachfolgend ist das vollständige Script-Code unseres Bitcoin-Trading-Bots vollständig dargestellt:

//@version=4
strategy("Volume Momentum")

stopLoss = input(title="Stop loss", defval=0.9)
profit = input(title="Profit gain", defval=1.2)

volumeOne = volume[3]
volumeTwo = volume[1]
volumeThree = volume[2]
volumeFour = volume[4]
volumeFive = volume[5]
lastVolume = volume[0]

averageVolume = (volumeOne+volumeTwo+volumeThree)/3

plot(lastVolume/10000, color=#00ffaa)
plot(averageVolume/10000, color = #000000)

longCondition = lastVolume > averageVolume * 5 and close[0] > open[0]
shortCondition = lastVolume > averageVolume * 5 and close[0] < open[0]

strategy.order("long", true, limit = close - 1, when = longCondition)
strategy.exit("exit", "long", profit = abs(close*profit - close), loss = abs(close*stopLoss - close))
strategy.order("short", false, limit = close + 1, when = shortCondition)
strategy.exit("exit", "short", profit = abs(close*profit - close), loss = abs(close*stopLoss - close))

Und hier ist ein Bericht von TradingView für den Beweis der Leistung unseres BTC-Trading-Bots (kopiert aus dem 1-Minuten-Chart):

Auf einem Konto mit $100, das $10 auf einmal handelt, profitierte der Trading-Bot in einer Woche von fast 10% Profit! In Zukunft können wir Filter hinzufügen, um den Bot in seinen Trades genauer zu machen.

Ich habe bereits weitere Trading-Bots mit deutlich verbesserter Performance programmiert. Unter anderem auch einen Bitcoin-/Altcoin-Bot in PHP, der auf einem RaspberryPi oder einem VPS läuft. Der Handel findet per API bei Binance statt. Weitere Handelsplattformen können problemlos integriert werden.

Wer Interesse hat seinen eigenen Crypto-Trading-Bot aufzusetzen und damit zu experimentieren, darf sich gern in den Kommentaren zu Wort melden. Ich freue mich auf Austausch.

 

About Steven Rohner

Software Engineer & Marketing Architect

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.