Zum Inhalt springen

Interessensabfrage: Wer möchte selber einen Tradingbot erstellen?


Jokin

Empfohlene Beiträge

vor 4 Stunden schrieb PrusaMK3:

Hast du eigentlich die in deinem Tutorial verwendete PHP-API komplett gelesen, um sicher zu sein, dass alles mit rechten Dingen zu geht? Ich gehe davon aus, dass du sie nicht selbst geschrieben hast, zumindest habe ich dazu keinen Hinweis gefunden... Und für wie sinnvoll hälst du es (wie viel Arbeitsersparnis ist es), eine solche fertige Lösung zu verwenden, im Vergleich dazu, eine entsprechende Funktionalität selbst zu entwickeln?

Ich antworte mal wie ich das sehe:
Ich hab damals mit Python angefangen und habe mir auch zuerst diverse fertige Clients bei github gesucht. Diese habe ich aber nicht bloß einfach verwendet, sondern auch versucht zu verstehen. Da es damals nicht für jeden esxhcnage den ich nutzen wollte solche fertigen clients gab, war das auch zwingend nötig es zu verstehen, da ich dadurch gezwungen war clients selbst zu schreiben. Die ersten Male war das noch oftmals copy paste und ein paar Daten auswechseln, was aber oftmals nicht geklappt hat (weil ich es noch nicht verstanden hatte), aber nach dem xten Mal hatte ich dann irgendwann den Bogen raus und kann nun problemlos solche clients für so ziemlich jeden exchange innerhalb von 30 minuten selbst schreiben (die meiste Zeit geht beim studieren der API Doku des exchanges drauf).
Ich persönlich nutze nun fast immer meine eigenen Skripte, anstelle von fertigen, selbst wenn es bereits fertige clients gibt, das liegt allerdings daran, dass diese für meinen Geschmack oftmals viel zuviel schnickschnack enthalten und ich dieselbe Funktionalität deutlich übersichtlicher in 1/10 soviel Code schreiben kann und durch eigene Entwicklung von Standards meine Funkitonen dann auch immer gleich heißen und immer gleich funktionieren (was bei diversen Clients von diversen unterschiedlichen authoren natürlich nicht gegeben ist).

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 5 Stunden schrieb PrusaMK3:

Hast du eigentlich die in deinem Tutorial verwendete PHP-API komplett gelesen, um sicher zu sein, dass alles mit rechten Dingen zu geht? Ich gehe davon aus, dass du sie nicht selbst geschrieben hast, zumindest habe ich dazu keinen Hinweis gefunden... Und für wie sinnvoll hälst du es (wie viel Arbeitsersparnis ist es), eine solche fertige Lösung zu verwenden, im Vergleich dazu, eine entsprechende Funktionalität selbst zu entwickeln?

Ergänzend zu Serpens ...

... ja, ich hab die API-PHP-Datei durchgelesen um zu verstehen was sie macht. Da die API-Schnittstelle schon fertig ist, halte ich es für unnötig sie nochmal selber zu entwickeln.

Auch die API-Dokumentation lese ich mir komplett durch um die Möglichkeiten zu kennen. 

Wenn mir etwas in der API-PHP-Datei fehlt, dann packe ich das einfach dazu oder passe es an.

Ich bin ja nicht bei der letzten Lektion stehen geblieben sondern habe noch weiter gemacht, für eine bestimmte Analysefunktion musste ich die API-PHP-Datei anpassen.

Dass die APISchnittstellen-Skripte, die im OpenSource-Code vorliegen keinen Schindluder treiben sollte man in der Tat nochmal querchecken. Das ist recht schnell erledigt.

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 5 Stunden schrieb Jokin:

Dass die APISchnittstellen-Skripte, die im OpenSource-Code vorliegen keinen Schindluder treiben sollte man in der Tat nochmal querchecken. Das ist recht schnell erledigt.

Was mich in meinem Fall gewundert hat, aber ich kann auch nicht sagen, ob es in irgendeiner Weise schädlich sein kann, dass im Quellcode auf eine JSON-Datei (bezeichnet als TradingRules) eines Github-Users verwiesen wird, der aber überhaupt keinen öffentlichen Content hat. Die Datei konnte ich aber nicht manuell öffnen, und im Kommentar-Bereich zum C#-Client steht auch, dass es aufgrund dieser Datei nicht funktioniert, es mit einem Umweg aber doch läuft... aber welchen Sinn diese Datei hat, kann ich noch nicht sagen.

