Zum Inhalt springen

Wie baue ich einen Tradingbot?


Jokin

Empfohlene Beiträge

Ich starte mal ein neues Thema und gehe davon aus, dass sich viele das auch schon gefragt haben:

"Wie zur Hoelle programmieren die Leute ihre Tradingbots? Das will ich auch koennen!!"

Ja, also warum nicht einfach mal auf diese Frage antworten?

Natuerlich hat nicht jeder von Euch Erfahrung im Programmieren, aber da behaupte ich immer wieder: Wer etwas nicht kann, der kann es lernen wenn die Motivation gross genug ist.
Und welche Motivation koennte groesser sein als das generieren von "free Money", das Schaffen der eigenen "finanziellen Unabhaengigkeit" ohne auf das MLM-Geblubber von Platincoin und Co. ertragen zu muessen und sich staendig zu fragen warum sie dort mehr Schein als Sein zeigen. Aber das ist ein anderes Thema ?

Nun geht es darum einen Bot zu programmieren, der am Ende auch was kann.

Wie geht es los?

Als erstes braucht es eine Idee.
Meine Idee dazu: "Kaufe Coins zu niedrigen Kursen und verkaufe sie zu hohen Kursen" - das ist einfach und kann sicher jeder nachvollziehen.

Welche Exchange?

Eigentlich egal solange die API brauchbar ist - ich habe mich fuer kraken entschieden, denn dort kann man "Hau den Lukas" spielen um in den genuss der Zero-Fee zu kommen.

Kurze Erklaerung: https://www.kraken.com/help/fees -> 0,00% Maker-Fee bei einem Umsatz von mehr als 10 Mio. USD pro Monat ... Ihr meint, das sei nicht moeglich? Doch, das ist moeglich. Und "Hau den Lukas" meint soviel wie: "So viel Umsatz generieren wie moeglich auch wenn kaum Gewinn dabei rumkommt"

Welche Kenntnisse werden benoetigt?

Ich programmiere gern mit PHP, das empfehle ich jedem zu lernen, bei 1&1 kann man fuer unter 5 Euro im Monat einen Server anmieten um PHP zu nutzen.

Wie geht es dann los?

- Account bei kraken anlegen
- Verifizieren
- irgendwelche Funds einzahlen (ob Euros oder Coins ist egal)
- Server anmieten
- PHP lernen (Online ist alles zu finden, was man braucht)
- API-Keys erzeugen
- API-Beispiele fuer PHP von Kraken runterladen
- API-Verbindung aufbauen
- ein bisschen mit Kraken vertraute machen wie man Order anlegt und loescht

Und dann geht es los ?

Zuerst braucht man mal einen ueberblick ueber die eigene Balance, das sind nur wenige Zeilen Code und ergibt dann das hier:

Untitled1.png.997a3e9feea7d79d7e7c9b2bf7b1a659.png

Fuer unseren Bot muessen wir auch wissen welche offenen Order derzeit vorhanden sind:
Untitled2.png.616415c12fdb39a3d570799bbbeb1142.png

Zu Beginn begnuege ich mich mit der direkten Ausgabe dessen was mir die Kraken-API zurueck gibt. Huebsch muss das ohnehin nicht werden, sondern es soll funktionieren.

Weiterhin beschraenke ich mich erstmal nur auf zwei Waehrungspaare fuer das Konzept (Ich hab mich einfach mal fuer BCHXBT und ETHXBT entschieden, XBT meint bei Kraken BTC)

Und als naechstes braucht es dann noch die abgeschlossenen Order:

Untitled3.png.9171f7e48349cbde039f5936f1405419.png

An der Stelle hab ich die API-Rueckgabe schon weiter verarbeitet indem ich die Fees mit beruecksichtige und unter allen trades eine Gesamt-Bilanz schreibe.

Daraus ist ersichtlich, dass ich derzeit 2 BCH besitze und diese jeweils 0,114035 XBT (BTC) wert sind.

Ueber meine (manuell angelegte) offene Order versuche ich nun 1,5 BCH zum Preis von 0.11700 XBT/BCH zu verkaufen - ich moechte also einen Gewinn erzielen ohne "all-out" zu gehen.

Natuerlich laeuft erstmal alles manuell und auch die eigentliche Strategie habe ich bisher nur im Kopf und noch nicht umgesetzt - das ist jetzt gerade in der Entstehungsphase.

... ich wuerde das Projekt nun mal ueber die naechsten paar Wochen weiter machen immer mal dran arbeiten aber nicht mit der hoechsten Prioritaet. Damit ich sehe ob das ueberhaupt fuer Euch interessant ist, macht mal einen "Daumen hoch", wenn es interessiert. Falls das niemanden juckt, lasse ich's sein ?

 

Bearbeitet von Jokin
  • Love it 2
  • Thanks 1
  • Like 17
Link zu diesem Kommentar
Auf anderen Seiten teilen

