Jump to content

Allgemeine Programmierung / Entwicklung, alle Sprachen, API Börsen, API Crypto Clients


Empfohlene Beiträge

vor 1 Minute schrieb PeWi:

Ich halte nicht so viel davon, sich zu verzetteln. Was im Coinforum seinen Anfang nimmt, darf auch gerne dort seinen weiteren Fortgang nehmen.

Ich würde mich freuen, wenn aus diesem Thread irgendwann mal ein kleiner Workshop - ähnlich dem von @Jokins BalanceBot - entspränge.

Außerdem - Achtung: subjekte Meinung - gefällt mir Discord nicht, weder vom Handling, noch vom Aussehen. 😜

Wollte eigentlich auch nicht euch damit Ansprechen, die kein Interesse an einem gemeinsamen Projekt haben, sondern Personen die zusammen ein Projekt machen wollen in Python. Glaube nämlich es ist sehr zum Vorteil von mehreren Personen, wenn viele Ihr wissen in ein Projekt stecken und dadurch ein extrem guter Bot entsteht. 

Ich möchte nicht die einzelnen Themen hier auslagern oder nur Personen auf meinen Discord Server bekommen, sondern Personen zusammen bekommen die die selben Interessen haben und ein gemeinsames Projekt haben zum Trading mit Kryptowährungen. 

Außerdem halte ich nicht zum Vorteil wenn man sich hier über Detail vom Bot unterhält und jeder Mensch im Internet  es einfach einsehen kann.

Ihr könnt euch weiterhin hier im Forum über eure Bots austauschen, aber die die noch keinen Bot haben und gemeinsam mit anderen ein Bot bauen möchten, können auf Discord kommen oder mir etwas besseres Vorschlagen. Ich Persönlich finde jedoch Discord nützlich um am PC sich darüber schnell zu unterhalten oder irgendwas schnell zu versenden. 

Ps.: Ich hoffe es finden sich ein paar die Interesse dran haben. 😀 

 

Link zum Beitrag
Auf anderen Seiten teilen
vor 11 Minuten schrieb Mr.Davidwater:

Wollte eigentlich auch nicht euch damit Ansprechen, die kein Interesse an einem gemeinsamen Projekt haben, sondern Personen die zusammen ein Projekt machen wollen in Python. Glaube nämlich es ist sehr zum Vorteil von mehreren Personen, wenn viele Ihr wissen in ein Projekt stecken und dadurch ein extrem guter Bot entsteht. 

Ich möchte nicht die einzelnen Themen hier auslagern oder nur Personen auf meinen Discord Server bekommen, sondern Personen zusammen bekommen die die selben Interessen haben und ein gemeinsames Projekt haben zum Trading mit Kryptowährungen. 

Außerdem halte ich nicht zum Vorteil wenn man sich hier über Detail vom Bot unterhält und jeder Mensch im Internet  es einfach einsehen kann.

Ihr könnt euch weiterhin hier im Forum über eure Bots austauschen, aber die die noch keinen Bot haben und gemeinsam mit anderen ein Bot bauen möchten, können auf Discord kommen oder mir etwas besseres Vorschlagen. Ich Persönlich finde jedoch Discord nützlich um am PC sich darüber schnell zu unterhalten oder irgendwas schnell zu versenden. 

Ps.: Ich hoffe es finden sich ein paar die Interesse dran haben. 😀 

 

Im Prinzip ist es egal. Das Problem, welches Du als erstes hast, ist ein Konzept/Stratgie zu finden, das funktioniert und Geld verdient. Das ist eine Herausforderung an sich. 

In nächsten Schritt wirst Du Dir dann Gedanken machen, wie Du das umsetzen willst ...

Link zum Beitrag
Auf anderen Seiten teilen
54 minutes ago, Mr.Davidwater said:

Wollte eigentlich auch nicht euch damit Ansprechen, die kein Interesse an einem gemeinsamen Projekt haben, sondern Personen die zusammen ein Projekt machen wollen in Python