Vielleicht sehe ich mir aber auch noch einen anderen C#-Client an, denn es gibt einen, der aktueller und besser bewertet ist. Die Dokumentation von Binance habe ich aber auch gelesen und könnte mir vorstellen, es ohne eine fertige C#-API zu versuchen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor einer Stunde schrieb PrusaMK3:

Was mich in meinem Fall gewundert hat, aber ich kann auch nicht sagen, ob es in irgendeiner Weise schädlich sein kann, dass im Quellcode auf eine JSON-Datei (bezeichnet als TradingRules) eines Github-Users verwiesen wird, der aber überhaupt keinen öffentlichen Content hat. Die Datei konnte ich aber nicht manuell öffnen, und im Kommentar-Bereich zum C#-Client steht auch, dass es aufgrund dieser Datei nicht funktioniert, es mit einem Umweg aber doch läuft... aber welchen Sinn diese Datei hat, kann ich noch nicht sagen.

Vielleicht sehe ich mir aber auch noch einen anderen C#-Client an, denn es gibt einen, der aktueller und besser bewertet ist. Die Dokumentation von Binance habe ich aber auch gelesen und könnte mir vorstellen, es ohne eine fertige C#-API zu versuchen.

merkwürdig - die Tradingrules werden direkt von Binance zur Verfügung gestellt.

C# ... warum gerade C#?

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 5 Stunden schrieb Jokin:

merkwürdig - die Tradingrules werden direkt von Binance zur Verfügung gestellt.

C# ... warum gerade C#? 

Derjenige, der die Lösung für das Problem im GitHub-Kommentar gegeben hat, schrieb dann auch, dass er die Tradingrules direkt von Binance verwendet hat. Ich habe keine Ahnung, wieso das standardmäßig anders ist, könnte man auf die Art Schindluder treiben?

 

C# habe ich deswegen gewählt, weil ich zufällig eben diesen Binance-Client gesehen hatte und weil es mir insgesamt eine Sprache zu sein scheint, die zu lernen lohnenswert sein kann (vom Hörensagen). In den letzten Jahren habe ich privat ansonsten nur mit Pascal programmiert (in der Lazarus-Entwicklungsumgebung), sowie ein wenig Python (auf Raspberry Pi und als Scriptsprache in einem 3d-Grafik-Programm), wobei ich damit nur die Grundlagen beherrsche. Nach meinen Recherchen schien es mir wesentlich schwieriger zu sein, das REST API-Thema mit Pascal anzugehen, daher war es relativ schnell klar, etwas Neues zu lernen.

Ungewöhnlicher als C# dürfte aber AutoIt gewesen sein, würde ich annehmen. Die Idee war sicherlich völlig verrückt 👩‍⚕️

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Stunden schrieb PrusaMK3:

Ich habe keine Ahnung, wieso das standardmäßig anders ist, könnte man auf die Art Schindluder treiben?

Wann immer ein Teil des Codes nicht prüfbar ist, kann dort schadenverursachender Code drin stehen.

Daher hab ich mein Projekt so angelegt, dass nicht nur der Code prüfbar ist, sondern dass er auch nachvollziehbar ist 🙂

vor 2 Stunden schrieb PrusaMK3:

sowie ein wenig Python 

Ich rate Dir bei Python zu bleiben und damit weiter zu machen.

Da ich selber mit PHP groß geworden bin und ich keinen Grund kenne eine Webanwendung mit Python zu schreiben, bleibe ich bei PHP. Der Bot, den ich hier geschrieben hab ist nur ein Teil meines Komplettpakets, da gehört auch ein Frontend dazu mit dem ich mein Komplettpaket steuere - für den Workshop hatte ich das nur massiv abgestrippt und einfach nochmal als Standalone-Software neu erstellt.

Mittlerweile gefällt mir das kleine Kerlchen ganz gut, dass ich es einfach so weiter laufen lasse 🙂

Da fällt mir ein, dass es nun Anfang März ist und ich mal eine Auswertung vornehmen wollte wo das Ganze steht.

Vorab stehen meine vier Bots nun bei

Bot 1: 0,59 ETH
... da bin ich im Januar mit 0,55 ETH gestartet, 3 Pairs und einfach laufen lassen - wenig Trades, da kaum handlungsfähig, denn die Kurse müssen um ca. 8% schwanken

Bot 2: 1,54 ETH
... etwas später bei 1,33 ETH gestartet, da hier auch die Ref-Boni reinlaufen ist das Ergebnis nicht aussagefähig.

