Zum Inhalt springen

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


fjvbit

Empfohlene Beiträge

vor 28 Minuten schrieb PeWi:

Wie wäre es, wenn wir in diesem Thread einen einfachen Bot bauen, der sich auf das Aussteigen aus Altcoin-Trades automatisiert?

Man kann ja gucken. Ich würde es aber nur mit Python machen wollen, im Moment. Ich möchte keine weitere Programmiersprache wie gesagt, um mein Gehirn zu schonen :D

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

1 minute ago, MixMax said:
1 hour ago, fjvbit said:

Ich vermisse die strenge Typprüfung bei Java // C++ auch.

Also bei Java wird das zu 100% geprüft, außer zu schreibst z.B. nen int in nen String, aber das währe ja nicht schlimm.

Ich vermute, dass @fjvbit eher "... die strenge Typprüfung von Java // C++ ..." gemeint hat. 😉

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 12 Minuten schrieb fjvbit:

Man kann ja gucken. Ich würde es aber nur mit Python machen wollen, im Moment. Ich möchte keine weitere Programmiersprache wie gesagt, um mein Gehirn zu schonen :D

Hast du bei Bots und Python nicht die Angst dass dein Bot evtl. zu langsam agiert? Ich meine klar, für die meisten normalen User-Anwendungen spielen die Geschwindigkeitsunterschiede praktisch keine Rolle, aber beim Trading kanns schon Faktor sein, wenn z. B. halbe Sekunde schneller die Daten analysiert wurden und bei guter Chance die Order rausgeht wird die evtl. bedient und das Konkurrenzbot wo evtl. ähnliches Signal verarbeitet hat aber die halbe Sekunde langsamer ist, geht leer aus.

Bearbeitet von user2748
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 7 Minuten schrieb user2748:
vor 19 Minuten schrieb fjvbit:

Man kann ja gucken. Ich würde es aber nur mit Python machen wollen, im Moment. Ich möchte keine weitere Programmiersprache wie gesagt, um mein Gehirn zu schonen :D

Hast du bei Bots und Python nicht die Angst dass dein Bot evtl. zu langsam agiert? Ich meine klar, für die meisten normalen User-Anwendungen spielen die Geschwindigkeitsunterschiede praktisch keine Rolle, aber beim Trading kanns schon Faktor sein, wenn z. B. halbe Sekunde schneller die Daten analysiert wurde und bei guter Chance die Order rausgeht wird die evtl. bedient und das Konkurrenzbot wo evtl. ähnliches Signal verarbeitet hat aber die halbe Sekunde langsamer ist, geht leer aus.

Nein keine Angst, Python ist immer noch schneller als die Internetverbindung. Auch kann man bei Bedarf Teile mit Cython übersetzen oder schnelle Biliotheken wie numpy nutzen....

Ich will auch nicht Arbitrage machen (ich denke der Markt dort ist gesättigt, vor allem wenn ich sehe, was es für coole Biliotheken für die APIs schon gibt) sondern Bot-Trading machen, da kommt auf mehr auf die Strategie, als auf die Geschwindigkeit an.

Bearbeitet von fjvbit
Link zu diesem Kommentar
Auf anderen Seiten teilen

Also hiermit will ich den Tread mal testen mit folgender Frage:

Ich schreibe gerade mal wieder für ein Programm ne neue GUI mit eclipse. Mit dem Swing GUI-Builder hab ich erst mal alles grob "reingemalt"

Der GUI-Builder von eclipse schreibt mir nun den Code aber furchtbar unsortiert in den Code. Ich sortiere das dann immer von Hand und bei ca 200 Variablen oder mehr dauert das dementsprechend lang und ist sehr unangenehm.

Ich würde das gerne automatisch nach Befehls Blöcken sortieren, also das alle gleichen Befehle gemeinsam in einem Block zusammengefast werden.

Beispiel: Block 1

sig_Online              .setFont(font1);
txt_IPAdresse        .setFont(font1);
   

