Zum Inhalt springen

Backtesting mit backtrader (Superalgos?)


Empfohlene Beiträge

So, jetzt muss ich mich doch mal mit Backtesting meiner Bot-Strategien befassen. Dafür habe ich mir backtrader auf github ausgesucht.

Diverse Problemchen lauern da auf mich. Vor allem habe ich keine Ahnung von Python. C, C++, javascript, Perl u.ä. kenne ich ganz gut, aber Python scheint in diesem Bereich unausweichlich. Deshalb ist das vielleicht ein guter Grund, mich damit auseinander zu setzen.

Der backtrader scheint recht verbreitet zu sein. Es gibt eine große Community und jede Menge Doku. Oder hat jemand noch 'nen anderen Tipp für mich?

Während meiner Recherche bin ich noch auf das Projekt Superalgos auf github gestoßen, konnte damit aber nicht so richtig was anfangen. Kennt jemand das Projekt?

Außerdem habe ich noch keine Idee, wie ich an die historischen Daten komme oder ob eventuell das reicht, was die Börsen bereithalten. Aber das ergibt sich hoffentlich.

 

Grund ist, dass ich aktuell verschiedene Strategien automatisch Trade. Eine davon basiert auf dem RSI und läuft einigermaßen profitabel, solange die Preise steigen oder im richtigen Bereich seitwärts laufen. Da lässt sich aber bestimmt noch einiges optimieren.

Meine zweite Strategie sucht nach Breakouts. An manchen Tagen wirft die auch ganz gut was ab. Leider macht die aber an vielen anderen Tagen noch mehr Verluste. Dafür suche ich nach Möglichkeiten, das Minus zu reduzieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

So funktioniert das leider nicht.

1. Nicht jede Strategie kann man im Crypto backtesten. Das hat zu einem mit der Granularität, der Qualität der Daten oder einfach mit der Kompetenz des Users zu tun.

2. Es gibt sehr unterschiedliche Formen einer Strategie. Manche kann man einfach mit Tradestation oder MT5 nachbauen, Daten reinladen und sich anschauen lassen, wie die Trades liegen. Ist der einfachste Weg.

3. Backtest bedeutet immer, man schaut sich vergangene Daten an, ob das in der Zukunft auch so funktioniert ist reine Spekulation.

4. Ja, Python ist der defacto standart, da wirst Du nicht dsrum rum kommen. Aber wenn man C kann, dann ist Python in wenigen Tagen gelernt. Es gitb unzählige Projekte und Indikatoren, die man mit Python zur Verfügunh hat.

5. Anstatt Dich mit dem Timing der Trades zu bschäftigen, solltest Du Dich mit dem Money Management beschäftigen, das ist 99% des Erfolgs.

6. Ich habe den RSI verbessert, in dem ich die FischerTransform genommen habe, das gibt wesentlich bessere Signale als der normale RSI.

Preisdaten kann man sich sehr einfach mit Strategiequant runterladen, wenn M1 ausreicht. Ich persöhnlich mache alle meine Strategien so, dass ich kein Backtest mehr brauche, in dem ich einfach einen Backloop einbaue, der das Money Management steuert.

  • Thanks 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 13 Minuten schrieb Chantal Krüger:

Money Management

Du meinst Money Management wie hier beschrieben: https://medium.com/4c-trading/the-3-step-approach-to-crypto-money-management-and-risk-control-eb784b68fad0?

vor 18 Minuten schrieb Chantal Krüger:

6. Ich habe den RSI verbessert, in dem ich die FischerTransform genommen habe, das gibt wesentlich bessere Signale als der normale RSI.

Alles klar, sehe ich mir mal an.

Ich nutze auch nicht nur den RSI, sondern zusätzlich den StochasticRSI, um den Scheitelpunkt zu erwischen. Wie gesagt, das funktioniert schon recht gut. Vergleichen würde ich die Ergebnisse gerne auf verschiedenen Timeframes. Aktuell nutze ich 30 oder 15 Minuten.

Dafür erhoffe ich mir Anhaltspunkte durch das Backtesting.

Zusätzlich kaufe und verkaufe ich in mehreren Chunks. Dadurch verhält sich das ein wenig wie ein Grid Bot. Auch dahingehend würde ich meine Strategie gerne mit einem Grid Bot vergleichen. Keine Ahnung, ob das so einfach möglich ist.

Die Breakout-Strategie ist eher eine Spielerei. Könnte mir vorstellen, dass die nie profitabel werden wird. Trotzdem möchte ich auch da testen, was passiert, wenn ich andere Intervalle nutze. Aktuell verwende ich da 2-Minuten-Basis bis maximal 1h und dann mit Trailing Stop Loss. Mein Problem ist, dass manche Coins direkt ins Minus gehen und ich dadurch keine Chance habe, überhaupt einen Gewinn zu machen. Vielleicht helfen mir da zusätzliche Indikatoren weiter. Da möchte ich einiges testen.

