DCA Bot für Kraken

Es geht nicht um deinen Bot, es geht um @surenic’s Beispiele. Das eine ist fix-Euro pro Zeitraum, das andere ist fix-BTC pro Zeitraum. Die Frage war, warum das eine besser performt als das andere.

Ich weiß (und ich glaube, jeder, der diesen Thread liest, weiß), dass dein Bot fix-Euro pro Zeitraum macht, weil er zwar in jedem Kauf die gleiche BTC-Menge kauft, aber die Abstände zwischen den Käufen so anpasst, dass er pro Zeitraum eine (mehr oder weniger) fixe Euro-Menge investiert. Das haben wir doch jetzt schon mehrfach geklärt. @surenic’s fix-BTC-Beispiel macht das nicht, deshalb performt es auch schlechter als das fix-Euro-Beispiel.

Ich lade @HODLer dazu ein, mich für jede Aussage in diesem Thread, die er als extreme Aggression empfindet, zu verwarnen.

Wenn jemand falsch liegt, sag ich es. Ich versuche, meine Richtigstellungen neutral zu formulieren und verständlich zu erklären – vielleicht gelingt mir das nicht immer. In diesem Fall liegst du falsch.

Das, was du deine „Theorie“ nennst, nämlich dass die konkrete Form von @surenic’s Preis-Kurve dazu führt, dass fix-Euro bessere Durchschnittskaufpreise erzielt als fix-BTC, ist falsch.

Das, was du deine „These“ nennst, nämlich dass ohne Annahmen zu treffen nicht langfristig ein Durchschnittskaufpreis erzielt werden kann, der unter dem Durchschnittspreis liegt, ist falsch.

Du scheinst nicht überzeugt, dass du hier falsch liegst, aber du gehst auch nicht darauf ein, was deiner Meinung nach an meinen Beispielen und Erklärungen dafür, warum du falsch liegst, nicht stimmt. Bitte mach das, statt wiederholt etwas zu erklären, worin ich mit dir sowieso übereinstimme, sonst kommen wir hier nicht vom Fleck.

Vielleicht hilft es, wenn ich nochmal wiederhole: Es geht nicht um deinen Bot. Wir wissen alle, dass dein Bot zwar fix-BTC pro Kauf macht, aber nicht fix-BTC pro Zeitraum, weil er die Abstände zwischen den Käufen so wählt, dass ungefähr fix-Euro pro Zeitraum dabei rauskommt.

Jein. Durch die häufigeren Käufe bei kleinerem BTC Preis ergibt sich letztlich eine Situation, die mit der eines fix-FIAT-Betrages vergleichbar ist.

Entsprechend lohnt sich die Diskussion nicht, ob fix-FIAT oder Dein Bot besser performt (da er trotz fix-BTC durch die Kauffrequenz letztlich wie fix-FIAT agiert).

Das hat @mowtan hier auch geschrieben:

Insofern ergibt sich der Erkenntnisgewinn aus der Diskussion um @surenic Beispiel und damit den Unterschied zwischen fix-FIAT und fix-BTC bei gleichen Zahlungsintervallen.

Hierbei wird eben deutlich, dass ein fix-FIAT beim DCA überlegen ist.

Bei gleichen Zahlungsintervallen? Ach, jetzt verstehe ich was ihr meint. Ich diskutierte um die These herum, das ich mir keinen Algo vorstellen kann, der besser - möglichst nah entlang der Preiskurve -
kauft, als der fix-BTC in schnellstmöglichen Intervallen (was der Bot macht).

Hab ich wohl nicht verstanden, dass hier was anderes diskutiert wird. Kann ich jetzt im Nachhinein so erkennen, wo ich das weiss. @mowtan sorry für das Missverständnis. Das meine Theorie für sein Beispiel keinen Sinn macht, ist (jetzt) klar. In meinem Kopf ging ich davon aus, dass der Faktor Zeit natürlich dazugehört, aber auf exakt das Beispiel bezogen, das den Algo meines Bots abbilden sollte, es aber nicht korrekt tut, stimmt die besagte Theorie nicht, das sehe ich ein.