Weißt du was du mal machen könntest? Du könntest eine Plattform (oder hilfsskript) bauen, auf der Leute ihre eigenen Strategien kinderleicht und ohne Programmierkenntnisse umsetzen können!

Das gabs vor einiger Zeit schon, ist aber leider leider offline gegangen. Das hieß "Tradewave". Man benötigte zwar schon ganz rudimentäre Kenntnise in der Sprache Python, aber nichts kompliziertes und vorallem musste man sich auch nicht mit dem Exchangekram rumschlagen.
Als einfache Strategie musste man dann zb nur paar Zeilen schreiben nach dem Motto "if EMA1>EMA2: buy() else: sell()" und fertig ist das Tradingskript :)

Ich hatte mir damals das "Tutorial" von Tradewave als PDF-Screenshot von der Website runtergeladen. Falls du daran Interesse hast, kann ich es dir schicken, dann siehst du was genau ich meine :)

edit:
es gibt aktuell noch sowas wie "backtrader" für Python, das ist dann keine website (außer die Doku), sondern eben ein Python Modul. Das funktioniert ähnlich, ist aber schon deutlich komplexer und komplizierter. Und fürs Plotten benutzt es Mathplotlib, was meiner meinung nach keine so schönen charts zeichnet.

edit2:
bin grad am googlen nach tradewave und was auf github gefunden.. mal gucken ob das die gesamte plattform ist oder was anderes...

https://github.com/tradewave/tradewave-python
hm ne, scheint nur ne API zu tradewave zu sein, die ohne tradewave selbst natürlich nicht mehr funktioniert...

Bearbeitet von Serpens66
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, die Idee ist nicht schlecht, jedoch st das der klassische Ansatz anhand von Signalen zu traden. Dabei wird jedoch die eigene Balance vollkommen ignoriert.

Daher verfolge ich einen anderen Ansatz, den ich spaeter beschreiben wollte - aber nun gut, warum nicht jetzt ?

Folgende Tradingpraemissen gelten bei jeder Strategie:

1. Keine Arme keine Kekse.
Das heisst konkret: Wenn ich keine Euros habe, kann ich keine Coins kaufen und wenn ich keine Coins habe, kann ich keine Coins verkaufen.
Dies wiederum fuehrt zu meinem obersten Trading-Grundsatz: "Bleibe handlungsfaehig". Wenn ich nicht mehr handlungsfaehig bin, nuetzen mir die besten Signale nix, mehr als Papertrading geht einfach nicht.

2. Bewegung macht fit.
Vom Zuschauen kann ich nicht fit werden. Also braucht es immer Bewegung. Fuer mich gibt es keinen "besten Einstiegspunkt", da ich erst irgendwann in der Zukunft sehe ob ich nun gut oder schlecht verkauft habe.
Somit muss ich mich permanent bewegen. Mal habe ich Glueck, mal habe ich Pech. Nicht jeder Trade gelingt - nur in Summe sollte das schon positiv sein.

3. Mir doch egal.
Emotionen sind der Tod jedes Trades. Wer versucht mit hoeherem Risiko Verluste auszugleichen, der rennt irgendwann gegen eine Wand. Daher ist es wichtig "loszulassen" und Verluste auch mal einfach "zu akzeptieren". Sie kommen irgendwann einmal zwangslaeufig. (und ja, es gibt Strategien, die fuehren grundsaetzlich zu risikofreien Gewinnen, "Arbitrage" ist eine davon - darum geht es hier jedoch nicht)
Wer gelernt hat sich von Verlusten gedanklich zu trennen, kann sich auch von Gewinnen gedanklich trennen. Damit lassen sich Emotionen komplett ausschalten.
Dazu gehoert auch, dass ich alte Trades vergesse und diese nach einer Weile nicht mehr zur Ermittlung des durchschnittlichen Anschaffungspreises heranziehe, getreu dem Motto "Was interessiert mich der Schnee von gestern?"

4. Keep balanced.
Ich kann nur "handlungsfaehig" bleiben indem ich mein Portfolio permanent ausbalanciere. Und ich kann mein Portfolio nur dann ausbalancieren, wenn ich auch verluste akzeptieren kann, die ich bewusst mache um handlungsfaehig zu bleiben.
Das perfekte Portfio eines Traders ist ausbalanciert. geraet es aus der Balance, dann werden die Bewegungen asymetrisch, also weniger kaufen und mehr verkaufen oder anders herum und dies dann auch mit geringerer Marge in die eine richtung als in die andere Richtung.

 

All diese Praemissen fuehren dazu, dass "die Moeglichkeit" besteht Gewinne zu erwirtschaften. Ich konzentriere mich grundsaetzlich mehr auf das was ich jetzt in diesem Augenblick habe als auf das was die Kurse in der Vergangenheit gemacht haben.

