Arbitrage-Bots sind Programme die risikolos Preisunterschiede ausnutzen sollen um ständig und automatisiert Profite zu erwirtschaften – unabhängig vom aktuellen Preis. In der Praxis scheint dies viel schwerer zu sein als es sich anhört. Der folgende Artikel geht auf verfügbare Quellen rund um das Thema ein und beginnt ein generisches Modell für Arbitrage-Trading vorzustellen.

Inhaltsverzeichnis

1. Arbitrage – Ausnutzen was der Markt hergibt
2. Bot – wie der Arbitrage-Bot die Arbeit von alleine erledigt
3. Graue Theorie, harte und karge Praxis
4. STOM – Select, Trade, Output und Monitor
5. Arbitrage-Bot Entwicklung – Butter bei die Fische

Vor ein paar Wochen, bin ich über den Artikel How to make your own trading bot gestolpert. Der Titel deutet an, dass es sich in dem Artikel um eine Anleitung zur Programmierung eines Trading-Bots handelt – allerdings ist das nicht der Fall. Tatsächlich schreibt der Autor einen kleinen Erfahrungsbericht über das Entwickeln und Einsetzen eines Arbitrage-Bots für Krypto-Exchanges. Allerdings weist er weder auf einen Bot hin, den er verkaufen möchte noch auf ein anderes Produkt, sondern lediglich darauf, dass es funktioniert. Die Anleitung bleibt er jedoch auch schuldig, da er meint, er behalte sie lieber für sich, da er sonst seine Chancen schmälern würde.

Das hat mich nicht mehr losgelassen, da es so klingt, als könnte es tatsächlich funktionieren. Weniger Wochen darauf habe ich zum Spaß begonnen, während einer Schnellbahnfahrt, die Logik eines Arbitrage-Bots mit mathematischer Notation formal abzubilden. In den letzten Tagen habe ich den ersten Entwurf dann niedergeschrieben und danach (dümmer kann man es eigentlich nicht machen) begonnen andere Quellen dazu, zu suchen. Überraschenderweise ist das Internet relativ karg mit brauchbaren Informationen rund um das Thema bestückt. Stattdessen gibt’s ein Meer aus Click-Bait-Artikel die vor Ref-Links nur so strotzen, in denen Autoren versuchen irgendwelche Services der Provision wegen schönzureden. Schön im entsprechenden Bitcointalk-Thread nachvollziehbar …

Arbitrage – Ausnutzen was der Markt hergibt

Die Grundidee ist, dass in einem freien Markt nicht jeder Anbieter denselben Preis für seine Wahren. Wenn also der Händler Kraken für seine Bitcoin 3.300€ haben möchte und der Händler Bittrex nur 3.200€, dann könnte man einen Profit machen in dem man auf Kraken verkauft und auf Bittrex kauft.

Bei einem Einsatz von 3.200€ könnte man so einen Gewinn von 100€ machen, also etwa 3,12%. Theoretisch ohne Risiko.

Diese triviale bzw. naive Spielart des Arbitrage-Handels wird noch ergänzt um die des Dreiecks bzw. triangulären Arbitrage-Handels. In diesem Fall wird um zwei Ecken gehandelt. Also zB. Bitcoin in Ethereum, Ethereum in Monero und schlussendlich Monero in Bitcoin.

Dies kann bei entsprechenden Wechselkursen den Profit erhöhen. Denkbar sind allerdings beliebig viele Ecken! Die Master-Arbeit Intra-Exchange Cryptocurrency Arbitrage Bot erkundet diese Idee, allerdings ohne groß auf die Modellierung des Bots einzugehen, und kommt zu interessanten Ergebnissen die zwischen massiven Verlusten und erstaunlichen Gewinnen hin und her schwanken.

Bot – wie der Arbitrage-Bot die Arbeit von alleine erledigt

Den wenigsten Lesern muss man den Begriff Bot erklären. Jedoch möchte ich der Vollständigkeit nicht darauf verzichten. Bot stammt vom Begriff Robot bzw. Roboter ab und bezeichnet eine Software die autonom bestimmte Aufgaben erledigt.

