Jump to content
Jokin

Interessensabfrage: Wer möchte selber einen Tradingbot erstellen?

Empfohlene Beiträge

vor 56 Minuten schrieb PeWi:

Wieso kommst du mit so 'nem abstrusen Vorschlag? Nur damit du "Abspeichern in Textdateien" als unsinnig abtun kannst? :(

Nein sicher nicht deswegen. Ich wollte nur klar machen, dass man eine Datenstruktur beim Abspeichern braucht, sonst bekommt man das Zeug nicht mehr vernünftig zurück.

Zitat

Etwas realistischer würde man das z.B. in einer CSV-Datei pro Coin speichern. Da passen dann jeweils ganz viele Kurse rein und brauchen vermutlich auch kaum mehr Platz als deine DB.

CSV ist ja auch schon quasi ein Datenbankformat, also eins mit Struktur. Und wohin das führt, wenn man CSV im Code zusammenbastelt, sehen wir ja in diesem PHP-Bot. Ich hab' wirklich schier die Krise bekommen beim Auseinanderklamüsern dieser ellenlangen CSV-Strings. Klar, wenn man den Code einfach nur kopieren muss, ist das erst mal egal. Aber wenn man so programmieren muss bzw. das in eine andere Sprache übersetzen will... ojeoje.

Dafür gibt es eben Datenbanken. Mei Bot benutzt SQLite, was praktisch auch nur eine Datei ist, die sogar automatisch angelegt werden kann mitsamt den Tabellen drin. Alle anderen Datenbanken muss man manuell anlegen und Rechte vergeben, bevor man Tabellen anlegen kann.

Jedenfalls spart man sich mit DB auch das CSV-Gedöns. Die Frage war ja ursprünglich, wozu man überhaupt eine DB braucht. Und "einfach" nur auf der Platte abspeichern ist eben nicht wirklich einfacher, im Gegenteil.

bearbeitet von Herr Coiner

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Ich frag mich gerade wieso man versucht Daten längere Zeit im Arbeitsspeicher zu halten oder gar ins Dateisystem zu schreiben. Und ja, ich hab das auch notdürftig gemacht um bei einer Anwendung um eine Datenbank drumrum zu kommen - aber hier bei diesem BalanceBot-Projekt hatte ich ganz bewusst die Datenbank nicht rausgeschmissen, sondern drin gelassen 🙂

Im nächsten Schritt will ich alle erfolgreichen Trades und alle jemals gesetzten Order in die Datenbank schreiben um so auswerten zu können ob die Order wirklich sinnhaftig gesetzt worden sind.

Dazu brauche ich den Verlauf der 24h-Min/Max-Wert sowie den jeweiligen Kurs, die 1h-OHLC-Werte dazu, die gesetzten BUY und SELL-Order, das Ordervolumen und die erfolgreichen Trades und deren Volumen. Daraus ergibt sich eine interessante Grafik, der dann der der Durchschnitts-Einkaufspreis hinzugefügt wird.

Ziel der Übung ist es das Ganze so zu optimieren, dass der Durchschnittseinkaufspreis möglichst zügig in den negativen Bereich wechselt oder zumindest schneller sinkt als der Kurs des Coins.

Denn sämtliche Strategien haben einen Erfolgsfaktor gemeinsam: Der Durchschnitts-Einkaufspreis wechselt in den negativen Bereich ... tut er das "in der Unendlichkeit", dann ist die Strategie Mist. Egal welche Strategie.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
3 hours ago, Herr Coiner said:

Und wohin das führt, wenn man CSV im Code zusammenbastelt

Vernünftige Sprachen unterstützen das in ihrer Laufzeitumgebung, dann ist das ähnlich harmlos wie DB-Handling.

3 hours ago, Herr Coiner said:

Ich wollte nur klar machen, dass man eine Datenstruktur beim Abspeichern braucht, sonst bekommt man das Zeug nicht mehr vernünftig zurück.

Struktur braucht man überall, nicht nur bei den Daten, insofern ist das klar.

 

1 hour ago, Jokin said:

Ich frag mich gerade wieso man versucht Daten längere Zeit im Arbeitsspeicher zu halten oder gar ins Dateisystem zu schreiben.

Das kommt ganz auf das Problem und das Drumherum an. :D

Wer sowieso dauernd mit DBs hantiert, wird DBs auch schon bei "kleinen"  Problemen verwenden, und wer jahrzehntelange Übung hat, mit strukturierten Dateien zu hantieren, der benutzt u. U. auch bei "mittlerer" Problemgröße noch Dateien.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 19 Minuten schrieb PeWi:

Struktur braucht man überall, nicht nur bei den Daten, insofern ist das klar.

Ja, ich wollte das ja auch nicht dir klarmachen, sondern dem/der Fragesteller/In. Du du das weißt, ist mir schon klar. Auch das JavaScript-Beispiel war eigentlich nicht primär an dich gerichtet, sondern mit Blick auf die Programmieranfänger hier, damit sie möglichst gleich typischen Anfängerfehlern aus dem Weg gehen können. Ich war auch mal Anfänger und habe als Autodidakt viele Fehler gemacht, die ich erst nach und nach erkannt habe.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 13 Stunden schrieb Jokin:

Ich frag mich gerade wieso man versucht Daten längere Zeit im Arbeitsspeicher zu halten oder gar ins Dateisystem zu schreiben. Und ja, ich hab das auch notdürftig gemacht um bei einer Anwendung um eine Datenbank drumrum zu kommen - aber hier bei diesem BalanceBot-Projekt hatte ich ganz bewusst die Datenbank nicht rausgeschmissen, sondern drin gelassen 🙂

Im nächsten Schritt will ich alle erfolgreichen Trades und alle jemals gesetzten Order in die Datenbank schreiben um so auswerten zu können ob die Order wirklich sinnhaftig gesetzt worden sind.

Dazu brauche ich den Verlauf der 24h-Min/Max-Wert sowie den jeweiligen Kurs, die 1h-OHLC-Werte dazu, die gesetzten BUY und SELL-Order, das Ordervolumen und die erfolgreichen Trades und deren Volumen. Daraus ergibt sich eine interessante Grafik, der dann der der Durchschnitts-Einkaufspreis hinzugefügt wird.

Ziel der Übung ist es das Ganze so zu optimieren, dass der Durchschnittseinkaufspreis möglichst zügig in den negativen Bereich wechselt oder zumindest schneller sinkt als der Kurs des Coins.

Denn sämtliche Strategien haben einen Erfolgsfaktor gemeinsam: Der Durchschnitts-Einkaufspreis wechselt in den negativen Bereich ... tut er das "in der Unendlichkeit", dann ist die Strategie Mist. Egal welche Strategie.

Wow, da hast du noch viel vor.

Derzeit ist ja der Bitcoin wieder auf Tallfahrt und prompt gehen auch die anderen von meinem Bot verwalteten Werte runter (ETH, NEO, BNB, ADA), so dass der Gesamtwert auch kontinuierlich sinkt. Das sieht gerade nicht gut aus und vielleicht sollte ich den Bot mal vorübergehend stoppen. Die 17% in 17 Tagen waren schon nicht übel. Wenn es so weiter gehen würde, wären das ja 365% im Jahr.

Aber eben... der Bitcoin schwächelt gerade und droht die 3990€ nach unten zu durchbrechen, was mir gar nicht gefällt. Das zieht dann wohl alle anderen mit in den Keller.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 13 Stunden schrieb Herr Coiner:

Ja, ich wollte das ja auch nicht dir klarmachen, sondern dem/der Fragesteller/

 

vor 13 Stunden schrieb Herr Coiner:

sondern mit Blick auf die Programmieranfänger hier, damit sie möglichst gleich typischen Anfängerfehlern aus dem Weg gehen

Welchem "Programmieranfänger" wolltest du das klarmachen, Serpens66 oder mir? Wir hatten beide diese Frage gestellt.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 4 Stunden schrieb Herr Coiner:

Das sieht gerade nicht gut aus und vielleicht sollte ich den Bot mal vorübergehend stoppen.

Naja, aber dann müsstest Du mit Deinem kompletten Bestand in USDT oder einem anderen Stable-Coin wechseln.

Ich sehe das locker, denn genau diese Turbulenzen sind es, die dem BalanceBot überhaupt erstmal eine Handlungsgrundlage bieten aus dem sich dann auch ein Profit erzeugen lässt.

Und ja, der Gesamtportfoliowert taucht mit dem gesamten Markt ab, aber je mehr einzelne Coins sich anders als von der Masse entwickeln, desto besser ist das für die Strategie.

Ich hab vor ein paar Tagen den nächsten Bot in Betrieb genommen und dem nochmal 20 ETH zugeteilt. Auch der bedient sich dem CMC-Ranking und ist derzeit noch dabei sich auszubalancieren, was er morgen oder übermorgen erledigt haben dürfte.

Neben dem Senken der Durchschnittseinkaufspreise soll der Bot ja auch die ETH vermehren, bzw. bei jedem der verwalteten Coins deren Anzahl über die Zeit erhöhen.

Und das natürlich auch immer wieder unter der Prämisse, dass ein Coin nicht stirbt und das Gesamtportfolio nullt - aber diese Gefahr hab ich nun ja gebannt durch die Anbindung an CoinmarketCap. Da gibt es dann halt mal einen Verlust von ein paar Prozent durch das Abverkaufen des sterbenden Coins, aber nun gut ... so hat's "TUSD" bereits erwischt, denn durch den Wertanstieg von ETH ist TUSD im Ranking nach unten gewandert und bei mir aus dem dynamischen Portfolio geflogen ... und dabei hat er 0,049 ETH zerrissen, aber hey ... lieber das als dass ETH immer weiter steigt und immer mehr TUSD anhäuft, der ja immer weniger Wert sein wird.