Ich versuche gar nicht erst die Kurse sehr genauc vorher zu sagen. Die einzige Vorhersage, die ich unterstelle ist, dass ein Kurs innerhalb seines 24h-Minimums und 24h-Maximums schwankt und je dichter der Kurs an dem einen oder anderen Extremwert liegt desto wahrscheinlicher ist es, dass der Kurs sich wieder in Richtung des anderen Extremwertes bewegt. Dafuer benoetige ich naemlich noch keine komplizierten Berechnungen, da diese 3 Werte direkt von Kraken uebermittelt werden.

Bitte nicht falsch verstehen - ich bin kein Hardcore-Trader sondern eine faule Sau und will auch nicht das Maximum rausholen, sondern arbeite mehr nach "Masse statt Klasse" - und dafuer ist es dann leider zu muessig permanent von Hand die Parameter fuer die Order zu berechnen.

Aktuell tippe ich wie ein bekloppter auf dem taschenrechner rum um meien Order-Parameter zu erhalten, die ich dann haendisch bei Kraken eingebe. Der naechste Schritt ist also, dass mein Bot die Orderparameter selber errechnen soll und mir einen Vorschlag macht.

Danach ist der naechste Schritt, dass ich diesen Vorschlag editieren kann und dann ueber meinen Bot an kraken sende.

Und dann ist der Weg nicht mehr weit, dass der Bot von Zeit zu Zeit selber mal die Situation checkt und die Order selber berechnet und an kraken sendet.

Fertig ist mein neuer Trading-Bot :-)

(ok, ganz so einfach ist das dann auch nicht ...)

 

  • Love it 1
  • Thanks 2
  • Like 3
Link zu diesem Kommentar
Auf anderen Seiten teilen

2 hours ago, Serpens66 said:

Weißt du was du mal machen könntest? Du könntest eine Plattform (oder hilfsskript) bauen, auf der Leute ihre eigenen Strategien kinderleicht und ohne Programmierkenntnisse umsetzen können!

Das einzig heikle dabei ist, dass man Api-Key und -Secret aus der Hand geben muss. Ansonsten ist das eine schöne Idee.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 15 Stunden schrieb PeWi:

Das einzig heikle dabei ist, dass man Api-Key und -Secret aus der Hand geben muss. Ansonsten ist das eine schöne Idee.

Nö, das geht auch anders.

Wenn ich so eine Plattform aufbauen würde und selber die API-Calls vom Server aus vornehmen würde, dann renne ich sehr schnell in die IP-API-Limits.

Somit würde ich den Server nur dazu nutzen die Userverwaltung aufzubauen und die GUI wie auch die Strategie-Planung und -Berechnung umzusetzen.

Jeder User müsste auf seinem eigenen PHP-Webserver ein paar Client-Skripte laden. Dort sind die API-Keys. Der Server kann somit den Client antriggern bestimmte API-Calls auszuführen und die Rückgabewerte an den Server zu übermitteln.

Damit hätte jeder User die Möglichkeit über seinen Client auch einen "Bottleneck" zu schaffen um sein Vermögen zu schützen. So könnte der Client zum Beispiel nur Market-Order verbieten und Limit-Order müssen ausschließlich so gesetzt werden, dass sie nicht sofort bedient werden und das Volumen je Order kann begrenzt werden und auch die Anzahl der Order in einem gewissen Zeitfenster.

Auf diese Weise würde ich mir als Anbieter das Vertrauen schaffen, dass mein Server die Clients nicht als riesiges Bot-Netz missbraucht um Pump&Dumps durchzuführen. Jeder Client kann dann selber entscheiden wie "zugeschnürt" er sein möchte.

Nur mal so ein paar lose Gedanken ... generell gefällt mir die Idee, dass User ihre eigene Strategie festlegen können. Im Idealfall sollte es ein Schieberegler sein zwischen Profit und Risiko ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

4 hours ago, Jokin said:

Nö, das geht auch anders.

Das ist dann aber schon ein ganzes Stück von der Einfachheit entfernt, von der Serpens66 geschwärmt hat, wenn der User erstmal einen PHP-Webserver samt Client-Skripten aufsetzen muss. ?

Grundsätzlich stimmen ich deinen Gedanken aber zu.

Die aus Usersicht heiklen Sachen (Keys, Orders, Orderbegrenzungen) bleiben beim User, und die aus deiner Sicht schützenswerten Sachen bleiben auf deinem Server.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 35 Minuten schrieb PeWi:

Das ist dann aber schon ein ganzes Stück von der Einfachheit entfernt, von der Serpens66 geschwärmt hat, wenn der User erstmal einen PHP-Webserver samt Client-Skripten aufsetzen muss. ?

Naja, ich persoenlich bin der Meinung, dass jemand, der einen Trading-Bot laufen lassen will dies nicht nur drei-fuffich im Monat machen, sondern da soll etwas mehr bei rumkommen. Eventuell liege ich auch falsch ?

 

So, nochmal zu meinem Bot, ich hab gestern andere Aufgaben straeflich vernachlaessigt ...