Block 2:

pnl_split_right            .setBackground(bc2);
btn_TestNet               .setBackground(bc2);

 

 Ja, das ist meine persönliche Sortierung, aber bei über 1000 Zeilen GUI, macht das schon irgendwann (zumindest für mich) sinn.

Klar könnte ich den Code in ne Textdatei kopieren und das dann selbst programmiern, wäre aber nicht nötig, wenn es auch einfacher geht.

Kennt da jemand ne Option?

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 29 Minuten schrieb fjvbit:

Man kann ja gucken. Ich würde es aber nur mit Python machen wollen, im Moment. Ich möchte keine weitere Programmiersprache wie gesagt, um mein Gehirn zu schonen :D

Da bleiben wir dann aber auf der Strecke. Die Frage nach der richtigen Programmiersprache ist ja schon ein Glaubenskrieg. Du kannst doch nicht erst zur Schlacht rufen und dich dann still und heimlich vom Acker machen.

Wir wollen jetzt von dir hören, dass du dich für die Java oder Go Religion entscheidest. Hauptsache du entscheidest dich gegen die Python Religion. Etwas Bedenkzeit geben wir dir aber am Ende wollen wir das von dir hören :D 

So Spaß beiseite. Ich habe ein recht einfachen Trading "Bot" bei mir im Einsatz, die du recht einfach nachbauen kannst. Meine Aufgabenstellung war es ein Trading Bot zu schreiben, der nach einer starken Kurssteigerung einige Coins verkauft. Ich habe mich immer geärgert zum Zeitpunkt der Kursspitzen nicht online gewesen zu sein also habe ich mir genau dafür einen Bot geschrieben. Eine Kursspitze kann man in jeder Programmiersprache recht einfach erkennen. Gleich danach kommt dann aber die Herausforderung nicht zu verkaufen wenn der Kurs 50% in den Keller rauscht, dort für ein paar Stunden oder wenige Tage bleibt und dann 20% steigt. Die Kursspritze will man ja nicht unbedingt mitnehmen. Also braucht man ein paar Sicherheitsmaßnahmen um in solchen Situation lieber zu warten. Programmiere einfach mal was dir dazu so vorschwebt und dann vergleichen wir hier im Thread unsere Lösungen. Der Teil ist ja unabhängig von der Programmiersprache.

  • Like 2
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 8 Minuten schrieb skunk:

Wir wollen jetzt von dir hören, dass du dich für die Java oder Go Religion entscheidest. Hauptsache du entscheidest dich gegen die Python Religion. Etwas Bedenkzeit geben wir dir aber am Ende wollen wir das von dir hören :D 

Im Prinzip spricht nichts gegen eine Sprache, die für den Backend gemacht ist (GO), ein Bot ist ja genau nichts anderes.

Sollte man Go nehmen, dann wäre ich der totale Anfänger in Go, nur mit "etwas" Erfahrungen mit anderen Sprachen. Aber warum nicht, wenn es Sinn macht. Das Bessere ist der Feind es Guten :D

Auch würde man ja sowieso mit REST Services Arbeiten, denke ich... Da kann man auch leicht bei Bedarf mischen....

Man müsste mir nur etwas Zeit geben, dass ich "etwas" in Go aufhole :rolleyes:

Aber wie gesagt, ein Buch habe ich ja schon :ph34r:

Ich würde so etwas auf / unter Linux machen wollen, aber das ist für euch sicher ok, oder?

Edit:
Mein Go Buch ist von 2016, ist das noch aktuell genug, oder sollte ich mir etwas neues anschaffen?

Bearbeitet von fjvbit
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 4 Minuten schrieb fjvbit:

Sollte man Go nehmen, dann wäre ich der totale Anfänger in Go, nur mit "etwas" Erfahrungen mit anderen Sprachen. Aber warum nicht, wenn es Sinn macht. Das Bessere ist der Feind es Guten :D

Man müsste mir nur etwas Zeit geben, dass ich etwas aufhole :rolleyes:

Aber wie gesagt, ein Buch habe ich ja schon :ph34r:

Fang einfach mal hiermit an: https://github.com/binance-exchange/go-binance

Schonmal als keine Warnung. Das wird nicht laufen. Du wirst Fehlermeldungen bekommen. Wenn du nach den Fehlern suchst, findest du dann Forks, die den Fehler behoben haben aber Binance ist zu faul die Fixes zu prüfen und zu übernehmen. Ich habe aber gerade nicht im Kopf was ich am Ende bei mir installiert hatte. Ist aber eine schöne Übung weil man dadurch gleich versteht wie Go Module funktionieren. Du änderst eine Zeile und kompilierst deinen Trading Bot erneut mit einem anderen go-binance Modul.

  • Thanks 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 21 Minuten schrieb skunk:
vor 32 Minuten schrieb fjvbit:

Sollte man Go nehmen, dann wäre ich der totale Anfänger in Go, nur mit "etwas" Erfahrungen mit anderen Sprachen. Aber warum nicht, wenn es Sinn macht. Das Bessere ist der Feind es Guten :D

Man müsste mir nur etwas Zeit geben, dass ich etwas aufhole :rolleyes:

Aber wie gesagt, ein Buch habe ich ja schon :ph34r:

Fang einfach mal hiermit an: https://github.com/binance-exchange/go-binance

Schonmal als keine Warnung. Das wird nicht laufen. Du wirst Fehlermeldungen bekommen. Wenn du nach den Fehlern suchst, findest du dann Forks, die den Fehler behoben haben aber Binance ist zu faul die Fixes zu prüfen und zu übernehmen. Ich habe aber gerade nicht im Kopf was ich am Ende bei mir installiert hatte. Ist aber eine schöne Übung weil man dadurch gleich versteht wie Go Module funktionieren. Du änderst eine Zeile und kompilierst deinen Trading Bot erneut mit einem anderen go-binance Modul.

Ich bin zu "flatterhaft" :D

Ich habe mir schon GoLang installiert. Ich denke ich muss mir erstmal 1-2 Basics ansehen, bevor ich mich an die go-binance trauen kann :)

Ok Leute, ihr habt es so gewollt, jetzt habt ihr einen Go Anfänger unter euch :rolleyes:

Edit:
Go Version 1.15.6 ist ok?

Bearbeitet von fjvbit
  • Haha 1
  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

11 hours ago, fjvbit said:

Ok Leute, ihr habt es so gewollt, jetzt habt ihr einen Go Anfänger unter euch

👍

Und keine Angst, ich kann das auch nur so hobbymäßig, @skunkals Profi wird bei mir vermutlich auch immer mal wieder die Nase rümpfen. 😉

Dein Buch von 2016 und die Go-Version 1.15.x sind ok.

  • Thanks 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin zusammen :)

wie haltet ihr es eigentlich mit Backtesting eurer Strategie .... ?! 

In der Vergangenheit war ich hauptsächlich mit Arb, bzw MarketMaking Strategien unterwegs. OrderBücher, bzw. Arb lässt sich nur schwer Back-testen.  
Probiere aber grade verschiedene Dinge auf Perpetual Futures aus, welche auf technische Indikatoren, oder Signalen durch zusätzliche Quellen basieren. 

Hier scheint backtrader.com (python) ne ganz gute Feature Liste zu haben. Hat damit jemand schon Erfahrung gemacht ?! 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

18 hours ago, skunk said:

Bin gerade dabei, diese nette Liste durchzugehen. 👍

Z.B. "Jesse" klingt interessant. Wirbt damit, einfach nutzbar zu sein, trotzdem sehr akkurat und viele Möglichkeiten zu haben (Multi-Timeframe, Multi-Pairs, multiple Entries und Exits etc). Stöbere gerade die Doku durch, gefällt mir bisher ganz gut.