Da habe ich wohl zu knapp und missverständlich formuliert. Ich wäre durchaus bereit, bei einem Gemeinschaftsprojekt mitzumachen und mit etwas Wissen dazu beizutragen.

Ich mag nur den Geheimniskrämer-Ansatz "hinter verschlossenen Türen" nicht; und er ist auch unnötig, denn es wird dabei in überschaubaren Zeiträumen sowieso kein "extrem guter Bot" dabei rauskommen.
Das ist die - sorry - naive Hoffnung anfangs, die schminkt man sich im Lauf der Zeit ab und wird realistischer. Ansonsten säßen viel mehr der hiesigen Mitglieder permanent in der Südsee ... 😜

Am Anfang muss man kleinere Brötchen backen, und die kann man durchaus der Gemeinschaft hier zur Verfügung stellen. Auch dabei lernt man.

 

 

 

bearbeitet von PeWi
Ergänzung
Link zum Beitrag
Auf anderen Seiten teilen
vor 47 Minuten schrieb PeWi:

Da habe ich wohl zu knapp und missverständlich formuliert. Ich wäre durchaus bereit, bei einem Gemeinschaftsprojekt mitzumachen und mit etwas Wissen dazu beizutragen.

Ich mag nur den Geheimniskrämer-Ansatz "hinter verschlossenen Türen" nicht; und er ist auch unnötig, denn es wird dabei in überschaubaren Zeiträumen sowieso kein "extrem guter Bot" dabei rauskommen.
Das ist die - sorry - naive Hoffnung anfangs, die schminkt man sich im Lauf der Zeit ab und wird realistischer. Ansonsten säßen viel mehr der hiesigen Mitglieder permanent in der Südsee ... 😜

Am Anfang muss man kleinere Brötchen backen, und die kann man durchaus der Gemeinschaft hier zur Verfügung stellen. Auch dabei lernt man.

 

 

 

Südsee ist langweilig, ich brauche Jahreszeiten des Nordens 🙂

Ich denke, von den zigtausend Möglichkeiten einen Bot zu machen, einigt Euch auf einen Ansatz und optimiert den. Klärt dann als erstes, ob ihr was lernen wollt oder Geld verdienen. Das sind unterschiedliche Ansätze wichtig zu unterscheiden, das hat viel mit dem Risiko und Systemdesign zu tun.

1. Wenn man Bots über mehrere Exchanges macht, hat man einfach das Problem der multiplen APIs. Das ist im kleinen Bereich kein Problem, aber wenn man das richtig skalieren will, ist das schnell ein Kleinwagen weg, wenn das knallt. Das kann richtig weh tun.

2. Ich persönlich fokusiere mich auf eine Exchange, die gewisse Kriterien erfüllt. Wenn ich weiß, wie gut/schlecht die API ist, kann ich Workarounds machen und hab das im Griff. Besonders Updates von unterschiedlichen Exchanges sind immer Hochrisikosport und halten einen Beschäftigt. Auch ist die Liquidität wichtig.

3. Ein Ansatz, den ich verfolge ist Trading auf Preise. Coins sind super, Signale bis das Portfolio kracht. Bei Aktien oder Forex muss man viel länger warten 🙂

4. Wenn man nur auf jeweils eine Preiskurve traden will, ist ein Scalping bei Coins am besten. hier mal ein Bespiel

https://www.die-erfolgs-strategie.de/trading-strategie/techniken/scalp-trading-strategie/

5. Wenn man auf Trends bei Coins traden will, muss man sich seine Preiskurven anders gestalten. Ein Ansatz kann die Idee von Statistical Arbitrage sein. Wenn man nach gewissen Test Kriterien eine Verwandschaft der Preise gefunden hat, kann man auf die Differenz traden, die sich dann langsam bewegt und einen satten Trend zeigt.

Hier mal ein genereller Artikel (ist für Coins das gleiche) 

https://blog.quantinsti.com/statistical-arbitrage/

 