Bot 3: 9,63 ETH
... mit 10 ETH und 6 fixen Pairs Ende Januar gestartet. Damals waren die 10 ETH ca. 1.160 USD wert und nun sind sie ca. 1290 USD. Insgesamt sind es weniger ETH als beim Start - das ist kein gutes Zeichen.
Daher habe ich nachverfolgt ob die Durchschnittskurse der 6 Coins stetig fallen. Und genau das ist auch passiert. Nicht jeder Trade ist positiv, aber die meisten sind positiv.

Bot 4: 19,23 ETH
... mit 20 ETH Anfang Februar gestartet. Hier habe ich den Bot erweitert und er sucht sich selbst die Coins raus, die die höchste Marktkapitalisierung haben. Ich will damit vermeiden, dass in einen sterbenden Coins die gesamte Balance reingepumpt wird.

Das Ranking ist relativ stabil, am unteren Ende jedoch ist immer mal Bewegung, sodass da auch im Verlust verkauft wird um einen Coin loszuwerden, der aus dem Ranking fällt. Ob das langfristig zielführend ist? Naja, rein theoretisch schützt diese Strategie vor einem Totalverlust. Dieser Schutz wird mit einem gewissen Preis bezahlt. Ob dieser Preis zu hoch ist? Mal schauen.

Insgesamt hat ETH massiv an Wert gewonnen, er lag im Januar bei unter 90 Euro und nun bei ca. 115 Euro, zwischenzeitlich bei über 140 Euro. Diese enormen Schwankungen sind für den Balancebot prima, denn da kann er gut hin und her traden - aber dadurch, dass die anderen Coins nicht so viel hinzugewonnen haben ist der ETH-Bestand derzeit niedriger als wenn der Bot lediglich geHODLt hätte.

Ich werde mir das nun einen weiteren Monat anschauen und danach entscheiden ob ich das Risiko niedrig genug einschätze um nochmal einen weiteren Bot mit noch mehr ETH aufzusetzen - weitere Optimierungen plane ich derzeit nicht - den Code werde ich dann bei github hochladen.
Die Online-Diagramm-Erstellung hab ich noch auf dem Plan ... ich hoffe, dass ich das bis dahin auch noch hinbekomme. 🙂

Somit Zwischenfazit: Läuft soweit gut, die Bestandsminderung sollte in einem Monat wieder aufgeholt sein - es sei denn ETH knallt nochmal so heftig nach oben ohne die anderen Coins mitzunehmen.

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 19 Minuten schrieb Theo Kojak:

Und ich rate Dir, was anderes als Python zu nehmen. Das Problem ist, dass viele die Libs in unterschiedlichen Versionen zusammengebastelt sind.

Oh, gute info 🙂

.... ich bleibe ja eh bei PHP, da Python für mich keinen wirklichen Mehrwert bringt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 13 Stunden schrieb Theo Kojak:

Und ich rate Dir, was anderes als Python zu nehmen. Das Problem ist, dass viele die Libs in unterschiedlichen Versionen zusammengebastelt sind. Wenn Dein System dann irgendwie dies und das braucht, sitzt Du irgendwann nur noch da und verbringst Deine Zeit damit, Python zum laufen zu bringen und nicht bei Deinem eigentlichen Task.

Kann ich bestätigen, habe damals mit der neusten Version 3.4.3 angefangen und mittleriweile sind sie bei 3.7, wobei viele Libs die ich verwenden will 3.5 oder gar 3.6 voraussetzen. Zwar wird von echten Pythonentwicklern gesagt, dass das alles kein Problem ist, einfach updaten und durchlesen, obs mit der Versionsänderung auch Codeanpassungen nötig sind, aber wenn man sich da nicht wirklich gut auskennt, kann man das selbst kaum beurteilen.
Zusätzlich gibts ja noch hunderte Abwandlungen "Anaconda" und sowas. Wenn man hier nicht weiß was man tut und einfach mal mehrere solcher Abwandlungen installiert, zerschiessen die sich gegenseitig, sodass garnichts mehr funktioniert :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 23 Stunden schrieb Jokin:

C# ... warum gerade C#?

Denke man programmiert gern in der Sprache, die man beherrscht, vor allem wenn man schnell zu Ergebnissen kommen will. C# habe ich vor 10 Jahren beruflich lernen müssen und nach anfänglichen Schwierigkeiten muss ich inzwischen sagen, dass C# schon sehr brauchbar ist. Objektorientiert, typsicher und man kann mit recht wenig Code viel erreichen.