... wie das bei der Entwicklung so ist, gibt es auch immer wieder unerwartete Probleme. Ich habe die Reihenfolge nun etwas umgestellt.

Bisher ist alles noch im Handbetrieb und noch nichts fuer den Automatikbetrieb vorgesehen. Naechste Woche mache ich erstmal Urlaub, danach geht es zwei Wochen weiter und Ende Juli muss das fertig sein.

Tradehistory
Ein Bot muss wissen, was er zuletzt getradet hatte - leider gibt Kraken keine "ClosedOrder"-Daten raus, die aelter als 6 Stunden sind. Da ich das Ding schlank halten will und weder Datenbank noch Datendateien anlegen moechte und auhc nicht zu viele API-Calls verbraten will (ansonsten droht IP-Sperre), gebe ich mich mit den 6 Stunden nun zufrieden.

Untitled2.png.b251cd7a9e7e15e27be39cfd89757778.png

Der Screenshot zeigt, dass ich durch die Trades der letzten 6 Stunden ca. 1,93 BCH "mehr ge- als verkauft" habe und dieser zusaetzliche Bestand nun einen Wert von ca. 0,11399 BCH/BTC hat.

OpenOrder
Mein Bot muss auch immer wissen welche Order gerade offen sind. Ueber das "X" kann ich die order nun auch direkt loeschen ohne mich bei Kraken anzumelden.
Untitled3.png.4578729da9aa2163afe8c4a759f72458.png

Die offenen order brauche ich auch um festzustellen wieviel Coins ich in Order gebunden habe und somit nicht fuer neue Order zur Verfuegung stehen.

Kraken hat ein Limit von 200 offenen Order - das ist ja nicht mein erster Versuch einen Kraken-Bot zu erstellen, der dort das Trade-Volumen rauf zieht.

Kraken-Balance
Natuerlich muss ein Bot wissen wieviel Balance insgesamt zur Verfuegung steht, diesmal nix ausgegraut, is mir egal wenn die Werte zu sehen sind.
Die "available-Werte" muessen nicht zwangslaeufig zu den offenen BCHXBT-Order passen, da ich bei Kraken auch noch viel diverse weitere Paare offene Order habe, die alle beruecksichtigt werden.
(was fuer ein Mist bei Kraken .... bei Binance gibt es die Werte gleich ueber die API mit)

Untitled4.png.dad15b3af402269f5ee03302ae4f10e8.png

Rates / Strategie
Und ebenso muss ein Bot die aktuellen Kurse kennen, die hole ich mir derzeit nur von Kraken.

Meine erste super einfache Strategie ist, dass ich lediglich 0,2% ueber/unter dem aktuellen Kurs meine BUY/SELL-Order anlegen kann. Wer aufmerksam auf die Screenshots schaut, der sieht, dass ueber die letzten 6 Stunden betrachtet ein minimaler Gewinn uebrig geblieben ist - was dennoch bedeuten kann, dass es die Stunden davor heftige Verluste gab)

Untitled5.png.60c62b33ffb227f8aa7ad7964ad43b6d.png

in der aktuellen Software-Version mache ich lediglich einen "Vorschlag" um dann die Order manuell zu setzen. Jedoch habe ich bereits nach wenigen Stunden Arbeit ein Skript geschaffen mit dem ich order setzen und loeschen kann ohne mich bei kraken einzuloggen. Zudem muss ich mich schon besonders daemlich anstellen um Eingabefehler zu machen, was in der Kraken-GUI durchaus schnell passieren kann (ist mir schon sehr oft passiert).

Multi-Pair-Faehigkeit
Mein Bot soll am Ende nicht nur ein Pair beackern koennen sondern er soll das mit allen Pairs auf Kraken koennen. Dazu muss ich natuerlich auch gleich alles so vorbereitet werden - also unter der Haube alles in Arrays und so ... es wird spannend :-)

Untitled6.png.e458d26f209709e1424969bb3c135f09.png

 

Aktuell ist das Script fehlerfrei benutzbar um Order zu setzen und zu loeschen ?

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, und das war's dann auch schon wieder.

Ich hab das nun fertig gemacht und es laeuft fein und verlustfrei ?

Tradehistory
Keine Aenderungen, das ist ja nur eine Anzeige und die Aufsummierung aller Trades um den Durchschnittskurses des Bestandes zu erhalten.

Dabei kann der Bestand auch negativ werden, denn nach 6 Stunden ist ja alles "vergessen". Ein negativer Bestand ist nichts Schlimmes, sondern bedeutet nur, dass im weiteren Verlauf mehr "ge-" als "ver-"kauft werden sollte. Und wenn der Bestand negativ ist und auch der Bestands-Wert negativ ist, dann kann das einfach durch Nachkauf zu eben jenem Wert ausgeglichen werden.

Untitled.png.a93f46ac7bd1a98ee5159af2f6247cc8.png