Diese Programme können zB. Gegner in Onlinespielen sein, in Chat-Gruppen darauf achten, dass keine Werbung gepostet wird oder automatisiert Kryptos traden.

Graue Theorie, harte und karge Praxis

Automatisiert und völlig sicher sein Geld vermehren klingt wunderbar. Warum macht das nicht jeder? In der Praxis spielen zwei große Gegner gegen den Arbitrage-Glücksritter:

  1. “Wartung” in der Form von nicht funktionierenden Online-Wallets.
  2. Gebühren auf den Exchanges

Dementsprechend muss ein jeder Bot diese zwei Faktoren in die Ermittlung der potenziellen Gewinner-Paarung von Exchanges mit hoher Preisdifferenz einrechnen.

Dies scheint sehr schwer zu sein. Denn bei genauerem Blick, stellt man fest, dass der oben angesprochene Bot seit 2017 keine Transaktionen mehr tätigt. Der einzige Open Source Arbitrage-Bot, den ich bis jetzt gefunden habe, (Crypto Arbitrage) von Kelvin Au wurde auch seit Mai letzten Jahres nicht mehr weiterentwickelt. Ein weiterer Bremser war der Artikel What I have learned from my arbitrage experiences with crypto assets. In diesem Artikel geht der Autor auf seine Logik ein, was er an Profit bzw. Return on Investment (ROI) haben möchte und wie schlecht das in der Praxis ausgegangen ist. In seinem Fall waren es vor allem Wartungsfenster der Exchanges, die dazu geführt haben, dass Transaktionen nicht durchgingen und Arbitrage-Chancen ungenutzt vorbeizogen.

Oben genannte Artikel und Code-Repositories sind gute Einstiegsquellen, mir fehlte allerdings dennoch ein generisches Modell mit dem ich nachvollziehen kann wie die Logik des Bots tatsächlich funktioniert, ohne lange im Source-Code zu wühlen.

STOM – Select, Trade, Output und Monitor

Ich habe mir ein sehr allgemeines Modell überlegt, dessen simpelste Form auf vier simple Schritte heruntergebrochen werden kann.

  1. Select bzw. Auswahl der Kandidaten für einen Arbitrage-Handel
  2. Trade bzw. Durchführung des Handels
  3. Output bzw. Ausgabe der relevanten Informationen wo was zu welchem Preis gehandelt wurde. Auch für die Nachvollziehbarkeit für das Finanzamt relevant!
  4. Monitor Market bzw. Marktbeobachtung um zu ermitteln, wann der nächste Auswahlvorgang angestoßen werden soll.

Jeder dieser Schritte enthält im Detail natürlich weitere Definitionen und Anleitungen. Zu meiner großen Überraschung musste ich feststellen, dass die Logik zur Auswahl eines profitablen Trades sich über mehrere Formeln erstreckt. Zwar ist jede Formel für sich relativ simpel, jedoch waren bei mir bereits 13 A4-Seiten mit Formeln und Text gefüllt, nachdem ich den ersten Entwurf fertig gestellt hatte.

Kurzer Ausschnitt aus zwei der Formeln für die Berechnung des Profits.

Arbitrage-Bot Entwicklung – Butter bei die Fische

In den unsterblichen Worten des Linux-Kernel-Schöpfers Linus Torvalds:

Talk is cheap, show me the code

Anders ausgedrückt: Versprechen kann man viel, die Software muss trotzdem abliefern. Im Moment arbeite ich an zwei Dingen, um genau dies zu tun:

  1. Der Niederschrift meiner Modellierung des Arbitrage-Bots, sowie dessen Optimierung
  2. Der Implementierung des Bots in Python

Jeden den das interessiert, lade ich herzlich dazu ein sich in meinen Newsletter einzutragen:

Hier werde ich monatlich und selten aber doch anlassbezogen über Neuigkeiten wie die Fertigstellung meines Ebooks zum Thema Arbitrage-Bots oder des Bots selbst Newsletter rausschicken.

Das Beitragsbild ist ein Ausschnitt des Bildes Caught Coding von Steve Jurvetson und steht unter der Creative Commons Lizenz.