Leider braucht man zum Entwickeln auch viel drumherum, das ganze DotNet-Gedöns, MS Visual Studio, für's Web den IIS Server, am besten noch MS SQL Server als DB... eigentlich ist das auch alles zu viel groß für kleine Anwendungen wie einen Bot, der nur alle Stunde mal ein paar Daten abfragt und rausschickt. Wenn man aber eine gößere Anwendung hat, z.B. mit mehreren solcher Bots, die vllt. noch miteinander kommunizieren sollen, dann ist C# sicher nicht die schlechteste Wahl.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor einer Stunde schrieb Theo Kojak:

Na ja, das fängt schon damit an, ob Du Client oder Serverseitig Deine Trades ausführst. beides hat seine Vor-und Nachteile. Wichtig ist eine Ausführungswahrscheinlichkeit von 1, das ist mit PHP auf Dauer nicht zu machen. Ich dachte auch mal, dass das alles egal ist.

Theo

Hä?

Dir ist klar, dass es hier um einen Bot geht, der jede Stunde schaut ob seine Ausbalancierung noch passt? Und dass darauf hin einfach nur mal Order gesetzt werden bei denen es vollkommen egal ist ob diese erfüllt werden oder nicht?

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 22 Stunden schrieb Jokin:

Ich rate Dir bei Python zu bleiben und damit weiter zu machen.

Anscheinend gibt es hier sehr viele unterschiedliche Meinungen dazu, welche Programmiersprache sinnvoll ist und welche nicht. Was mich aber interessieren würde ist, warum du mir (indirekt) von C# abrätst? Wie gesagt ist mein Python-Wissen nur sehr gering, daher sehe ich das nicht als großen Vorteil, und für C# habe ich zufällig relativ viele Tutorials und ähnliches gefunden. Wie gesagt habe ich zu C# auch schon ein halbes Einsteiger-Buch durchgearbeitet, damit bin ich ungefähr auf dem selben Niveau wie bei Python. Außerdem hatte ich in meiner Jugend ein halbes C++ -Buch gelesen, sowie in der Uni einen wenig-stündigen C/C++ -Anfänger-Kurs belegt (was nichts mit meinem Studienfach zu tun hatte), wobei ich nicht sagen kann, ob das Auswirkungen auf meine C#-Fähigkeiten hat.

Ich könnte mir vorstellen, dass du andere gute Gründe dafür hast, Python zu empfehlen, aber mit meinem eher geringem Wissen fällt es mir sehr schwer, die Vor- und Nachteile verschiedener Sprachen einzuschätzen. Auch den Hinweis auf Matlab finde ich interessant, ( @Theo Kojak ), kann mir aber natürlich überhaupt nicht vorstellen, wie sich die Wahl dieser Lösung von den anderen genannten unterscheiden würde, aber es würde sicherlich auch zu weit gehen, das zu erläutern. Verstehe ich es grundsätzlich richtig, dass du Matlab für wesentlich einfacher zu erlernen hälst, und dass ein damit erstellter Bot nur mit Windows 10 funktionieren kann?

Ich hatte übrigens vor, den Bot auf einem sparsamen Windows 10-Coin-Laptop laufen zu lassen, die Entwicklungsarbeit aber auf meinem Windows 7-Hauptrechner durchzuführen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 36 Minuten schrieb PrusaMK3:

Was mich aber interessieren würde ist, warum du mir (indirekt) von C# abrätst?

Falsch verstanden - es gibt nicht die eine super duper Programmiersprache mit der man sämtliche Anwendungsfälle erschlagen kann.

C# braucht halt eine Entwicklungsumgebung und die ist nunmal bei Windows zu Hause.

Python, PHP und NodeJS braucht nur ein Texteditor, der am Besten noch etwas Syntaxhighlighting kann. Sonst nix.

Dazu kommt, dass für eine Webanwendunge ein Linux weit besser geeignet ist als ein Windows. Ich hab mir mit Windows2000 damals die Finger gebrochen den Server im Internet stabil zu bekommen, damals hatte ich ColdFusion benutzt, was wir auch in der Firma im Intranet auf Windowsservern laufen ließen - im Intranet ist das aber weit weniger riskant.

Ich will ja auch nichts kompilieren, sondern Software schnell debuggen und können und schnell etwas anpassen können.

Weiterhin will ich nur kleine Projekte umsetzen bei denen es mir um ein Webfrontend geht, welches in jedem Browser lauffähig ist, also serverseitig die Ausgaben generiert und Eingaben verarbeitet.
Daten halte ich grundsätzlich in Datenbanken.

Und für die Kombination "statisches Frontend im Webbrowser" + "Datenbank" + "Internet-Server-Bankend" ist Linux halt am Sinnvollsten.