... ich muss also nun 0,5 BCH zu einem Kurs von 0.11212 BCH/BTC kaufen damit mein Wert ausgeglichen ist. Das Orderbuch gibt gerade BCH im Wert von 0.11183000 her, somit kann ich also guenstiger kaufen und nach dem Ausgleich bleibt ein Gewinn.

Leider hat sich der Kurs in den letzten 6 Stunden nur wenig bewegt, daher sind es nur 3 Trades fuer dieses Pair.

OpenOrder
Mein Bot muss wissen wieviel offene BUY- und SELL-Order ich habe, denn meine Strategie sieht vor, dass grundsaetzlich mindestens eine BUY- und eine SELL-Order vorhanden sein muss. Dadurch stelle ich sicher, dass ich grundsaetzlich handlungsfaehig bin und bei jeder Kursbewegung etwas "passiert".

Weiterhin will ich sicherstellen, dass nicht zu viele Order offen sind, daher lasse ich ab der 6. Order die Order wegloeschen, die am weitestens vom Durchschnittspreis aller Order entfernt ist. Das ist meine "Abseits-Regel" in meinem Orderbuch.

Es bringt mir nichts, wenn ich vom aktuellen Kurs weit entfernte BUY- und SELL-Order habe, denn ich moechte ja kleine Kursbewegungen ausnutzen. Also muss ich pruefen ob meine hoechste BUY-Order und meine niedrigste SELL-Order max. 1% auseinander liegen.

Untitled1.png.f287ce23ec09817058870748c4e24e8f.png

Balance
In dem Abschnitt hab ich seit gestern nix geaendert

Rates
Zukuenftig ziehe ich auch die Kurse der anderen Boersen heran um meine BUY- und SELL-Order in Abhaengigkeit vom Kurs auf anderen Exchanges besser zu platzieren (wenn der Kurs an einer groesseren Exchange faellt, wird er wohl auch bei kraken fallen). Dazu hatte ich gestern aber keine Lust ?

Vielmehr hab ich mich darum gekuemmert, dass das Skript anhand der aktuellen Situation eine Handlungsempfehlung abgibt und die Standard-Order-Parameter entsprechend anpasst.

Untitled2.png.8625e745fc4d4860b320ceb31d30030f.png

Wenn ich wie im Bild -0,5 Coins hab, ist dem Skript das noch egal. Ab 3 Coins zu viel oder zu wenig greift es ein und verschiebt die Parameter.
Also wenn ich 3 Coins zu viel habe, dann wird die Menge fuer die SELL-order verdoppelt und die Marge fuer die BUY-Order ... ich will ja eher verkaufen als kaufen.

Ebenso wenn meine besten BUY- und SELL-order 1% auseinander liegen, wird ein neues BUY-SELL-Orderpaar angelegt.

... ganz sicher ist das weit weg von einer "optimalen" Strategie, jedoch geht das schonmal in die richtige Richtung.

Multi-Pair-Faehigkeit
Da ich mein Skript knosequent auf viele Pairs ausgelegt habe, funktioniert das nun auch - kleine Bereinigungen waren noch noetig, aber das Skript kann nun auch mit beliebig vielen Pairs arbeiten ohne dass zusaetzliche API-Calls noetig sind (abgesehen vom Anlegen der Order)

Automode
Die wichtigste Neuerung gestern ist mein "automode". Rufe ich mein Skript im Browser mit diesem Parameter auf, dann wird nicht nur empfohlen die 6. offene Orderzu loeschen, sondern die wird direkt geloescht. Und es wird auch nicht nur eine Empfehlung fuer SELL- und BUY-Order abgegeben sondern das wird direkt ausgefuehrt.

 

Und damit ist mein Bot nun fertig und laeuft per cronjob im Produktivbetrieb.

Arbeitszeit insgesamt: Ca. 5 Stunden oder so und weniger als 1.000 Zeilen PHP-Code. Derzeit ist der Quellcode noch alles andere als gut dokumentiert und auch noch nicht wirklich gut strukturiert, daher gebe ich das Skript noch nicht aus der Hand. Falls es dennoch Interessenten gibt (es braucht nur einen Kraken-Account und einen PHP-faehigen Webserver dazu, fuer Dauerbetrieb noch einen Service wie easycron.com - das kann ich aber mit meinen Servern auch fuer Euch uebernehmen), dann macht Euch mal Gedanken. Ich will das nicht verschenken, ich will mich aber auch nicht bereichern. (ich hab aber ein Crypto-Sparschwein fuer meine Kinder ... bin ich da eigentlich der einzige?)

 

 

Bearbeitet von Jokin
Link zu diesem Kommentar
Auf anderen Seiten teilen