Also, gutes gelingen. Wenn noch Fragen sind, einfach PM an mich. Ich mach in anderen Threats weiter.

MM

Link zum Beitrag
Auf anderen Seiten teilen
vor 2 Stunden schrieb Mr.Davidwater:

Ich möchte nicht die einzelnen Themen hier auslagern oder nur Personen auf meinen Discord Server bekommen, sondern Personen zusammen bekommen die die selben Interessen haben und ein gemeinsames Projekt haben zum Trading mit Kryptowährungen. 

Außerdem halte ich nicht zum Vorteil wenn man sich hier über Detail vom Bot unterhält und jeder Mensch im Internet  es einfach einsehen kann.

Du kannst hier ganauso eine private Gruppe als PM erstellen. Dazu ist Discort nicht nötig.

bearbeitet von MixMax
Link zum Beitrag
Auf anderen Seiten teilen
44 minutes ago, Männergruppe Monk said:

Ein Ansatz kann die Idee von Statistical Arbitrage sein

Einen vernünftigen Source zu statistischer Arbitrage suche ich noch. Ich habe einen einzigen in R, aber den verstehe ich nicht. 🙄

Meistens findet man unter dem Stichwort "statistische Arbitrage" leider nur Artikel, die sich nach ein paar warmen Worten letztendlich doch nur auf Pair Trading beschränken.

Statistische Arbitrage ist doch die Verallgemeinerung von Pair Trading, bei der man statt nur zwei Coins (Aktien, ... whatever) einen Korb aus mehreren Elementen  hat.
Aber drüber hinaus - wann kauft/verkauft man was in welchem Unfang - habe ich zuwenig Details gefunden, um das richtig nachvollziehen zu können.

bearbeitet von PeWi
Link zum Beitrag
Auf anderen Seiten teilen
vor einer Stunde schrieb PeWi:

Einen vernünftigen Source zu statistischer Arbitrage suche ich noch. Ich habe einen einzigen in R, aber den verstehe ich nicht. 🙄

Meistens findet man unter dem Stichwort "statistische Arbitrage" leider nur Artikel, die sich nach ein paar warmen Worten letztendlich doch nur auf Pair Trading beschränken.

Statistische Arbitrage ist doch die Verallgemeinerung von Pair Trading, bei der man statt nur zwei Coins (Aktien, ... whatever) einen Korb aus mehreren Elementen  hat.
Aber drüber hinaus - wann kauft/verkauft man was in welchem Unfang - habe ich zuwenig Details gefunden, um das richtig nachvollziehen zu können.

Das ist nicht sonderlich schwer. Mal sehen, ob ich das noch zusammen bekomme.

Es geht im Prinzip darum, besondere Eindeutigkeit zu finden (Mean Reversion Principle). Da muss man einfach nur ein Gefühl für entwickeln, was Eindeutigkeit bedeutet.

Im Prinzip machst Du : 