Weiterhin bin ich kein Buchleser. Ich lese nur das, was ich brauche - für PHP ist es super einfach im php-online-manual alle Funktionen nachzulesen, die Datenbankverbindung ist schnell erstellt, das Datenbankfrontend ist mit phpmyadmin auch schon da. Man braucht keine wilden Module zu importieren und es ist schnell erlernbar.

Heutzutage geht der Trend eher zu Python und zu NodeJS, letzteres um dynamische Frontends noch besser anzubinden.

Will man jedoch Desktop-Anwendungen programmieren oder größere Projekte aufziehen, kann C# schon Sinn machen ... muss man halt selber wissen.

Ich würde aber auch davon abraten einen Windows-Computer dauerhaft laufen zu lassen, das Updateverhalten von Windows lässt einfach keinen "einfachen" Serverbetrieb zu. Hier empfehle ich eher einen RaspberryPi, der ist super einfach und super günstig und läuft vollkommen stabil.

 

  • Like 2
Link zu diesem Kommentar
Auf anderen Seiten teilen

Okay, dann ist mir das jetzt klar. Ich denke, dass ich trotzdem erstmal so weitermachen werde, einfach weil ich meine größten Defizite in den Grundlagen sehe, also z.B. dass ich erstmal exakt durchblicken muss, wie das mit REST API und so konkret funktioniert, dafür werde ich erstmal den fertigen C#-Clienten analysieren. Angenommen ich verstehe das irgendwann komplett wird es sicherlich nicht allzu schwer sein, auf ein anderes Betriebssystem oder Programmiersprache umzusteigen (wie es einige andere hier auch beschrieben hatten).

Dass Windows 10 häufig Updated ist natürlich nicht schön, das passiert aber soweit ich weiß nur wenn man den PC herunterfährt bzw. startet. Was mir an C# sehr gut gefällt ist die Entwicklungsumgebung (Visual Studio 2017), die einen ziemlich gut unterstützt, auf Fehler hinweist und insgesamt sehr übersichtlich ist - ich weiß nicht ob das bei Python auch so ist. Mit Notepad++ ist das nach meinen Erfahrungen nicht zu vergleichen.

Bearbeitet von PrusaMK3
Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 20.1.2019 um 13:32 schrieb Jokin:

Nun läuft dieser "Workshop"-Bot ca. 3 Tage und einfach mal ein erster Wasserstand was aus dem Bot für diejenigen wurde, die die Lektionen mit durchgearbeitet hatten und den Bot mit 10 ETH an die Arbeit schickten:

16.01.2019 - Start des BalanceBots:
10 ETH @ 123,33 USD (IST: unendlich % des Gesamt-Coinwertes, SOLL: 25%)
0 NEO @ 7,76 USD (IST: 0%, SOLL: 19%)
0 XLM @ 0,107185  USD (IST: 0%, SOLL: 18%)
0 IOTA @ 0,304484  USD (IST: 0%, SOLL: 17%)
0 BNB @ 6,12 USD (IST: 0%, SOLL: 16%)
0 XRP @ 0,327879 USD  (IST: 0%, SOLL: 15%)
0 ADA @ 0,044706 USD (IST: 0%, SOLL: 14%)
Gesamt-Portfoliowert: 10 ETH, also ca. 1233 USD (Kurse aus Coinmarketcap)

Minimal-Ziel muss es sein am Jahresende doppelt so viel Gewinn zu machen wie durch das reine HODL der 10 ETH entstanden wäre damit die Spekulationssteuer bezahlt werden kann.

Zwischenzeitlich arbeitet er an der Ausbalancierung, am Code habe ich nichts geändert und auch an den Einstellungen nichts.

20.01.2019 - 4 Tage nach Start des BalanceBots:
7,21 ETH @ 121,13 USD (IST inkl. openOrder: 211% des Gesamt-Coinwertes, SOLL: 25%)
8,32 NEO @ 7,68 USD (IST inkl. openOrder: 16,7%, SOLL: 19%)
401 XLM @ 0,1056  USD (IST inkl. openOrder: 15,1%, SOLL: 18%)
170 IOTA @ 0,3056  USD (IST inkl. openOrder: 13,7%, SOLL: 17%)
3,2 BNB @ 6,53 USD (IST inkl. openOrder: 10,0%, SOLL: 16%)
270 XRP @ 0,3248 USD  (IST inkl. openOrder: 25,4%, SOLL: 15%)
1,65 tsd. ADA @ 0,043 USD (IST inkl. openOrder: 19,1%, SOLL: 14%)
Gesamt-Portfoliowert: 10,02 ETH, also ca. 1213 USD (Kurse aus Coinmarketcap)