Join the conversation

Hallo zusammen,
ein wirklich spannendes Thema wie ich finde!
In diesem Zusammenhang interessiert mich die nicht unwichtige Frage, “wie läßt sich differenziert feststellen,
1) wer der Entwickler
2) wer der Betreiber
3) wo und seit wann der Algo in Betrieb
eines jeweiligen Arbitrage Bots ist.
Als praktisches Beispiel sei an dieser Stelle [Link zu Token entfernt] genannt
Ggf. gibt es ja offene Tools z.b. in Github um die W-Fragen zu beantworten?

Wie immer gibt’s da mehrere Dinge zu tun:

  • who.is checken. Die Website sollte auf eine Firmenadresse lauten. Tut sie das nicht, ist das ein erstes Warnzeichen.
  • Die Website sollte über ein brauchbares Impressum und Datenschutzbestimmung verfügen. Dort findet man dann Informationen zum Unternehmen die man verwenden kann um weite rüber die Unternehmer und deren Projekte zu recherchieren. Auch hier wieder die Warnung: Führt das Impressum zB. auf eine andere Firma die nicht in der EU oder den USA sitzt – obwohl als solche beworben – sondern zB. nach Bulgarien, sind das weitere Warnzeichen.
  • Wenn es ein Github-Repo gibt, kann man hier prüfen wann der letzte und wann der erste Commit gemacht wurden. Das gibt Aufschluss darüber wie aktiv und seit wann das Projekt entwickelt wird. Solche Dinge sind aber häufig closed Source, somit ist das eher schwierig.

Hallo Martin
Hast Du das Thema Arbitrage Bot selbst programmieren noch weiterverfolgt?

Ich denk auch dass kaum einer so dumm ist, einen funktionierenden Arb Bot der Öffentlichkeit zur Verfügung zu stellen, weil er sich damit ja selbst konkurrenziert. Allerdings gibt es im Gegensatz zu vor 3+ Jahren ja auch kaum mehr Möglichkeiten für Arbitrage, eben weil solche Bots im Einsatz sind.
Man muss aber auch sehen dass ein Arb Bot relativ kapitalintensiv ist (wenn er viele Exchanges und Coins abdecken soll) und das wäre wieder ein Grund, seinen eigenen Bot zu “vermieten”.

Ich habe ein paar Sachen gemacht:

  • Einen Bot gebaut auf Basis von CCXT der die Daten abgrast und so eine DB erstellt mit aktuellen Kursen von vielen Exchanges.
  • Kurze Zeit unentgeltlich kleinere Programmieraufgaben für ein anderes Arbitrage-Projekt erledigt. Habe ich dann aus Zeitgründen aber aufgegeben.
  • Aktuell habe ich mit einem DCA-Bot begonnen (raffaff)

Allerdings hat sich dabei herauskristalisiert dass große Coins uninteressant sind und nicht der Arbitrage-Algorithmus sondern die Überprüfung der Kursdaten, Symbole, etc. das eigentliche Problem ist. Also prinzipiell ist’s möglich und zur Zeit gibt’s sicher auch gute Trades – aber es ist ein Arsch voll Arbeit sicher zu stellen, dass der Bot keinen Blödsinn macht, weil die Plattformen häufig falsche Daten für die kleinen Alts rausgeben.

Danke für Deine Antwort!
Ja es gibt ja auch Bots oder Skripts die man nutzen könnte, zB Cryptohopper. Hab das mal probiert aber kam auf die Schnelle nicht klar damit. Und auch dort ist es nicht sichergestellt, dass alles sauber funktioniert. Denn wie Du sagst kann da einiges schief gehen.
Dh man müsste das sorgfältig mit kleinen Beträgen testen und Regeln einbauen, nach denen der Bot seine Arbeit einstellt.
Ich habe auch schon Arbitrage Möglichkeiten gesucht aber in der Regel war es dann so, dass es diese nur gab, weil ein Exchange temporär ein bestimmtes Wallet blockierte, dh Ein-/Auszahlungen nicht mehr möglich waren.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

code