vor 35 Minuten schrieb Chantal Krüger:

dass ich kein Backtest mehr brauche, in dem ich einfach einen Backloop einbaue, der das Money Management steuert.

Das sagt mir so nichts 🤷‍♀️

Ansehen werde ich mir das Backtesting auf jeden Fall. Falls es mich nicht weiterbringt, kann ich es ja wieder sein lassen.

 

Strategiequant sagt mir bis jetzt auch noch nichts. Danke für den Tipp.

Ich hatte bis jetzt Polygon.io gefunden, das kostet aber. Tradingview hat ja auch historische Candlesticks, oder? Kann man die API eigentlich kostenlos nutzen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

1. Es gibt unzählige Seiten, die das Thema gut beschreiben, auch Videos auf Youtube.

2. Die Indikatoren sind ziemlich gleich, da wirst Du nicht viele neue Informationen bekommen. Es ist wissenschaftlich bewiesen, dass Multi Frame Trading bis zu 15% bessere Trades bringt. Jedoch musst Du eine Platform haben, die das kann, z.B. Tradestation. Da ist nicht ganz so einfach.

3. Mit einem Grid Bot, das wird schwierig, weil Du dann die Order Bücher brauchst, um die Präzision zu bekommen.

4. Breakout Strategien sind mein Favourite, weil man da schnell sehr gute Proifte machen kann. Nein, die Indikatoren werden es nicht bringen, Du machst grundsätzliche Fehler. Das auf Multi Frame zu testen ist auch sehr schwierig, weil die Synchronisation der Granularität immer ein Problem darstellt. 

5. Backtests sind immer Forward tests, bedeutet, Du läufst durch die Preisdaten und generierst Kauf Signale, ohne die einzelnen Markt Perioden zu betrachten. Das wird so nix mit Deinem Ansatz.

Damit kannst Du sehr viele Daten runterladen, auch Multiframe.

https://strategyquant.com/quantdatamanager/

 

  • Thanks 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Beizeiten werde ich berichten, wie es läuft.

Nächstes Ziel, meinen aktuellen RSI-Bot im backtrader nachbauen.

Btw. der hat heute nach und nach alle BTC für durchschnittlich 43.460$ verkauft. Bei RSI < 35 wird zurückgekauft. Wenn es gut läuft, ist der Preis dann unter dem Verkaufspreis.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 7.2.2022 um 19:53 schrieb Maaz:

Beizeiten werde ich berichten, wie es läuft.

Nächstes Ziel, meinen aktuellen RSI-Bot im backtrader nachbauen.

Btw. der hat heute nach und nach alle BTC für durchschnittlich 43.460$ verkauft. Bei RSI < 35 wird zurückgekauft. Wenn es gut läuft, ist der Preis dann unter dem Verkaufspreis.

 

Um das hier abzuschließen... Im Laufe der letzten Tage hat mein Bot alle SATs zurückgekauft, für durchschnittlich 43170$. Leider nur 0.65% weniger als der Verkaufspreis.

Bei ETH lief es etwas besser, die haben sich in den letzten Tagen um 2.7% vermehrt. Andere Coins trade ich mit den RSI-Bots nicht.

Mit dem backtrader habe ich mich nicht weiter beschäftigt, da ich das Projekt freqtrade auf github entdeckt habe. Der Bot erstellt zwar nicht so schöne Plots, bietet ansonsten aber einiges an Mehrwert. Auch viele der Features, die mir an meinem selbst erstellten Bot wichtig sind, plus einen sehr einfach durchzuführenden Backtest-Modus, der mir fehlt.

Meine bisherige "Strategie" konnte ich da drin schon ganz gut abbilden. Allerdings noch auf meinem Arbeitsplatz-PC. Aktuell wandert die Installation auf einen Cloudrechner, dort soll diese dann ein paar Tage im dryrun-Modus laufen, also ohne wirklich zu kaufen oder zu verkaufen.

Sofern ich zufrieden bin, erstelle ich im Anschluss einen Erfahrungsbericht.

  • Like 3
Link zu diesem Kommentar
Auf anderen Seiten teilen

HalloAlleZusammen,

die Bots bedienen, so wie ich es gehen habe, Kryptobroker.

Da jetzt immer mehr dezentrale Handelsplätze entstehen mit dezidierten Bit/Ask-Kursen und der Fähigkeit Limit/Stop-Orders zu platzieren, die Frage, ob jemand eine Übersicht bestehender Bot für diesen Bereich hat.

 

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.