(wohlgemerkt, ich löse mich komplett von der Fiat-Welt in dieser Betrachtung)

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Ist TUSD nicht ein stablecoin? Da sollte die MarketCap ja keinerlei aussagekraft haben, oder irre ich mich?

Abgesehen davon, solltest du vielleicht das rausschmeißen/aufnehmen der Top 10 coins etwas entschärfen, macht doch wenig Sinn ständig einen Coin komplett rauszuwerfen, weil er auf Platz 11 gelandet ist und paar Tage später ihn wieder aufzunehmen usw, wenn die da Coin-wechsel-dich spielen?! Stattdessen könnte man noch Platz 11 bis 15 oderso mit aufnehmen und bei diesen Platzierungen deutlich weniger investieren, bzw den Bestand langsam reduzieren, anstatt "ganz oder garnicht" ?

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 15 Minuten schrieb Serpens66:

Ist TUSD nicht ein stablecoin? Da sollte die MarketCap ja keinerlei aussagekraft haben, oder irre ich mich?

"Stable" ist relativ.

Ja, er ist stable zum USD.

Nein, er ist nicht stable zu ETH, wenn ETH stabil ist, kann TUSD durchaus massiv fallen. (das bedeutet dann, dass der Kurs ETH/USD massiv steigt).

Und ja, auch TUSD kann im Marketcap-Ranking abfallen ... eben dann, wenn der Gesamtmarkt steigt und TUSD eben nicht. Ist ja ein Stable-Coin.

vor 17 Minuten schrieb Serpens66:

Abgesehen davon, solltest du vielleicht das rausschmeißen/aufnehmen der Top 10 coins etwas entschärfen, macht doch wenig Sinn ständig einen Coin komplett rauszuwerfen, weil er auf Platz 11 gelandet ist und paar Tage später ihn wieder aufzunehmen usw, wenn die da Coin-wechsel-dich spielen?! Stattdessen könnte man noch Platz 11 bis 15 oderso mit aufnehmen und bei diesen Platzierungen deutlich weniger investieren, bzw den Bestand langsam reduzieren, anstatt "ganz oder garnicht" ?

Exakt so wie von Dir vorgeschlagen, ist es auch umgesetzt - über eine Degression werden die Coins der unteren Ränge weniger stark gewichtet:

Unbenannt.png.d4402ac2dc4ac2f7977589d5885b4fed.png

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

ah, sehr gut :)

ich denke aber dennoch, dass TUSD (sofern es keine nennenswerten unterscheide zu USDT gibt) nicht anahnd marketcap gewertet werden sollte. Denn was wenn einfach neue TUSD erschaffen oder welche vernichtet werden? Das verfälscht doch alles, egal womit du es vergleichst. Oder gibts das bei TUSD nicht?

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Ja, richtig - wenn neue TUSD erschaffen werden und bei CMC die Anzahl der Coins nach oben gesetzt wird, springt dieser Coin sofort im Rang nach oben und wird im Portfolio mit einem höheren Prozentsatz gehalten - die dahinter liegenden Coins verlieren entsprechend und werden zu einem Teil abverkauft und TUSD wird massiv nachgekauft.

Rein von der Theorie her sollte dieses Risiko nicht allzu oft eintreten und im Eintrittsfall keinen großen Schaden anrichten, sodass ich nicht glaube, dass ich je einzelnen Coin irgendwelche Sonderbehandlungen einführen müsste.

Ich hab aber auch schon überlegt ob ich da was dran ändere nicht so viele Shitcoins am unteren Ende zu haben, denn ein weiteres Risiko sind die Pump&Dump-Aktionen.

Theta hatte es schon fast in den Bereich gepumpt, dass der Coin bei mir mit im Portfolio gewesen wäre - hat nicht mehr viel gefehlt ... und naja, am Pump-Maximum willste ja auch keine Kauforder platzieren :D - es sind mir zu viele Schrot-Coins in den TOP 100, daher werde ich das wohl mal auf TOP 50 oder auf TOP 20 begrenzen - dort wird nicht so schnell hineingepumpt.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 4 Stunden schrieb MixMax:

Welchem "Programmieranfänger" wolltest du das klarmachen, Serpens66 oder mir? Wir hatten beide diese Frage gestellt.

Na dann halt euch beiden oder den IT-Anfängern unter euch und auch allen anderen, die vllt. mitlesen und die Frage zwar nicht gestellt haben aber im Kopf hatten ;)
"Anfänger" ist ja nichts Negatives, ausser man bekommt es als Profi an den Kopf geworfen. Konfuzius sagt: "Jede Reise beginnt mit einem ersten Schritt."

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.


×
×
  • Neu erstellen...

Wichtige Information

Wir speichern Cookies auf Ihrem Gerät, um diese Seite besser zu machen. Sie können Ihre Cookie-Einstellungen anpassen, ansonsten gehen wir davon aus, dass Sie damit einverstanden sind. In unseren Datenschutzerklärungen finden sie weitere Informationen.