Zum Inhalt springen

Workshop: Wir basteln uns einen Tradingbot (Lektion 6)


Empfohlene Beiträge

10 hours ago, Theo Kojak said:

wie berechnest Du eigentlich das Momentum der einzelnen Coins

Vermutlich garnicht?

Es geht ja nicht ums Momentum, sondern um die sozusagen statische Frage "wie ist der Unterschied zwischen Ist und Soll". Und abhängig davon werden Orders erzeugt oder gelöscht.

  • Thanks 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor einer Stunde schrieb Theo Kojak:

oHHH, jetzt wird es schwer. Vor vor einigen Post hatte ich mal gefragt, wie Du Deine Coins jeweils rankst, sprich, wenn einer schneller steigt als der andere, dann stiegst Du ein. Da hast Du gesagt, Du schaust auf das Momentum. Momentum ist im Trading ein festgelegter Begriff, der darstellt, wie die einzelnen Werte steigen. Sowas wie y = close - close (10), wo 10 die Periode zurück ist.

Wie machst Du das ?

Theo

Ahaaa - nun verstehe ich welchen Beitrag Du meinst, das war hier:

 

Ich berechne kein "Momentum" - der Bot macht einen einfachen "Soll-Ist-Abgleich" indem er feststellt wie die Prozentuale "Ist-Verteilung" der Coins untereinander ist und er errechnet die Differenz zur "Soll-Verteilung".

Ein Coin, der andere "überflügelt", also ein Coin, der nach oben hin ausgebrochen ist und einen deutlichen Kurszuwachs gegenüber den anderen hat, der sorgt für ein Ungleichgewicht, welches dann ausbalanciert wird.

Der sehr stark gestiegene Coin wird also abverkauft und ein sehr stark gefallener Coin wird hinzu gekauft.

Sollten alle Coins fallen, dann sind die Coins untereinander immernoch im Gleichgewicht, jedoch ist dann die Seitenlinie im Übergewicht und somit wird etstprechend ein Coin nachgekauft - steigen alle, dann wird der am stärksten gestiegene verkauft.

Und so pendelt das immer hin und her.

Da die BUY- und SELL-Order in Abhängigkeit vom 24h-Minimum/Maximum gesetzt sind, wird "im Ansatz" vermieden, dass zu früh verkauft oder zu früh gekauft wird. Diese Spanne ermöglicht dann auch einen kleinen Profit.

Ob dieser kleine Profit ausreicht um bei immensen Kurssteigerungen auch die Steuerlast gegenüber des HODLens auszugleichen? ... das weiß ich noch nicht, es lässt sich auch schwer vorher ermitteln.
Aus diesem Grund fahre ich mehrere Strategien zeitgleich. Die Rebalancing-Strategie ist nur ein kleiner Teil meiner Diversifikation.

  • Thanks 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Monate später...
Am 15.1.2019 um 22:33 schrieb Jokin:

2. Zusätzliche Sicherheit gegen Preisstürze einbauen

Abschnitt 9 wird erweitert indem wir den Bot stoppen sobald wir einen Coin mit massivem Preissturz erkennen.
Dafür unterstellen wir, dass der maximale und der minimale Preis innerhalb von 24 Stunden ein guter Indikator ist – wenn diese Spanne halb so groß wie der aktuelle Kurs ist, dann scheint es einen massiven Kursverfall zu geben und der Bot sollte nicht nur diesen Coin nicht nachkaufen sondern seine Arbeit komplett einstellen und dem Admin die Gelegenheit geben selber einzugreifen und die config.php anzupassen.
Ich habe einen Platzhalter für „Abschnitt 9.1“ drin, hier wird noch eine Benachrichtigungsemail versendet werden.

Wie sieht es hier aus? Reichst du die Mail-Funktion noch nach?

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Stunden schrieb plangin:

Wie sieht es hier aus? Reichst du die Mail-Funktion noch nach?

Ich hatte mich lange mit ddm eMail-Versand über Windows und Raspi befasst. Ich hab's nicht hinbekommen sendmail zum Laufen zu bringen.

Die Funktion ist einfach hinzuzufügen: Google "php manual mail", dort ist das beschrieben und mit einer Zeile Code ist das schon erledigt.

Allerdings benötigt man dazu einen korrekt installierten Webserver, wie er bei kostenpflichtigen Webhostern inklusive ist.

Für meine Weiterentwicklung hatte ich mich darauf konzentriert eher das Coinmarketcap-Ranking zu implementieren, dadurch sollte ganz gut vermieden werden, dass abstürzende Coins nachgekauft werden, weil die ja auch im Ranking direkt mit abstürzen und daher vom Bot zwangsläufig aus dem Portfolio fliegen.

Anfang Mai mache ich mal wieder einen kompletten Kassensturz um zu sehen wo die Schwachstellen sind.

Vorweggenommen: Der Kern-Algorithmus hat bisher keine Anpassungen bekommen und auch die Einstellungsparameter sind offenbar ganz brauchbar, sie führen zumindest nicht zu Portfolioverlusten, die nicht durch den Gesamtmarkt verursacht wurden. (gegen einen fallenden Gesamtmarkt eine positive Rendite zu erzielen ist nur in besonderen Fällen möglich oder mit hohem Risiko)

 

  • Thanks 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

OK, dann mache ich das selbst.

Ich halte mich dann daran:

https://stackoverflow.com/questions/4963688/how-to-send-email-from-php-without-smtp-server-installed

vor 17 Stunden schrieb Jokin:

Allerdings benötigt man dazu einen korrekt installierten Webserver, wie er bei kostenpflichtigen Webhostern inklusive ist.

Aber es muss doch lokal gar kein Webserver laufen. Man braucht nur die SMTP-Daten seines normalen Mailaccounts. Ist doch keine Rocket Science.

Übrigens: Der BalanceBot läuft bei mir auf dem ersten Raspberry Pi, neben Homebridge und einem weiteren Crypto Tranig Bot (Gekko). Läuft alles wie geschmiert und ich sehe keine Lags.

vor 17 Stunden schrieb Jokin:

Für meine Weiterentwicklung hatte ich mich darauf konzentriert eher das Coinmarketcap-Ranking zu implementieren, dadurch sollte ganz gut vermieden werden, dass abstürzende Coins nachgekauft werden, weil die ja auch im Ranking direkt mit abstürzen und daher vom Bot zwangsläufig aus dem Portfolio fliegen.

Das klingt sinnvoll!

Find die Kombi ETH-BNB-NEO-ADA schon fast etwas zu langweilig. 😄

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 5 Wochen später...
vor 19 Minuten schrieb bjew:

Annahme, dass da alles außßer Rand und Band gerät?

Ja, genau. Es lässt sich nicht auf einfache Weise ein Coin einfach so ausblenden, da alles mit allem in Balance sein soll.

Wenn man die Gewichtung im Portfolio vom coinmarketcap-Rang ableitet, führt ein Kurssturz zur geringeren Gewichtung und der Coin fällt automatisch raus und wird abverkauft.

Das Wichtigste ist abstürzende Coins nicht hinzuzukaufen, die saugen dann das gesamte Kapital aus dem Portfolio. Megagefährlich.

Bearbeitet von Jokin
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 Jahr später...

Hallo und noch ein dickes Dankeschön an @Jokin für diesen tollen Workshop.

Es hat einige Tage gedauert, nun aber hab ich meinen Bot auch am Laufen. Vorab, er funktioniert, es wird auch alles schön in die Tabellen eingetragen, lediglich wenn die index.php ausgeführt wird, bekomme ich eine Notiz : "Undefined index: code in ....\index.php on line 316" was dem Part entspricht

// falls ein Fehler zurück kommt, wollen wir das wissen
  if ($result_binance_create['code']){
  $message .= "Binance-API-Call-ERROR ".$result_binance_create['code'].": ".$result_binance_create['msg']." ";

 

Hab den Bereich auch nochmals großzügig von Github kopiert mit dem gleichen Ergebnis. Muss das so sein?

Link zu diesem Kommentar
Auf anderen Seiten teilen

@bjew

also der Punkt ist weg, die Notiz bleibt.

Zwischenzeitlich gabs auch noch das Problem, dass XAMPP meine Internetverbindung lahmgelegt hat. Seiten haben nicht mehr geladen und der Bot ist auch nicht mehr durchgekommen. Als er aber dann mal wieder mit der API kommuniziert hat, hat er direkt Orders gespammt. 

Hab alles neu gestartet, jetzt funktioniert es wieder. Aber immer noch "Undefined index: code"

Bearbeitet von einfach_ben
Link zu diesem Kommentar
Auf anderen Seiten teilen

Mittlerweile hab ich mal alles von Github kopiert, mit dem gleichen Ergebnis. An einigen Abschnitten hatte sich nochmals ein Punkt verirrt, oder ist er doch gewollt?

Wobei ich mich aber selbst Frage, wo überhaupt der 'code' definiert wird. Ich geh nochmal den Workshop durch, learning by doing...ansonsten schreib ich mal @Jokin per Mail. Aktuell scheint er ja nicht aktiv zu sein.

Was da mit XAMPP los war oder ist, kann ich auch noch nicht genau sagen. Heute hat wieder alles funktioniert. Der Bot läuft aktuell auf einen ausgemusterten Win 8.1 Laptop...solltes es weiterhin Probleme geben, übertrage ich alles auf meinen Haupt-PC.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 17 Minuten schrieb bjew:

ach soooooo ...... Win 8.1  -- wolte dich ohnehin fragen, welche Versionen du hast, von XAMPP , PHP, MySQL .... da könnte auch noch was drin sein

XAMPP aktualisiere ich mal. Hab gerade festgestellt, dass wenn der Laptop aus dem Energiespar-Modus kommt und Apache und MySQL noch laufen, es dann Probleme mit der Internetverbindung gibt.

Bearbeitet von einfach_ben
Link zu diesem Kommentar
Auf anderen Seiten teilen

@bjew da hatte doch jemand das gleiche Problem und @Jokin hatte es auch schon beantwortet

Zitat

 

Hi,

ja - das ist mir vorhin auch aufgefallen 🙂

Diese "Notice"-Meldungen kann man ignorieren, auf Produktivsystemen sind die normalerweise unterdrückt.

Die Meldung besagt nur, dass auf eine Variable zugegriffen wurde, die nicht vorab deklariert wurde. Bei PHP muss man nicht so penibel Variablen deklarieren, daher ist das auch nur eine "Notice", nichtmal eine "Warning" und erst recht kein "Error" 🙂

Um diese "Notice" zu unterdrüccken, macht man Folgendes:

1. c:\xampp\php\php.ini bearbeiten
... nach "& ~E_NOTICE" suchen
... die Zeile "error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT" ändern in "error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT  & ~E_NOTICE"
... speichern
2. Apache stoppen und neuu starten

 

Wer lesen kann, dennoch vielen Dank für die Hilfe 🤘

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.