1. Kreuzkorrelationtests zwischen 2 Paaren (die Tests fallen mir gerade nicht ein, sind bei Matlab in der Ecometrischen Toolbox mit dabei.

2. Dann weißt Du, bei hoher Korreleation haben die in der Differenz nur geringe Abweichungen und die Differenz dehnt sich aus und zieht sich zusammen, wie ein Gummiband. (Mean Reversion Principle). Hier hast Du dann Eindeutigkeit, die Du traden kannst. 

3. Durch diese Differenzkurve kannst Du bei besonders guten Korrelationswerten lange Trendkurven erzeugen, die man dementsprechend tradet. Nachteil, Du hast zweimal Spread und Fees. Und ja, manche bezeichnen das auch als Pair Trading, aber es gibt sehr viele Unterarten von Pair Trading, besonders wie man ansetzt.

 

Ich habe festgestellt, dass ich durch das Trading auf die Differenzkurve (mit oder ohne Korrelationstest) bei manchen Werten in höheren Zeitframes sehr schöne Trends erzeuge. Ich kann mal sehen, ob ich noch irgendwo diese Buch dazu finde, wo ich das her habe. Aber auf Youtube gibt es sehr gute Videos zum Thema.

Ist nicht unbedingt mein Fokus, seit ich gesehen habe, wie leicht man Counter Strategien macht, aber bei Coins könnte das noch funktionieren (nur Short gehen muss möglich sein !). Wie immer, einfach mal ausprobieren und in den Graphen nach Eindeutigkeit suchen und dementsprechend die Strategie setzen 🙂

 

Nachtrag : Was mir noch einfiel, es gibt auch Leute, die Pair Trading anders betreiben, sogenannten Triangle Pair Trading, das ist dann aber wieder ein anderer Ansatz. Ich habe mal Versuche mit 4 Paaren gemacht, weil ich eine Wissenschaftliche Arbeit darüber gefunden habe, aber hier war in der Tat das Mapping von Binance zu langsam, da habe ich das gelassen. Aber sowas auf mehreren Exchanges könnte ein Ansatz sein. Wenn ihr das mal ausprobiert, lasst es mich wissen. Mir war das zu kompliziert von den APIs her. 

bearbeitet von Männergruppe Monk
Link zum Beitrag
Auf anderen Seiten teilen

Mal eine andere Frage, bzgl Dokumentation von Trades:

Mir geht das ganze csv-runterladen von exchanges gedöns auf die Nerven (weil viele exchanges da auch heute noch probleme haben, sodass man den support dafür bemühen muss usw). Wenn man also schon einen Bot hat, kann man ja auch gleich die API dafür nutzen.
Theoretisch geht sowas am Besten über websocket und dann jeden Trade der stattfindet direkt dokumentieren. Allerdings habe ich so meine Zweifel an der Uptime der websocket-verbindung, weshalb ich vermutlich eher 1 mal täglich oderso einen REST API Call machen werde.

Jedenfalls wäre die Frage, wie ich sowas sinnvoll abspeichere, sodass der Bot zb. für eine eigene Gewinnermittlung oder auch für die letzten Trade-IDs (bei manchen exchanges übergibt man eine Trade-ID, ab der man dann neue Trades sucht) die Daten jederzeit zur Verfügung hat und ergänzen kann?
Ich hab keine Ahnung von Datenbanken und was das ist, aber theoretisch brauche ich doch sowas? Oder ist eine Datenbank lediglich eine (zb csv) Datei die über Internet abrufbar ist? Falls ja, dann brauche ich keine Datenbank, sondern lass den Bot einfach alle Trades in eine csv Datei schreiben.
Nur stört mich bei dem "in eine csv Datei schreiben"-Ansatz, dass die extremst groß werden kann (locker 100MB pro Jahr Tradedaten) und wenn ich diese Datei dann ständig öffne, einen Trade hinzufüge (mit append? oder lieber komplett neu write?) und neu abspeichere, klingt das nicht sonderlich effizient.
Das muss doch effizienter gehen? Oder bleibt da nur zb. eine csv Datei pro Monat oder gar pro Tag? Und wenn der Bot mehr als den letzten Tag braucht, muss er sich alle einzelnen Dateien auslesen, aber beim hinzufügen reicht dann eine einzelne Datei?

edit:
ich ging bei "100 MB pro Datei=extrem viel" von meinen Erfahrungen bei cointracking, accointing, crypto tax und wie sie alle heißen aus, weil bei denen schmiert das ganze system ab, wenn ich ne 100MB cvs Datei mit 1Mio Trades hochladen will, bzw. es ist direkt auf deutlich kleinere Mengen limitiert :D (keine ahnung obs heute auch noch so limitiert ist, aber damals musste ich solche Dateien in 20 stück oderso aufteilen)

bearbeitet von Serpens66
Link zum Beitrag
Auf anderen Seiten teilen
vor 56 Minuten schrieb Serpens66:

Ich hab keine Ahnung von Datenbanken und was das ist, aber theoretisch brauche ich doch sowas?

Du nimmst einfach eine CSV-Datei pro Jahr. 100 MB ist nicht viel und Performance ist für dich ja erst einmal egal. Performance in dem Sinne: Das ist nicht schlimm für dich, wenn dein Programm einmal täglich 2 Sekunden braucht bis es durchgelaufen ist.
Genau, du hängst einfach jeden Tag an die Daten unten dran an die CSV, da spricht nichts gegen.
Der Gewinn eines DBMS wie MariaDB oder PostgreSQL ist für dich, der sich damit nicht auskennt viel zu niedrig verglichen mit dem Aufwand. Zumal du jederzeit nachträglich deine CSVs noch in eine Datenbank einpflegen kannst, das ist überhaupt kein Problem, wenn du später im laufenden Betrieb feststellst, dass es dir doch nicht ausreicht.  Wenn du wirklich nicht mit CSV Dateien arbeiten willst, dann nimm SQLite. Generell sind moderne Dateisysteme sehr performant wenn du nicht mit GB an Daten hantierst, komplexe SQL-Abfragen baust oder diverse parallele Verbindunden auf die DB benötigst, dann kannst du guten Gewissens rein Datei-basiert (CSV oder SQLite) arbeiten.

bearbeitet von Arther
Link zum Beitrag
Auf anderen Seiten teilen
vor 54 Minuten schrieb Serpens66:

Mal eine andere Frage, bzgl Dokumentation von Trades:

Mir geht das ganze csv-runterladen von exchanges gedöns auf die Nerven (weil viele exchanges da auch heute noch probleme haben, sodass man den support dafür bemühen muss usw). Wenn man also schon einen Bot hat, kann man ja auch gleich die API dafür nutzen.
Theoretisch geht sowas am Besten über websocket und dann jeden Trade der stattfindet direkt dokumentieren. Allerdings habe ich so meine Zweifel an der Uptime der websocket-verbindung, weshalb ich vermutlich eher 1 mal täglich oderso einen REST API Call machen werde.

Jedenfalls wäre die Frage, wie ich sowas sinnvoll abspeichere, sodass der Bot zb. für eine eigene Gewinnermittlung oder auch für die letzten Trade-IDs (bei manchen exchanges übergibt man eine Trade-ID, ab der man dann neue Trades sucht) die Daten jederzeit zur Verfügung hat und ergänzen kann?
Ich hab keine Ahnung von Datenbanken und was das ist, aber theoretisch brauche ich doch sowas? Oder ist eine Datenbank lediglich eine (zb csv) Datei die über Internet abrufbar ist? Falls ja, dann brauche ich keine Datenbank, sondern lass den Bot einfach alle Trades in eine csv Datei schreiben.
Nur stört mich bei dem "in eine csv Datei schreiben"-Ansatz, dass die extremst groß werden kann (locker 100MB pro Jahr Tradedaten) und wenn ich diese Datei dann ständig öffne, einen Trade hinzufüge (mit append? oder lieber komplett neu write?) und neu abspeichere, klingt das nicht sonderlich effizient.
Das muss doch effizienter gehen? Oder bleibt da nur zb. eine csv Datei pro Monat oder gar pro Tag? Und wenn der Bot mehr als den letzten Tag braucht, muss er sich alle einzelnen Dateien auslesen, aber beim hinzufügen reicht dann eine einzelne Datei?

Du hast hier einen wichtigen Punkt, das ist nicht ganz trivial. Ich habe auch gebraucht, das alles praktisch hinzubekommen.

1. Meine Forex Broker liefern Performance Reports und am Ende des Jahres einen Steuerreport mit allen Daten.

2. Die Crypto Exchanges sind relativ bescheiden, was das Reporting angeht. Das ist richtig und ich habe da aufgegeben.

3. "CSV" ist der Defacto Standard und nach meiner Ansicht, der "of choice" Modus.

4. Aber, so einfach ist das nicht, weil man einige Dinge beachten muss. Besonders wenn unterschiedliche Trades gemischt werden, ist es manchmal etwas schwierig, hier die Werte zu trennen, also die Eindeutigkeit eines Trades fehlerfrei zu bekommen.

5. Aus diesem Grunde mische ich die Dinge nicht und kann für jeden einzelnen Trade die Parameter genau definieren und in ein CSV File schreiben. (Also Anfang, Ende, Amount, Profit ect, P&L, Kummulativer Profit). Zusätzlich habe ich sehr detaillierte Logfiles, um nachzusehen, warum was geknallt hat.

6. Das CSV File kann dann einfach entweder von einem eigenen Programm (ganz einfach mit Matlab) oder von Open Source Programmen ausgewertet werden. Auch Programme wie Crystal Reports verwenden einige. 

7. Du kannst ein CSV pro Jahr machen, wo alle Trades drin stehen und eins pro Trag. Ich mach das auch so. Jeden Abend um 20:00 schicke ich mir die Reports des Tages und schau einfach nach, ob was passiert ist. Funktioniert wirklich super.

8. Und ja, ich hänge einfach eine Zeile ran, sollte append sein. Mach einfach, was am einfachsten für Dich ist.

Link zum Beitrag
Auf anderen Seiten teilen
vor 12 Minuten schrieb Arther:

Du nimmst einfach eine CSV-Datei pro Jahr. 100 MB ist nicht viel und Performance ist für dich ja erst einmal egal. Performance in dem Sinne: Das ist nicht schlimm für dich, wenn dein Programm einmal täglich 2 Sekunden braucht bis es durchgelaufen ist.
Genau, du hängst einfach jeden Tag an die Daten unten dran an die CSV, da spricht nichts gegen.
Der Gewinn eines DBMS wie MariaDB oder PostgreSQL ist für dich, der sich damit nicht auskennt viel zu niedrig verglichen mit dem Aufwand. Zumal du jederzeit nachträglich deine CSVs noch in eine Datenbank einpflegen kannst, das ist überhaupt kein Problem, wenn du später im laufenden Betrieb feststellst, dass es dir doch nicht ausreicht.  Wenn du wirklich nicht mit CSV Dateien arbeiten willst, dann nimm SQLite. Generell sind moderne Dateisysteme sehr performant wenn du nicht mit GB an Daten hantierst, komplexe SQL-Abfragen baust oder diverse parallele Verbindunden auf die DB benötigst, dann kannst du guten Gewissens rein Datei-basiert (CSV oder SQLite) arbeiten.

Da habe ich auch schon alles durch und kann Dir nur zustimmen. Zusätzlich hatte ich mehrmals update Probleme mit diesen Datenbanken, die mir auch die Daten zerschossen haben. Daher halte ich mich davon fern und bleibe bei CSV, ist am einfachsten.

Link zum Beitrag
Auf anderen Seiten teilen

Nachtrag

Was besonders wichtig ist. Du musst  in der Lage sein, Dein Programm jederzeit zu unterbrechen und zu starten, ohne, dass es Dein Trading oder Statistiken stört.

Ich habe das so gelösst, das ich ein File habe, das nur 1 oder 0 enthält. Bedeutet wenn ich das File auf eins setze, 1 = Programm anhalten, wenn in keinem Trade, speichert Variablen ab und steigt aus, 0 = nichts machen. Wenn ich das Progarmm wieder starte, lade ich einfach die Variablem wieder rein. Alles andere kann teuer werden, wenn man schnell tradet und nicht die Übersicht behält.

Einfach das Programm anhalten ist nicht zu empfehlen, weil man dann auch mit den Exchanges synchronisieren muss, da kann man leicht ins kotzen kommen. Besser sauber und eindeutig, man schläft besser, wenn da richtig Geld im  Spiel ist.

Dieser Ansatz hat sich bei mir sehr bewährt und ist am einfachsten mit CSV zu machen.

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.
Note: Your post will require moderator approval before it will be visible.

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.