... nur leichte Kursveränderungen - während des Aufbaus ganz gut.
Schön zu sehen, dass ADA und XRP deutlich übergewichtet sind und weit über das SOLL hinausgeschossen sind. Das liegt daran, dass die Basiswährung ETH noch wesentlich weiter weg vom SOLL-Wert ist und der Bot versucht auch ETH möglichst schnell ins Ziel zu bringen. Im Idealfall ist jeder Coin und die Basiswährung gleich weit entfernt vom SOLL-Wert.

Pro Tag schafft der Bot also ca. 1 ETH auf die anderen Coins zu verteilen. Bei den gesetzten "25%" müsste es darauf hinauslaufen, dass 2 ETH an der Seitenlinie bleiben während 8 ETH auf die Coins verteilt sind.
Also vermutlich noch ca. 5 weitere Tage bis sich ein erstes Gleichgewicht eingestellt hat.

Ich poste dann auch mal das Diagramm auf dem man gut sehen kann wie sich die Bestände entwickelt haben. Ab dem ausbalancierten Zustand würde ich alle paar Tage mal einen Trade erwarten falls mal ein Coin gegenüber den anderen im Kurs stark abweicht.

Ich will das mal updaten :-)

06.03.2019 - ca. 50 Tage nach Start des BalanceBots:
1,93 ETH @ 137 USD
23,4 NEO @ 8,73 USD
2264 XLM @ 0,00850 USD
648 IOTA @ 0,277 USD
12,7 BNB @ 13,4 USD
511 XRP @ 0,313 USD 
3505 ADA @ 0,0424 USD
Gesamt-Portfoliowert: 9,59 ETH, also ca. 1313 USD (Kurse aus Coinmarketcap)

Wie ist das nun zu interpretieren?

Auf einen Blick sieht das mies aus ... aus 10 ETH wurden 9,59 ETH, also mal eben 0,41 ETH verloren. Oder anders ausgedrückt: 4% Verlust.
Hier muss also Ursachenforschung betrieben werden: Warum ist das so und wie lässt sich das vermeiden?

Gerade heute sehe ich auf Coinmarketcap eine sehr prägnante Darstellung:

Unbenannt.thumb.png.894f85eb54c2de3e093fd70f5a295d43.png

Ich habe die Währung auf "ETH" umgestellt, denn der BalanceBot tradet grundsätzlich gegen ETH.

Die einzigen beiden Währungen, die in den TOP14 gestiegen sind, sind EOS und LTC, der Rest ist gefallen. Besonderes Augenmerk sollte USDT gelten: Der USDT ist um -6,19% gefallen ... natürlich ist ein USDT auch weiterhin ein USD wert und somit bedeutet dies nichts anderes als dass der Kurs ETH/USD in den letzten 24 Stunden um 6,19% gestiegen ist.

Alle anderen Coins, die weniger als -6,19% gefallen sind, sind somit auch gegenüber dem USDT gestiegen.

Das bedeutet, dass große Kurssprünge bei ETH zu heftigen Ausschlägen im Portfoliowert führen, wenn die anderen Währungen nicht hinterherkommen.

Und genau das zeigt sich auch im Gesamtverlauf des Bots - hier inkl. der Hochlaufphase zu Beginn:

Unbenannt2.png.fc76781ad171caff02fa0e999cd05265.png

... der Portfoliowert sackte auf ca. 8,8 ETH ab als ETH einen enormen Kurssprung nach oben auf ca. 164 USD machte, das sind 20% mehr als heute - somit vollkommen logisch, dass es dann auch mal um über 10% im Portfoliowert nach unten gehen kann.

Wie lässt sich das nun aber vermeiden?

Und ist das überhaupt etwas, was vermieden werden sollte?

Ich zoome die Darstellung mal auf den Bereich ab dem 24.02. - da fallen ein paar Dinge auf.

Unbenannt3.png.736dcd326ce4eb901389e3f98ac770c2.png

 

1: Zu erkennen ist bei der NEO-Linie, dass die nach oben ausbricht während alle anderen nicht ausbrechen.
Am 24.02. schoss NEO auf über 10 USD rauf, der Bot verkaufte NEO und kaufte irgendwas anderes (bin ich grad zu faul zum Suchen)
Dadurch ergab sich ein nachhaltiger Portfolio-Wertzuwachs, denn NEO fiel danach wieder auf seinen vorherigen Wert.
Am 25.02. sieht man wie alle Kurse nach oben schießen, das ist ein Zeichen dafür, dass ETH nach unten gegangen ist. (auch gut bei Coinmarketcap nachzurecherchieren)