Enthält laut Angabe auch genetische Algorithmen zur Optimierung der Strategieparameter; soweit bin ich in der Doku aber noch nicht.

https://awesomeopensource.com/project/jesse-ai/jesse

Bearbeitet von PeWi
Tippfehler
  • Like 3
Link zu diesem Kommentar
Auf anderen Seiten teilen

34 minutes ago, ¯\_(ツ)_/¯ said:

wie haltet ihr es eigentlich mit Backtesting eurer Strategie .... ?!

Ausführlich. Rauf und runter. 😜

Ernsthaft: Backtests sind mir wichtig. Nicht, weil ich mir einbilde, damit im Live-Betrieb supertolle Ergebnisse zu bekommen, sondern um das Gegenteil zu vermeiden - schlechte Kandidaten (d.h. Parameterkombinationen) zu erwischen. Mein Backtest trifft einige Maßnahmen, um Overfitting zu vermeiden.

Mit den angebotenen Backtests bei diversen Open Source Bots war ich meistens unzufrieden, weil die im Normalfall einfach die Strategie mit deinen ausgewählten Parametern einmal durchlaufen lassen und ausgeben, was in diesem einen Fall rausgekommen wäre.

1 hour ago, ¯\_(ツ)_/¯ said:

OrderBücher, bzw. Arb lässt sich nur schwer Back-testen.

Da man Orderbücher nicht (bzw nur kommerziell und teuer) bekommt, bliebe nur, die selber über Monate mitzuspeichern. Das ist schon arg aufwendig und mühsam.

Nichtsdestotrotz würde mich Market Making ziemlich interessieren, mir fehlt bloss der richtige Anstupser, das endlich mal auszuprobieren. Ich stelle mir vor, dass man dabei gute Sicherungsmechanismen wegen der häufigen und großen Preisbewegungen bei Kryptos braucht?

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

vor 3 Stunden schrieb PeWi:

@skunkals Profi wird bei mir vermutlich auch immer mal wieder die Nase rümpfen.

Hatte ich schon erwähnt, dass ich Release Manager (und Weiterbildung zum Test Manager) bin. Ich schreibe selber nur selten mal eine Zeile Code. Ich bin darin auch echt schlecht. Wenn du mir deinen Code zeigst, kann ich dir nicht sagen ob der so gut aussieht.

Wenn du mir sagst was deine Anwendung machen soll, kann ich dir sagen in welchen Situationen ich ein Fehlverhalten erwarten würde. Ich kann mir auch später deine fertige Anwendung vornehmen und dir sagen in welchen Punkten das Verhalten von deiner Beschreibung abweicht. Zum Job eines Release Managers gehört es bei jedem Fehler ein zu schätzen welche Folgen im Fehlerfall zu erwarten wären und ob das ein sofortigen Hotfix nötig macht.

Nase Rümpfen werde ich nur wenn du vergisst eine Signatur ordentlich zu prüfen oder ähnliche Best Practices. Die Programmiersprache sollte dafür keine Rolle spielen. Ich habe selber erfahrenen Entwicklern Fehler bei der Prüfung von Signaturen nachgewiesen. Häufig genug ist es ausreichend wenn ich eine manipulierte Nachricht einfach selbst signiere. Der Entwickler prüft in der Regel nur ob die Signatur gültig ist aber vergisst die Herkunft des Schlüsselpaars zu prüfen. Fehler dieser Art habe ich schon mehr als einmal gesehen. Mit etwas Erfahrung bekommt man ein Gefühl dafür welche Fehler selbst erfahrene Entwickler übersehen. Im Unit Test funktioniert alles. Ich führe sie dadurch aufs Glatteis, dass ich auf meiner Node den Quellcode verändere und damit eine Situation schaffe, die sie für unmöglich gehalten hatten.

  • Like 2
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 20 Stunden schrieb fjvbit:

Ich habe eine ziemlich genaue Vorstellung, was ich machen möchte. Im Moment geht es mir im ersten Schritt eine einheitlich APIs (Klasse) zu diversen Börsen. Binance, Bitfinex, Kraken, evtl. bitcoin.de (habe ich in PHP fertig) in Python 3.x.