Kleiner Exkurs warums bei komplizierteren Strategien garnicht so leicht ist:
Um wirklich etwas umfangreichere Bots zu schreiben, zb welche bei denen es auf Zeit und limit orders ankommt, ist leider noch deutlich mehr nötig.
Klar, so ein "if EMA1>EMA2: buy()" Bot, der immer nur market orders erstellt ist kinderleicht. Aber schon mit Limitorders die man evlt wieder cancelt wird es schon richtig kompliziert. Das liegt dann aber an den exchanges, denn jeder exchange hat seine eigenen Macken. Denn selbst wenn man gerade über die API die eigene offene Order überprüft, ob sie erfüllt wurde und sieht "nein sie ist nicht erfüllt" und schickt dann sofort den Cancel-Befehl los, kann sie während dieser kurzen Zeitspanne doch noch angenommen werden. Oder Bei bitfinex zb ist sie dann erstmal im Status "submitted cancelation" , was heißt sie wird "sobald möglich" gecancelt, was auch durchaus ein paar sekunden dauern kann. Dh. nach jedem Canceln muss man eigentlich nochmal prüfen, ob vllt doch noch was erfuellt wurde. Wenn man nun aber viele offene orders hat und diese zb regelmäßig den Marktgegebenheiten anpasst, dann kommt man hinten und vorne nicht mit den API Limits aus, weshalb sowas auf Kraken, mangels Websocket API, fast unmöglich ist.
Jeder Exchange hat seine eigenen kleinen Macken, welche allesamt undokumentiert sind und man sie erst bemerkt, wenn der Bot wegen ihnen Fehler ausspuckt oder sonst nicht wie erwartet arbeitet.

Zusätzlich muss man natürlich für jeden exchange auch noch Fehlerbehandlung einbauen. Auch die Fehlermeldungen sind selten alle dokumentiert. Also zb dass wenn es beim platzieren der order aus irgendeinem grund einen "not enough balance" fehler gibt, dass der bot dann nicht komplett durchdreht, sondern es vllt nochmal mit etwas kleinerer menge probiert und wenn auch das nicht geht, dann vllt doch lieber erstmal pausiert. Oder wenn die Verbindung zum exchange abbricht, dass er versucht neu zu verbinden, oder eben 10 minuten pausiert. Und und und...

Bearbeitet von Serpens66
  • Love it 1
  • Up 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

So, ich bin aus dem Urlaub zurueck und mach mal ein Update.

Der Bot laeuft prima und er setzt reichlich Order ab, mittlerweile hab ich nun 10 Pairs im Rennen und ich bleibe noch unter dem Limit von 200 offenen Order.

Bloederweise gibt kraken nur eine gewisse Anzahl der letzten geschlossen Order und auch nur eine gewisse Anzahl der letzten Trades zurueck ... das reicht derzeit gerademal fuer einen Rueckblick von nichtmal 60 Minuten. Autsch. Ich komme also um eine Datenbank nicht drumrum.

... ich hab also derzeit keine Ahnung ob das Ganze halbwegs profitabel ist oder nicht. Da jedoch mein Hauptziel die "10 Mio. USD Umsatz pro 30 Tage" ist, laeuft das schon ganz gut. Ich brauche also ca. 333.333 USD Umsatz pro Tag. Das klingt viel, aber wenn man das mal runterbricht, sind das nur 13.888 USD pro Stunde, also 2.314 USD alle 10 Minuten und das auf 10 Pairs verteilt sind lediglich unter 250 USD pro Pair alle 10 Minuten ... ziemlich locker zu schaffen.

 

  • Thanks 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Heute mal ein kleines Update.

Ich hab mittlerweile herausgefunden, dass kraken nur 50 Datensaetze der letzten Trades/Order rausgibt und man die naechsten 50 nur mit einem weiteren API-Call auslesen kann.

Somit hab ich nun doch mein einfaches Konzept verlassen und eine Datenbank hinten dran gehangen und kann so auch wieder die letzten 6 Stunden auswerten :-)

Ich gebe nochmal einen Einblick in meine Strategie bevor ich das Projekt privat weiterfuehren werde. Ich hatte ueberlegt das Ganze oeffentlich zu machen jedoch ist mein Konzept nicht konkurrenzfaehig. Also "konkurrenzfaehig" in dem Sinne, dass wenn jeder dieselbe Strategie wie ich mit denselben Parametern nutzt, dann geht das nicht mehr auf. Es machen sich alle gegenseitig Konkurrenz und das wuerde dann auf meine eh schon schmalen Gewinne schlagen.

Hier nun das letzte Strategie-Update:

Untitled.png.dfaadbfb6a89e318b7fe37fc1f98a472.png