2: Auch hier gehen alle Kurse nach oben, das ist der ETH-Dip vom 27.02. - der war nur ganz kurz und nicht nachhaltig.

3: Am 4.3. ist XLM nach oben ausgebrochen und wurde dort zu einem Teil abverkauft und in einen anderen Coin umgeschichtet. Schön zu sehen wie der Gesamtportfoliowert nach oben ging und dies auch nachhaltig bestehen bleibt.

4: Und am 05.03. hat's dann BNB nach oben katapultiert - auch hier wurde ein Teil verkauft und umgeschichtet.

 

Fazit: Bot läuft wie geplant.

Will man nun eine Rendite ausrechnen, wird's wirklich schwer.

Gegenüber dem HODler, der mit 10 ETH startete und immernoch 10 ETH besitzt, habe ich nach 50 Tagen einen Verlust von 4% eingefahren. (ca. -2% pro Monat)
Gegenüber dem Nichtstuer, der zu Beginn 1213 USD in der Tasche hatte, habe ich nun 8% mehr in der Tasche. (ca. +4% pro Monat)

Wirklich spannend wird es erst, wenn der ETH-Kurs wieder auf 121,30 USD runter kommt, dann hat der HODLer keine Rendite und genauso viel wie der Nichtstuer, der seine 1213 USD immernoch an der Seitenlinie geparkt hat.

Wird der BalanceBot dann im Plus sein? (er müsste eigentlich, da er Kursschwankungen zu seinem Vorteil ausnutzt)

... ich werde das also weiter verfolgen und Euch gern auf dem Laufenden halten.

PS: Der 20-ETH-Bot steht derzeit bei ca. 19,3 ETH - also ebenfalls im Minus. Dieser Bot nutzt nicht statisch ganz bestimmte Coins sondern die jeweils bei Coinmarketcap ganz oben gelisteten - wer nach unten wandert, fliegt raus und wer hoch wandert, der kommt rein.

 

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, der Theo hat vollkommen recht.

Einstiegspunkte, Haltezeiten, Risiko und Characteristica werden nicht berücksichtigt.

Es geht ja auch lediglich um das automatisierte Ausbalancieren des eigenen Portfolios.

Dennoch muss man ein Auge drauf haben um sterbende Coins rechtzeitig aus dem Portfolio zu entfernen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 54 Minuten schrieb Theo Kojak:

ich denke, das der BalanceBot auf Dauer so nicht laufen wird, auch wenn man so schöne Bilder macht.

Liest du auch seine Beiträge? Er hat nun wirklich oft genug betont das sein Bot nicht profitabel sein muss. Es ist nur ein Beispielbot und dient nur zur Vorstellung wie man so was programmieren kann.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 26 Minuten schrieb Theo Kojak:

P.S. Wer sagt mir eigentlich, dass Du nicht der zweite Account von Jokin bist, wenn ich mir deine Kommentare so ansehe ? Bei dem Platincoin Post hat er das doch auch gemacht oder ? Der muss Zeit haben

Wiso der zweite? Alle Accounts außer deinem sind hier von Jokin.

Bearbeitet von MixMax
  • Love it 1
  • Haha 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 9 Minuten schrieb MixMax:

Wiso der zweite? Alle Accounts außer deinem sind hier von Jokin.

Da bin ich mir nicht sicher. Jokin hinterfragt ja alles sehr gerne, daher bin ich der Meinung hinter dem Account von Theo Kojak steckt niemand anderes als Jokin selber.

  • Love it 1
  • Haha 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, das mit dem Backtest ist eine sehr gute Idee!

Das werde ich bei Gelegenheit mal machen.

Und ja, Du hast auch damit recht, dass jedes System in gewissen Perioden nicht funktioniert. Die Randbedingungen des Systemversagens hatte ich ja schon definiert:

Verlustrisiko in Höhe bis zu Seitenlinien-Prozent-Anteil:
- Coindelisting
- Crash eines einzelnen Coins
- Crash aller Coins

Ebenso gibt es Risiken der verpassten Chancen:
- Coin-to-da-moon
- Basis-Währung-to-da-moon

Und dann gibt es noch die Profit-Aussichts-Idealbedingungen:
- Basiswährungskurs bleibt gleich (StableCoin ohne Kursrisiko wäre optimal)
- Nur zwei Coins werden ausbalanciert
- Es wird immer das maximal verfügbare Kapital eingesetzt
- Coin-Kurse bewegen sich stündlich zwischen dem Vortagesminimum und dem Vortagesmaximum hin und her.
- die Kurse der beiden Coins bewegen sich exakt gegenläufig - ist der eine am Maximum, dann muss der andere am Minimum sein