Falls man die Edits sehen kann: Der erste Kommentar war, dass ich dir später Antworten würde (da heute viel los war). Hat mich dann aber doch nicht in Ruhe gelassen und am Ende nahm ich mir die Zeit dann trotzdem nicht, genau genug durch zu lesen. Sorry nochmals dafür.

1 „Gefällt mir“

Kein Problem. Ich hab das, was @HODLer hier „fix-BTC bei gleichen Zahlungsintervallen“ nennt, durchwegs „fix-BTC pro Zeitraum“ genannt, aber anscheinend hat diese Umformulierung jetzt den Knoten gelöst.

Jetzt, wo wir einander verstehen, vielleicht noch ein kleines Detail:

Das, was wir deine Theorie genannt haben, ist damit hinfällig, wenn der Vergleich nicht zwischen fix-Euro pro Zeitraum und fix-BTC pro Zeitraum, sondern zwischen fix-Euro pro Zeitraum und deinem Bot stattfindet, weil die beiden de facto gleich sind.

Das, was wir deine These genant haben, ist weiterhin unrichtig: Dass man ohne Annahmen den Durchschnittspreis schlagen kann, haben wir ja gesehen, z.B. DCA macht das. Aber auch die Frage, ob man ohne Annahmen DCA schlagen kann, muss mit einem ja beantwortet werden, z.B. der „dumme“ Algorithmus von vorhin macht das.

Die wichtige Sache hierbei ist, wie schon mal erwähnt, die: Je aggressiver ein Algorithmus einen niedrigeren Durchschnittskaufpreis erzeugt, umso stärker hängt die Menge der insgesamt gekauften BTC von der Kursentwicklung ab. Jeder denkbare Algorithmus geht hier einen Kompromiss ein, und DCA ist in der Hinsicht ein ganz guter Kompromiss.

1 „Gefällt mir“

Es lag genau an diesem Wort. Da hab ich was anderes drunter verstanden. Ich ging davon aus, das er meinte, man könne unter der Preiskurve kaufen ohne Spekulation. Aber egal, jetzt ists ja klar. :smiley:

Hm. Jetzt ist es mir nicht mehr klar, weil ich nicht verstehe, was du mit Preiskurve meinst, also aus welchen Punkten für dich so eine Kurve besteht.

Wenn es eine Kurve ist wie in surenics Screenshot, die aus dem Preis zum jeweiligen Kaufzeitpunkt besteht, können die Käufe per Definition nicht darunterliegen, mit oder ohne Spekulation.

Wenn die Punkte der Kurve z.B. die täglichen Durchschnittspreise sind, kann man ohne Spekulation mehr BTC unter der Kurve kaufen als darüber, z.B. mit mehrmals täglichem DCA.

Wenn die Punkte irgendwelche willkürlichen Momentaufnahmen sind, z.B. closing price, hast du wohl recht.

1 „Gefällt mir“

Ja ist egal… Ich mach eventuell mal ein Video dazu, wo ich den Algo genau erkläre. Oder irgend eine Zeichnung im Minimum. Hilft immer. :) Mache ich auch sonst meistens, wenn mehrere Techies zusammen an etwas herum diskutieren aber oftmals nicht am Verständnis liegt, sondern daran, dass jeder grade seinen Anker irgendwo anders in der Diskussion platziert hat.

Neues Update:

  • Der Code wurde ausfallsicherer gemacht (einige Fehler wurden nicht abgefangen und konnten den Bot crashen).
  • Der Überprüfungszyklus wurde von 10 Minuten auf 1 Minute verkürzt (dieser Wert kann immer noch angepasst werden).

Wie man updated:

Das wäre doch mal eine sehr sinnvolle Ergänzung im Umbrel App Store🧡

2 „Gefällt mir“

Ja, das habe ich auch noch irgendwo auf dem Radar. Aber denke, für sowas bräuchte ich Hilfe von den Umbrel Devs direkt. Die setzen Docker und Datenbanken und so kram voraus (glaube beides ist ein MUSS).

Mit Docker hat uns @DocBrown bereits einen Bärendienst erwiesen! Aber die Umbreller wikkeb minimum ein Webinterface sehen. Sowas bekomme ich problemlos hin, nur der Teil mit der Datenbank nervt ein bisschen.