Ich würde das gerne alle Börsen in eine einheitliche Klassenschnittstelle packen.

Thema dieses Post: Python fertige BörsenSchnittstellen-skripte verwenden oder selbst schreiben:

Ohne die nachfolgenden Posts gelesen zu haben:
PeWi hatte ja schon kurz dieses ccxt Projekt erwähnt, gibt noch andere Projekte dieser Art.
Als ich anfing mit Python zu zu traden, gab es noch keine solcher "Schnittstellen-sammlungen" weshalb ich das zum größten Teil selbst geschrieben habe.

Die Vor/Nachteile dazu es selbst zu schreiben bzw etwas fertiges zu nehmen lassen sich durch eine bestimmte Problematik sehr gut erkennen:
- Es gibt hunderte Besonderheiten von jedem einzelnen exchange, die in sehr vielen Fällen auch nicht dokumentiert in deren API Doku sind. Klar das grobe Gerüst bekommst du da, und wenn du auch nur stump einmal im Monat eine Order abschicken willst, von der es egal ist, wann diese erfüllt wird, kommst du gut zurecht. Aber wenn du etwas ambitionierter bist und schneller/häufiger und zuverlässiger traden willst, dann ist es die reinste Hölle alle Eigenheiten jedes einzelnen Exchanges zu berücksichtigen.

Mein erster richtiger Bot, der jetzt immernoch läuft, hat nur das grobe Gerüst verbaut. Es ist gerade so akzeptable, ich musste aber nachträglich hunderte Sonderregelungen und Sicherheitsmenchanismen einbauen, um auf dieverse Probleme von bestimmten exchanges zu reagieren.
dadurch ist der aktuelle Bot ein einziger Flickenteppich und als Erstlingswerk sowieso nicht sonderlich effizient und auch nicht skalierbar/erweiterbar.

Daher habe ich 2017 (uff ist das schon lange her..., manchmal geht einfach die Motivation für ein paar Monate flöten :D) angefangen ein wirklich gutes "Schnittstellenkonstrukt" mit meinem bisherigen Erfahrungen selbst zu schreiben. Da ich natürlich auch keine Erfahrung in sowas hatte, wurden diverse Entwürfe angefangen und später wieder verworfen und und und. Letzlich bin ich heute noch immer dabei dieses Konstrukt zu basteln, weshalb der alte Bot noch immer läuft :D Ich denke ich bin "fast" am Ende der Entwicklung, soll heißen halbes Jahr bis zur Betriebnahme und ein Jahr bis es hoffentlich "perfekt" ist.

So, und warum tu ich mir das immernoch an, obwohl es mittlerweile Fertiges gibt?
Weil ich weiß welche ganzen Probleme es bei den Börsen geben kann und auf welche Feinheiten man achten muss. Ich weiß nicht ob andere Entwickler von fertigen Konstrukten überhaupt selbst traden und diese ganzen Problemchen kennen. Und außerdem muss ich mich dann auch noch mit möglichen Bugs fremder software rumschlagen, als wenn die Bugs der Börsen nicht schon reichen würden :D

Alles in Allem ist es, wenn man richtig intensiv per API traden will, immernoch sehr Wildwest mit ziemlich unzuverlässigen Börsen (ganz besonders jetzt bei hoher Volatilität). Selbst mit meinem Konstrukt werde ich dutzende Sicherheitsmechanismen brauchen (welche dann ins Konstrukt eingearbeitet sind).

edit:
kurz mal die ersten "issues" von ccxt durgescrollt, und hier haben wir ein perfektes Beispiel von solchen "Problemchen" der exchanges:
https://github.com/ccxt/ccxt/issues/8106
Als ccxt User weiß man nun nicht, ob das ein Bug von ccxt ist, oder ein Bug von bitstamp. Es ist natürlich ein Bug von Bitstamp und sowas haben zahlreiche exchanges, wo man oftmals garkeine möglichkeit hat sich vor falschen Infos (zb veralteten orderbooks) zu schützen, außer alles trading zu stoppen, sollte eine order daneben gehen, obwohl sie laut orderbook erfuellt sein sollte...

