Hey, ich wollte eigentlich auch schon länger in diesem Thread antworten. Und da gerade jetzt Python aufkommt, bietet sich das noch umsomehr an :-)
Ich selbst habe mit einem Freund auch einen Bot geschrieben und momentan am laufen.
Wir wollten das ganze sogar professionell aufziehen, Gelder und vor allem Bitcoins anleihen, anteilig Rendite zahlen und ganz dicke reich werden
(
https://bitcointalksearch.org/topic/bitcoin-spread-trading-investitionspartner-475021)
Es gab zwar positives Feedback, aber dann hatten wir selbst kaum Zeit um das Projekt aktiv fortzuführen und auch kamen selbst einfach nicht zu einem stichhaltigen Investitionskonzept, welches Risiko, gesetzlichen Anforderungen und unseren Gewinnerwartungen gerecht wurde.
Lange Rede kurzer Sinn: Wir haben nen Python Bot, den wir meines Erachtens ziemlich professionell aufgezogen haben. Darüber will ich gern Ideen, Entscheidungen, Erfahrungen und Eindrücke mit euch teilen.
Wir haben uns für Python entschieden, weil es eine wunderschöne Programmiersprache ist, sie ohne großen Aufwand überall zum laufen gebracht werden kann, es zig nützliche Bibliotheken gibt, und die mathematisch-statistischen Tools (NumPy, SciPy, Pandas, ...) umwerfend sind.
Zudem läuft der Bot mitlerweile in einem Rechenzentrum (zu Beginn auf nem Raspberry Pi). Unser Anbieter ist DigitalOcean, der wie ich finde ein faires Angebot an für komplette virtuelle Maschinen hat, auf denen man machen kann was man will.
Und dann haben wir uns frühzeitig für eine Modularisierung, also ein Aufsplitten des Bots in kleine unabhängige Programmteile entschieden, die momentan sogar auf verschiedenen Servern laufen. Da sind einerseits die Crawler (momentan mehrere Programme auf zwei Servern) die im Sekundentakt, parallel die Orderbücher der Börsen abfragen. Deren Ergebnisse werden dann in eine Redis-Datenbank geschoben.
Und ein zweiter Server bietet einen vereinigten Datenstrom aller Orderbücher aller Börsen an, der kontinuierlich aus der Datenbank erstellt wird.
Dieser "Datenstrom" ist im Grunde eine einzige Datei/Webseite/Text-file, der jede Sekunde um eine Zeile länger wird.
So ist es erstens möglich ganz einfach einen Crawler für eine neue Börse hinzuzufügen, einen abzuschalten, einen weiteren auf einem anderen Server mit neuer IP zu starten usw...
Gleichzeitig können dann mehrere Bots unseren vereinigten Datenstrom abfragen, ohne dass jeder einzeln die Börsen abfragen muss.
Der eigentliche Bot läuft dann auf einem anderen Server, damit er mit seiner eigenen IP nicht durch eine Rate-Limitierung seitens der Crawler konkurrieren muss.
Dieser Bot ruft dann einmalig unseren Datenstromserver auf und sobald eine neue Zeile mit neuen Informationen eingetroffen ist, rechnet er los und setzt eventuell einen Trade ab, dann wartet er auf die nächste Zeile.
Darüber hinaus gibt es noch einen weiteren Server, auf dem ein Programm nichts weiter macht als den Datenstrom ebenfalls aufzurufen und auf die Festplatte zu speichern.
So loggen wir kontinuierlich die Orderbücher all unserer Börsen mit. (Hier mussten wir einiges an Hirnschmalz in die Komprimierung stecken und verwenden letztendlich einen Kompressor namens blosc. Andernfalls sind die Daten schnell im mehrstelligen Gigabyte Bereich)
Das ist nicht nur nützlich für ein paar Backtests und das Ausprobieren neuer Strategien sondern essentiell für den Bot!
Ein großteil der Strategien basiert auf der Vergangenheit des Kurses. Und wenn man den Bot mal neustartet dann muss der irgendwoher die Vergangenheit kriegen. Dafür kann er dann von dem Logging-Server die Informationen abfragen, die er gern möchte.
Momentan werden bei einem Neustart des Bots die letzten 24h vom Logging-Server geladen und diese dem Bot einfach vorgespielt, als kämen sie vom echten Server, zeile für Zeile, aber natürlich nicht im Sekundentakt, sondern so schnell er es abarbeiten kann. Dabei ist dann das Trading selbst deaktiviert. Er durchlebt aber quasi nochmal die letzten 24h, kann seine Statistiken und Trends aufbauen und dann geht es ab in den Live-Modus.
Und schlussendlich sendet der Bot immer wenn er gehandelt hat, diesen Trade an eine Datenbank, die wir mit einer kleinen Webseite dann visualisieren. Wir können uns also sowas wie einen Report anschauen, wann er was getradet hat, was die aktuellen Funds auf den Börsen sind und wie der Profit ist. Zu einer Erstellung von schicky-micky Grafiken fehlte aber bisher die Zeit
Die Anbindung an die Börsen haben wir soweit komplett selbst übernommen - keine Dritt-Bibliotheken.
Am Ende macht der Bot bezogen auf die investierte Menge einen ordentlichen Gewinn, aber absolut gesehen steht das bisher in keinem Verhältnis zum Arbeitsaufwand
Leider sind die Server-kosten momentan auch beachtlich, sodass der absolute Gewinn weiter schrumpft.
Und leider, leider benötigt unsere Strategie immer auch einen Teil in Bitcoins, wobei wir diese im Februar, März und April erworben haben. Da darf man nicht auf den Kurs gucken
Aber wenns wieder hoch geht... yay !
Soweit von mir
- botticelli