Aber den Bot und die Umbrel-Integration würde ich strikte voneinander trennen. Mein Umbrel-Wrapper würde den Bot dann einfach von ausserhalb steuern. Den Bot selber will ich möglichst so lassen, wie er ist.

Danke für dein Feedback! Solches Feedback hat in der Regel immer Einfluss auf meine Prioritätenliste.

1 „Gefällt mir“

So schwer dürfte das nicht sein, denn dein Bot benötigt keine Datenbank.

Es müsste nur ein fertiges Docker-Image erstellt werden, dass dann für Umbrel zur Verfügung steht.

Ich hatte auch schon mit dem Gedanken gespielt, etwas im Umbrel „App Store“ zu veröffentlichen :slight_smile:

3 „Gefällt mir“

Dann schließe ich mich SirSir21 hiermit gerne an und würde mich ebenfalls sehr über eine Umbrel App deines Bots freuen. Leider fehlt mir das technische Wissen um mich da zur Unterstützung mit einbringen zu können.

2 „Gefällt mir“

DocBrown sagt: So schwer dürfte das nicht sein, denn dein Bot benötigt keine Datenbank.

Es müsste nur ein fertiges Docker-Image erstellt werden, dass dann für Umbrel zur Verfügung steht…

Das lässt doch hoffen :blush::orange_heart:

1 „Gefällt mir“

Inwiefern?
Natürlich ist es einfacher, ein Skript einfach nativ laufen zu lassen.
Docker ist etwas komplizierter, aber wenn es läuft, hat man eine schöne isolierte Umgebung.

1 „Gefällt mir“

Was meinst du mit „inwiefern“? Oder hast du das faslche zitiert?

Docker support kam von DocBrown. Ich hatte vor Monaten mal mit einem Umbrel Dev über Telegram geschrieben, aber hatte im Kopf, dass ich da recht viel extra machen muss. Aber so oder so, lohnen würde sich das vermutlich schon. Immer mehr Leute haben nen 24/7 Umbrel Raspberry zu Hause und mein kleines Script da braucht ja nicht wirklich Leistung.

1 „Gefällt mir“

Catch-All-Errors Update:

  • Der Bot sollte nicht mehr bei Netzwerkproblemen oder einem Ausfall der Kraken-API anhalten.
  • Unterstützung für AUD-Währung hinzugefügt.

Wie man aktualisiert:

Vergesst nicht, dem Discord beizutreten :slight_smile: raphaellueckl

Willst Du deinen Bot noch zu Umbrel bringen? :blush:

Wenn ich mal Zeit dafür finde, ja. Da muss ich mich dann halt noch einarbeiten und auch sonst noch einiges drumherum bauen. Die setzen bei Umbrel ein Web-UI voraus. Kann mich da aktuell auf kein Datum committen leider. So kompliziert ist es wohl nicht, aber sind ein paar Themen, die da angeschnitten werden müssen.

Für mich ist der Bot nichts, aber eine Idee hätte ich dazu.
Wenn du den jetzt 30 mal laufen lassen würdest dann wäre es doch egal wann du einzahlst.
Dann braucht man nicht so auf den Tag der Einzahlung achten.
Ich zahle was ein, wann auch immer und davon wird dann 30 Tage DCA gemacht.
OK wenn ich jetzt 2 Zahlungen leiste gibt es Überschneidungen weil 2 Bots kaufen und es somit kein echtes DCA mehr ist. Aber mich z.B. würde das überhaupt nicht stören.

Beim Querlesen ist mir diese Idee gekommen.

1 „Gefällt mir“

Merci für den Kommentar. Wann man einzahlt, spielt keine Rolle. Du kannst auch jede Woche einzahlen, der Bot rechnet dann einfach immer einen Monat in die Zukunft, bis zu wohin er das Fiat ganz verballert hat (nicht verballert… ehm… eingetauscht).

Das ist jetzt schon so.

Ne, es läuft immer nur ein Bot. Wenn du 2x einzahlst, bemerkt er beim nächsten „buy“ und rechnet nochmals neu. :slight_smile:
Du kannst den Bot natürlich auch 100x parallel laufen lassen, aber damit machst du die Berechnungen der 100 Bots zunichte, weil diese nicht davon ausgehen, dass noch andere Instanzen laufen. :nerd_face:

2 „Gefällt mir“