... meine Strategie ist also in Abhaengigkeit vom aktuellen Kurs (welch Wunder ...)
... und in Abhaengigkeit meiner derzeit offnen Order (in diesem Fall ist keine BUY-Order offen, es wird also ein neues Orderpaar angelegt
... ebenso in Abhaengigkeit meiner Balance und der Anforderung wieviel ich minimal und maximal haben will.
... und in Abhaengigkeit wieviel Coins in den letzten 6 Stunden ge- und verkauft wurden damit das auch in Balance gehalten wird.

In obigem Fall hab ich viel zu viele ETC und keine offene BUY-Order ... klar, der Kurs faellt und die neu gesetzten BUY-Order werden fix gefuellt und es kommen immer mehr Coins dazu.
Also erhoehe ich die SELL-Menge damit mehr ver- als gekauft wird und halbiere die Buy-Menge - zusaetzlich setze ich die Gewinnmarge rauf.

Dem aufmerksamen Leser faellt hier auf, dass mein BUY-Price hoeher ist als der SELL-Price ... ja, sehr daemlich, einfach mal + und - vertauscht gehabt und kraken hat mir die Order mit "cannot trade with your self" permanent geloescht, was mich schon wunderte. Aber nun ist der Bug in der Life-Version behoben den Screenshot lasse ich aber dennoch mal so stehen :D

Das eigentlich Spannende an der Sache: Trotz Bug gibt es kleine Gewinne neben dem Hauptziel das Umsatzvolumen hochzuziehen.

Mein Hauptziel hab ich noch im Blick. Seit dem Start vor 14 Tagen hab ich nun ein Umsatzvolumen von fast 5 Mio USD generiert (Gewinn/Verlust hatte ich bisher nicht durchgaengig ermittelt, sondern nur geschaut, dass es ueberhaupt positiv bleibt). Die 10 Mio. USD bis zum 27.7. sind daher ziemlich wahrscheinlich zu erreichen - ich mache dann mal ein Screenshot (es erscheint dann ein kleines Sternchen bei der Umsatzanzeige ? )

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

1 hour ago, battlecore said:

Herrje, das sind Summen die ich nichtma gedanklich greifen kann. Jetzt komm ich mir so schäbig vor mit meinen vierstelligen Sachen 

Da bist du nicht der einzige, dem es so geht. Jokin schwebt einfach in anderen Sphären. ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Servus,  dein Grundkonzept ist meiner Meinung nach falsch und mir fallen da einige Dinge ein:

Ich versuche gar nicht erst die Kurse sehr genau vorher zu sagen.

(Du kannst gar keinen Kurs vorhersagen !)

Die einzige Vorhersage, die ich unterstelle ist, dass ein Kurs innerhalb seines 24h-Minimums und 24h-Maximums schwankt und je dichter der Kurs an dem einen oder anderen Extremwert liegt desto wahrscheinlicher ist es, dass der Kurs sich wieder in Richtung des anderen Extremwertes bewegt.

(Gewagte These außerdem frage ich mich welche 24 Stundenzeit solls denn sein und wo startet diese und warum ? Im Endeffekt ein Schuss ins Blaue, da du den Zeitpunkt des Extremwertes also den Ausgangspunkt bestimmst !)

Problem ist außerdem das ein einziger schwarzer Schwan dein System an die Wand fährt.

Was passiert wenn die Exchange deine Orders aus welchen Gründen auch immer bei einem Kurssturz/Systemabsturz nicht ausführen kann (Margin etc),?

Nicht zu unterschätzen sind bei der Menge an Transaktionen auch die Gebühren.

Die Frage die sich dann zum Schluss stellt ist ob ein Gewinn oder Verlust mit diesem System nicht purer Zufall ist, zudem gehe ich auch noch davon aus das dieses System ein alter Hut ist,

aber trotzdem hoffe ich für dich das es funktioniert.

Schönen Tag noch.

 

 

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Eigentlich ist es ganz einfach:

Wenn ich 10% Gebuehren zahlen muss, dann kann ich nur super wenig traden, da die Kurse nicht so schnell um 10% steigen oder fallen.
Wenn ich 1% Gebuehren zahlen muss, dann kann ich schon haeufiger traden und dementsprechend auch mehr Umsatz und Gewinn generieren.
Wenn ich 0,1% Gebuehren zahlen muss, geht da noch mehr Gewinn und noch mehr Umsatz.
Wenn ich 0,02% ... -> mehr Umsatz
Wenn 0,00% -> mehr Umsatz

kraken als Exchange bietet die 0,00% bei einem Handelsvolumen von 10 Mio innerhalb von 30 Tagen an.

Ich muss also irgendwie mit kleinem Geld maximal Umsatz erzeugen und wenn davon Trades auch mal daneben gehen - ja, nun ... dann ist das halt so. Mein Fokus ist der Umsatz.

Momentan sieht das so aus:

Untitled.png.bb7c186040ce3806b6984e41c230d013.png

... wahrscheinlich verfehle ich die 10 Mio innerhalb eines Monats, aber nun gut - die 0,02% sind auch schon ganz ok.

(interessant dabei ist: Kraken freut sich ueber High-Volume-Trader so sehr, dass ich nun einen eigenen Support-Mitarbeiter habe, die ich per telegram anschreiben kann, wenn ich irgendwelche Sorgen habe ... das ist mal Service :D)

Ich moechte derzeit keine Ergebnisse posten - die sind bei diesem Bot negativ, was daran liegt, dass sich meine Bots gegenseitig in die Quere kommen - der eine macht umso mehr Gewinn und dieser hier faehrt die Verluste ein macht dafuer den weit groesseren Umsatz ... in Summe ist das alles immernoch positiv, das Gesamtergebnis ist jedoch privat, da zeige ich nix).

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Versteh mich bitte nicht falsch aber da fehlt mir immer noch ein bisschen die Logik.