Bearbeitet von Serpens66
  • Thanks 2
  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

49 minutes ago, skunk said:

Nase Rümpfen werde ich nur wenn du vergisst eine Signatur ordentlich zu prüfen oder ähnliche Best Practices

Bezüglich Verletzungen von Best Practises hättest du bei mir viel zu meckern. 🤔

Zu meiner professionellen Zeit "gab" es viele heutzutage üblichen Best Practises noch nicht bzw bei meiner Firma nicht.

Seitdem bin ich nur noch Hobby-Entwickler in meinem stillen Kämmerchen und habe von den Weiterentwicklungen in der Welt da draussen auch wenig mitbekommen. Heutzutage und bei Go sowieso ist es üblich, Funktionstests zu schreiben. Das konnte ich mir bis heute noch nicht angewöhnen.

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor einer Stunde schrieb skunk:

Nase Rümpfen werde ich nur wenn du vergisst eine Signatur ordentlich zu prüfen oder ähnliche Best Practices.

Oha Signaturen?

Was meinst du damit genau? Hast du einen Link zu den Best Practise, die du für gut hältst?

Ich will mich ja auch nicht blamieren :rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 1 Stunde schrieb PeWi:

Nichtsdestotrotz würde mich Market Making ziemlich interessieren, mir fehlt bloss der richtige Anstupser, das endlich mal auszuprobieren. Ich stelle mir vor, dass man dabei gute Sicherungsmechanismen wegen der häufigen und großen Preisbewegungen bei Kryptos braucht?

Ich mach da schon lange nichts mehr. Hatte  so ca. 2015 von @Serpens66 den Spread Bot (PHP Projekt aus dem bitcointalk Forum) übernommen. (Glaub den haben einige selbst heute noch laufen ^^)
Wenn ich mich recht entsinne, dann hatte der auf grosse Spreads geachtet und dann entsprechend buy & sell orders angelegt. Aber das lief so la la la und man

hatte recht schnell Bags mit ShitCoins ... Die man aber immer wieder bei Pump & Dumps gut losbekommen ist.
Arb lief mit dem Ding zw. Bittrex & Poloniex ziemlich lange ganz gut eigentlich. Aber hab dann ähnlich wie Serpens dann angefangen meinen eigenen Bot zu schreiben. Am Anfang viel FIAT Arb zw. Bitcoin.de , Kraken, BTC-e usw. Und kann ihm da nur zustimmen. die ganzen Ausnahmen und Besonderheiten bei jeder Exchange sind zeitraubend. So ne Exchange API hab ich ansonsten in 1 bis 2 Tagen einmal komplett Happy-path durch implementiert.
Aber grade Rate-Limits, sich die OrderBooks korrekt aufzubauen, oder mit Zwangs Trennungen von WebSockets.. da fängt der Spass dann erst richtig an. 
Hab dann ne zeitlang garkein Bot mehr betrieben bis das ganze Thema DeFI aufkam und hab dann dort dann nen Arbitrage Bot als Smart contract imlementiert gehabt.
Das war schon irgendwie sau cool, so nen Arb Bot in einer atomaren Transaktion zu haben. War Zero-Risc... entweder hats geklappt oder eben nicht. 
Aber auf die "schlaue" Idee sind dann auch mit de Zeit auch andere gekommen und irgendwann fing es dann mit Front Running an. 

Also mach da irgendwie schon seit 5 Jahren immer mal wieder rum mit der verschiensten Strategien. Aber der Holy Grail fehlt mir noch ;) Aber darum geht es mir
auch nicht so wirklich. Ich verwende das Thema eher um mich weiterzubilden.

  • Thanks 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 3 Stunden schrieb ¯\_(ツ)_/¯:

Moin zusammen :)

wie haltet ihr es eigentlich mit Backtesting eurer Strategie .... ?! 

In der Vergangenheit war ich hauptsächlich mit Arb, bzw MarketMaking Strategien unterwegs. OrderBücher, bzw. Arb lässt sich nur schwer Back-testen.  
Probiere aber grade verschiedene Dinge auf Perpetual Futures aus, welche auf technische Indikatoren, oder Signalen durch zusätzliche Quellen basieren. 

Hier scheint backtrader.com (python) ne ganz gute Feature Liste zu haben. Hat damit jemand schon Erfahrung gemacht ?!

https://coinforum.de/topic/15956-interessensabfrage-wer-möchte-selber-einen-tradingbot-erstellen/?do=findComment&comment=369597

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

59 minutes ago, Serpens66 said:

Aber wenn du etwas ambitionierter bist und schneller/häufiger und zuverlässiger traden willst, dann ist es die reinste Hölle alle Eigenheiten jedes einzelnen Exchanges zu berücksichtigen.

Gerade als Ein-Mann-Betrieb ist das extrem aufwendig und frisst wahnsinnig Zeit.

59 minutes ago, Serpens66 said:

So, und warum tu ich mir das immernoch an, obwohl es mittlerweile Fertiges gibt?
Weil ich weiß welche ganzen Probleme es bei den Börsen geben kann und auf welche Feinheiten man achten muss. Ich weiß nicht ob andere Entwickler von fertigen Konstrukten überhaupt selbst traden und diese ganzen Problemchen kennen. Und außerdem muss ich mich dann auch noch mit möglichen Bugs fremder software rumschlagen, als wenn die Bugs der Börsen nicht schon reichen würden :D

Das kann ich nur unterschreiben.

Ich verwende bei meinem jetzigen Go-Bot u.a. eine Library, die noch nie funktioniert haben kann (Go-Bindings für die Tulip-Indikator-Library). Davon gibt es auch etliche Forks, aber in keiner war dieser - wirklich auffällige - Fehler (*) behoben.
Eine andere Lib, gegen die ich mich dann entschieden habe, hat für Tages-, Stunden- und Minutencandles jeweils eigene Funktionen gehabt, obwohl unter der Haube alles gleich ist bis auf die gegen die Börse aufzurufende URL. Warum tut er das? Das ist doch völlig unpraktisch zu nutzen??

Da kommt man wirklich zu dem Schluss, dass der jeweilige Entwickler die Lib nur zur Aufhübschung seines Werdegangs geschrieben und auf Github publiziert hat, aber nie ernsthaft verwendet hat.


Insofern kann ich dich gut verstehen, wenn du selber bereits etwas hast, was läuft, was wirklich getestet ist und sich bewährt hat, dass du dann lieber dabei bleibst, selbst wenn es "Gefrickel" ist, als dich dem Risiko auszusetzen, wieder alles durchgehen zu müssen und einen neuen Source durchzugehen, zu verstehen und an zig Stellen aufgrund deiner Erfahrungen zu härten.
 

(*: Bei jedem Indikator, der <n> Eingangswerte braucht, bis er den ersten Ausgangswert produziert, waren die aktuellsten <n-1> Werte Null, also bei jedem SMA, EMA, ... das muss doch auffallen. Okay, der Fehler war wirklich ätzend zu finden, weil der im Pointer-Rumgefrickel der Bridge zwischen C und Go war - aber zumindest der Original-Autor der Bindings ...?)

Bearbeitet von PeWi
Tippfehler
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 14 Minuten schrieb ¯\_(ツ)_/¯:

Hab dann ne zeitlang garkein Bot mehr betrieben bis das ganze Thema DeFI aufkam und hab dann dort dann nen Arbitrage Bot als Smart contract imlementiert gehabt.
Das war schon irgendwie sau cool, so nen Arb Bot in einer atomaren Transaktion zu haben. War Zero-Risc... entweder hats geklappt oder eben nicht. 
Aber auf die "schlaue" Idee sind dann auch mit de Zeit auch andere gekommen und irgendwann fing es dann mit Front Running an.