Da es diese Idealbedingungen nicht gibt, müssen risikosenkende Maßnahmen ergriffen werden:
- nur 0,1% des Kapitals wird je Stunde und je Coin in eine Order gesteckt
- es werden mehr als 2 Coins ausbalanciert
- es werden nur TOP-Coins aufgenommen mit geringem Delisting-Risiko

Leider lässt sich USDT nicht nutzen, wenn das Budget zu gering ist - ich überlege gerade noch einen USDT-BalanceBot mit deutlich mehr Kapital zu starten.

Wenn ich zu 100% auf mein Konzept vertraue, dann wäre das die logische Konsequenz.
Da ich mein Vermögen jedoch im Trading derzeit mit mehr Profit (und deutlich höherem Risiko) laufen habe, tue ich mich schwer einen größeren Anteil aus dem Trading dem BalanceBot zu überlassen.
Dennoch ist mein Plan spätestens Anfang April meine März-Trading-Gewinne in einen weiteren Balance-Bot zu schieben, der dann USDT als Basiswährung haben wird - dementsprechend müssen da irgendwas ab 5.000 Euro oder so reingeschoben werden.

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 18 Minuten schrieb Natna:

Da bin ich mir nicht sicher. Jokin hinterfragt ja alles sehr gerne, daher bin ich der Meinung hinter dem Account von Theo Kojak steckt niemand anderes als Jokin selber. 

Jetzt wird es unheimlich.

  • Haha 2
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor einer Stunde schrieb Theo Kojak:

Ja sicher, und die Systemarchitekur ist Schrott und wird seine Tradingergebnisse bis zu 50% beeinflussen. Das ist Dir auch klar ? Verstehst Du das ?

Ja, Du hast in dem Punkt absolut recht!

Die "Systemarchitektur" besteht aus einem PHP-Skript ... + bisschen Gedöns zum Auswerten und eben die API. Das ist nun wirklich keine "Systemarchitektur". Und hat dementsprechend auch nicht den Anspruch eine zu sein.

vor einer Stunde schrieb Theo Kojak:

P.S. Wer sagt mir eigentlich, dass Du nicht der zweite Account von Jokin bist, wenn ich mir deine Kommentare so ansehe ? Bei dem Platincoin Post hat er das doch auch gemacht oder ? Der muss Zeit haben.

Ja, Du hast natürlich auch hier vollkommen recht.

Ich hab keine Ahnung mehr wie ich den genannt hatte. Hilfst Du mir? Danke.

Mit dem Account MixMax hab ich mir aber auch schon Wortgefechte geliefert - da musste ich so tun als ob ich alles über Verschlüsselung und so weiß. Ich denke, ich wirkte auch recht kompetent. Zumindest mein Account "Jokin" hat sich dem Fachwissen des Accounts "MixMax" geschlagen gegeben - ich denke, das war echt eine 1a-Show ... gell, MixMax?

vor 34 Minuten schrieb Natna:

Da bin ich mir nicht sicher. Jokin hinterfragt ja alles sehr gerne, daher bin ich der Meinung hinter dem Account von Theo Kojak steckt niemand anderes als Jokin selber.

Du ahnst nicht wie anstrengend das ist mit zwei Accounts Selbstgespräche zu führen.

Und dann musst Du ja auch noch darauf achten, dass Du in einem Account nie die Umlaute benutzt sondern so tust als würdest Du auf einer ausländischen Tastatur tippen.
Und als "Jokin" darf ich auch nicht der Matlab-Fan sein ... würde das jemand in der Foren-Suche eintippen, käme er ja direkt auf meine anderen Accounts, die ich so über die Jahre hatte.

Das ist Stress pur! Vor allem als "Jokin" muss ich immer diese verkackten "..." schreiben damit das nicht auffällt.

Aber hey, so lohnt sich der Aufwand wenigstens - hier ist Leben in der Bude :D

PS: Wer nun wirklich mal die Analyse startet, wird feststellen, dass ich bis Mitte 2018 auch die Umlaute als ae, ue und oe sowie ss geschrieben hatte - das lag daran, dass ich zwei Computer hatte, einen mit DE-Tastatur und einen mit EN-Tastatur. Daher fällt mir das auch auf, wenn jemand "vermutlich" im Ausland sitzt und sowohl DE- als auch EN-Tastaturen benutzt.
 

 

Bearbeitet von Jokin
  • Haha 2
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.