Wenn ich 0,1% Gebuehren zahlen muss, geht da noch mehr Gewinn und noch mehr Umsatz.

wie kommst du drauf das mehr Umsatz mehr Gewinn bringt ?

Was du machen willst ist eine Art Hochfrequenzhandel mit 0% Gebühren, allerdings sieht dein System im Prinzip wie das Setzen auf Farbe bei Roulette aus.

Bei Verlust wird einfach der Einsatz erhöht. Dir ist schon klar das dieses System mathematisch keinen Gewinn abwerfen kann und nicht einmal funktioniert

wenn du unbegrentzes Kapital hättest.

 

Abgesehen von dem immensen Risiko hat dich jeder Hodler um Längen geschlagen und das noch ohne Zeitaufwand und das auch noch mit Gebühren.

 

Weiterer Aspekt der ebenfalls nicht zu vernachlässigen ist :

Deine Gewinne werden komplett mit deinen Lohneinnahmen versteuert. (Veräußerungsgewinne).

Insgesamt macht dein System von vorne bis hinten keinen Sinn.

 

Aber ok ist nur meine persönliche Meinung.

Ciao

 

 

 

Bearbeitet von wuidling
  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 25 Minuten schrieb wuidling:

Wenn ich 0,1% Gebuehren zahlen muss, geht da noch mehr Gewinn und noch mehr Umsatz.

wie kommst du drauf das mehr Umsatz mehr Gewinn bringt ?

Weil mit geringeren Gebuehren kleinere Kursschwankungen nutzbar sind.

vor 25 Minuten schrieb wuidling:

Deine Gewinne werden komplett mit deinen Lohneinnahmen versteuert. (Veräußerungsgewinne).

 

Korrekt, mit dem Steuerrecht kenne ich mich (notgedrungen) bestens aus ?

 

 

  • Haha 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 24.7.2018 um 17:19 schrieb wuidling:

Versteh mich bitte nicht falsch aber da fehlt mir immer noch ein bisschen die Logik.

Wenn ich 0,1% Gebuehren zahlen muss, geht da noch mehr Gewinn und noch mehr Umsatz.

wie kommst du drauf das mehr Umsatz mehr Gewinn bringt ?

Was du machen willst ist eine Art Hochfrequenzhandel mit 0% Gebühren, allerdings sieht dein System im Prinzip wie das Setzen auf Farbe bei Roulette aus.

Bei Verlust wird einfach der Einsatz erhöht. Dir ist schon klar das dieses System mathematisch keinen Gewinn abwerfen kann und nicht einmal funktioniert

wenn du unbegrentzes Kapital hättest.

 

Abgesehen von dem immensen Risiko hat dich jeder Hodler um Längen geschlagen und das noch ohne Zeitaufwand und das auch noch mit Gebühren.

 

Weiterer Aspekt der ebenfalls nicht zu vernachlässigen ist :

Deine Gewinne werden komplett mit deinen Lohneinnahmen versteuert. (Veräußerungsgewinne).

Insgesamt macht dein System von vorne bis hinten keinen Sinn.

 

Aber ok ist nur meine persönliche Meinung.

Ciao

 

 

 

Du musst das anders sehen.

Wenn ich pro Trade 10 Prozent Gebühren bezahlen müsste, dann müsste der Kurs ja auch mindestens diesen Sprung machen damit sich das lohnt, sonst wärs ja Blödsinn.  Also kann ich nur seeehr wenige Trades machen weil Kurse eben nicht mehrmals am tag so weit ausholen.

Zahle ich nur 0,1 Prozent Gebühren, dann siehts ja anders aus. Das machen die Kurse ständig. Also kann ich logischerweise richtig viele Trades machen und es springt fast immer ein netter Gewinn bei raus. Denn ich muss ja lediglich über die 0,1 Prozent Gebühren hinaus kommen.

Also geht mit 0,1 Prozent Gebühren richtig was. 10x 0,1 Prozent sind auch 1 Prozent. Aber 0,1 ist einfacher zu erreichen wie 1,0. auch zehnmal hintereinander.

Viele Trades, das Volumen steigt und steigt. Und wenn die 10 Mio. erreicht sind isses völlig Gebührenfrei.

Wenn du dann denkst das so ein bissel über 0,1 Prozent Gewinn ja nicht viel ist, dann musst du einfach sehen wieviele Trades es sind.

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...

Wichtige Information

Wir haben Cookies auf Deinem Gerät platziert. Das hilft uns diese Webseite zu verbessern. Du kannst die Cookie-Einstellungen anpassen, andernfalls gehen wir davon aus, dass Du damit einverstanden bist, weiterzumachen.