ja DEFI hätte ich auch gern nen Arbitrage Bot aufgesetzt, aber ich hatte/habe noch zuviel anderes zu tun und kenne mich mit smart contracts usw garnicht aus.
Aber man liest in den bitcoinnews ja auch oft, dass diverse smart contracts gehackt werden, auch bei den dezentralen Börsen. Wenn ich das lese bin ich irgendwie doch froh, dass ich da nichts gemacht habe. Oder betrifft/beträfe dich das als trader nicht, auch wenn da iein liquidity pot leer geräumt wird?

Link zu diesem Kommentar
Auf anderen Seiten teilen

27 minutes ago, ¯\_(ツ)_/¯ said:

bis das ganze Thema DeFI aufkam und hab dann dort dann nen Arbitrage Bot als Smart contract imlementiert gehabt.
Das war schon irgendwie sau cool, so nen Arb Bot in einer atomaren Transaktion zu haben. War Zero-Risc... entweder hats geklappt oder eben nicht. 

Sehr cool! Größten Respekt! 👍

Edit: War da nicht vor ein paar Monaten was, das jemand auf diese Art in einer raffinierten Transaktion fast 30 Millionen Dollar verdient hat?
Gefunden: https://bitcoinblog.de/2020/04/20/zwei-smart-contracts-wirken-zusammen-und-produzieren-eine-schwaeche-durch-die-ein-angreifer-rund-26-millionen-dollar-erbeutet/

Bearbeitet von PeWi
  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 27 Minuten schrieb Serpens66:

Oder betrifft/beträfe dich das als trader nicht, auch wenn da iein liquidity pot leer geräumt wird?

ne, das hatte damit nichts zu tun.. Ich hatte nen "Bot" laufen, der sich die Preise auf verschiedenen "DEX" angeschaut hatte.. KyberNetwork, Bancor, 0x etc .  Bei ner Arb Möglichkeit, hab ich das das als Input in meinem Smart Contract gegeben und der hat dann gekauft und verkauft in einer einzigen Transaktion. Wenn eins davon nicht geklappt hat, so war die gesamte Transaktion eben fehlerhaft. Heute würde das schon wegen den hohen Transaktion Gebühren auf ETH nicht mehr so wirklich profitabel sein. 

Ich wollte mir immer mal Aave FlashLoans anschauen. Da kann man ja das ganze quasi "gehebelt" machen :D Aber dazu fehlt mir einfach die Zeit momentan.

Zum Thema Programmiersprachen: @Flenst fang damit an, womit du dich wohl fühlst. Ob das jetzt PHP, Python, JavaScript etc ist denke ich erstmal vollkommen egal.
So zeitkritisch sind die Dinge nun auch wieder nicht. Ich hab mal ewig viel Zeit damit verbraten nen Triangular Arbitrage Algorithmus auf Sub-Milisekunden Verarbeitung zu trimmen. Wenn man sich nachher aber mal anschaut, wie lange nen WebSocket Event von der Exchange bis zu einem aufn Rechner braucht, dann hätte mich mir das auch sparen können ^^ Aber war mal ne ganz interessante Erfahrung mit In-Memory Data Grids und optimierten DatenStrukturen zu experimentieren. 

 

@PeWi https://github.com/ProofSuite/OrFeed Hier gibts was dazu, bei dem ich mir später noch bissle was abgeschaut hatte... bzw. da gabs auch nen YouTube Channel mit Videos dazu gemacht .... 

Edit: Ja, gibt immer wieder findige Programmierer die Schwachstellen ausnutzen... Finde das Hochinteressant sich das später anzuschauen, was da genau gemacht wurde und ist schon echt super tricky :)

 

Bearbeitet von ¯\_(ツ)_/¯
  • Thanks 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.