Zum Inhalt springen

Interessensabfrage: Wer möchte selber einen Tradingbot erstellen?


Jokin

Empfohlene Beiträge

vor 17 Minuten schrieb PeWi:

Vom Traden gegen Stable Coins wie USD, USDT, TUSD etc. halte ich auch viel.

Das ist auch mein Gedanke - damit nimmt man sich ein wenig Risiko raus - das Problem bei Shrimpy ist wohl genau das, dass eben nicht gegen einen Stablecoin ausbalanciert wird sondern lediglich die Coins untereinander.

Ich will das ja um mein übliches Konzept der "Seitenlinie" erweitern.

Diese Seitenlinie hilft auch um steuerliche Risiken zu reduzieren - so habe ich meine derzeit zu erwartende Einkommensteuernachzahlug an der Seitenlinie geparkt, die kann jederzeit ins Spiel gehen wenn es sinnvoll erscheint, jedoch wird selbst bei fallende Kursen diese Seitenlinie stets wieder aufgefüllt. Natürlich ist das mit Verlusten verbunden, aber eben kein Totalausfall.

Ich hab nun Lektion 6 fertig und der Cronjob ist ja eh keine große Sache, also Lektion 7 ist nun auch fertig.

Nun lasse ich das Ding einfach mal laufen - da ich lediglich ca. 100 USD drin hab und jeweils mindestes 10 USD in einer Order geparkt werden müssen, dürfte sich das in den nächsten Stunden ausbalanciert haben.

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

37 minutes ago, Jokin said:

das Problem bei Shrimpy ist wohl genau das, dass eben nicht gegen einen Stablecoin ausbalanciert wird sondern lediglich die Coins untereinander

Der Shrimpy-Backtest läßt einen zumindest USDT mit beimischen. Tut man das, sind die Schwankungen auch weniger groß als bei der Verwendung von ausschließlich Cryptowährungen.
Viele lassen sich halt von den höheren Werten im Bullrun etwas blenden, wenn man aussschließlich Cryptos rebalancieren lässt, aber bei länger fallenden Kursen wie 2018 verliert man dafür auch überproportional viel.

Mir wäre das zuviel psychischer Stress, weswegen ich mit der Hälfte in Stable Coins arbeiten würde.

  • Thanks 1
  • Up 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

3 hours ago, Serpens66 said:

Die Balancing Strategie ist dann wohl die "antizyklische Tradingstrategie" wie sie Kneim vor Jahren im bitcointalk vorgestellt hat (wer will kann sich dort also genauer informieren):
https://bitcointalk.org/index.php?topic=495672.0

Ist sicherlich eine sehr interessante Strategie und deutlich besser als ohne Strategie zu traden. Aber ich würde sie nicht als Reich-mach Strategie bezeichnen.

Interessanter Thread - danke!

Solange die Kurse schwerpunktmäßig seitwärts oder steigend laufen, funktioniert Rebalancing/antizyklisches Traden ganz gut. Achillesferse sind lange Bärenzeiten wie der Großteil des Jahres 2018, da braucht man schon eine sehr starke Psyche, um beim Zusehen nicht zu verzweifeln. 😉

3 hours ago, Serpens66 said:

Wichtig ist natürlich auch die Auswahl der Coins. Kneim schreibt ja, dass man nur wertvolle Werte verwenden, bzw Werte bei denen man glaubt, dass sie langfristig existieren werden (also keine Altcoins die einfach verschwinden).

Dafür könnte man sich Automatismen überlegen. Z.B. könnte man - bei 20 Coins - jeden Coin, der aus den Top 20 herausfällt, durch den Nachrücker ersetzen.

Oder, um häufige Wechsel zu vermeiden, jeden Coin erst dann durch einen Top 20-Nachrücker ersetzen, wenn er aus den Top 50 herausgefallen ist.

3 hours ago, Serpens66 said:

Und man muss sich einen Kauf/Verkaufzeitpunkt überlegen. Macht ja wenig Sinn wenn der Bot bereits bei 0.01% Abweichung vom Soll sofort wieder tradet, kostet unnötig Gebühren.

Da bin ich bei Kneim. Ich würde nicht zu festen und starren Zeitpunkten rebalancieren, sondern ein bisschen auf Trendwenden und ähnliches schauen. Dazu reicht vermutlich schon ein EMA mit Länge X. Wenn der die Richtung umkehrt, dann verkaufen bzw kaufen. Und das kombiniert mit einer Mindestabweichung, was du hier ansprichst, damit man keine Minitransaktionen tätigt.

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

Ich bewerte die Coins ganz gern nach ihrer Github Aktivität. Kann nach oben natürlich manipuliert werden aber nach unten ist die Sache eindeutig. Damit kann man zumindest einen Großteil der ganzen Scam und Shit Coins aussortieren. Interessant ist welche Projekte in den Top 20 stehen. 

https://medium.com/santiment/tracking-github-activity-of-crypto-projects-introducing-a-better-approach-9fb1af3f1c32

Hinweis: Ich arbeite für Storj. Derzeit in diesem Ranking auf Platz 10. Der Vorschlag ist daher wohl nicht als objektiv zu bezeichnen.

  • Haha 2
  • Thanks 1
  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

21 minutes ago, skunk said:

Ich bewerte die Coins ganz gern nach ihrer Github Aktivität

Das ist zweifelsohne auch ein interessanter Ansatz.

Um etwas gegen deinen oben erwähnten Angriff gehärtet zu sein, muss man aber sowieso die volumenstärksten Coins im Bot verwenden. D.h. die Stärke deiner Methode - Aussortieren von Shitcoins und Scams - kommt nicht richtig zum Tragen.

Ich würde zusätzlich annehmen, dass Github-Aktivitäten erst mit einer gewissen Verzögerung auf den Coinpreis durchschlagen. Insofern ein Indikator mehr für die Zukunft und weniger für den aktuellen Zeitpunkt?

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 40 Minuten schrieb PeWi:

Um etwas gegen deinen oben erwähnten Angriff gehärtet zu sein, muss man aber sowieso die volumenstärksten Coins im Bot verwenden. D.h. die Stärke deiner Methode - Aussortieren von Shitcoins und Scams - kommt nicht richtig zum Tragen.

Um den Angriff ging es mir dabei nicht. Das war nur ein Beispiel um das Risiko zu zeigen. Dagegen gibt es keinen effektiven Schutz. Mal angenommen wir alle hier traden nur BTC gegen USD und auch maximal 1000€. Wenn der Bot am Ende von 1000 Usern in Ähnlicher Art und Weise betrieben wird, mach ich als Angreifer trotzdem Gewinn. Der Angriff kostet mich im realen Leben auch keinen Cent. Ich baue einen Bot der zum Ziel hat das Verhalten anderer Bots zu analysieren. Die meiste Zeit wird mein Bot in kurzen Abständen immer wieder das Order Buch bewundern und dort nach gewissen Mustern suchen. Habe ich ein solches Muster erkannt, kann ich mir eine Strategie überlegen. Im Beispiel habe ich den Preis selber manipuliert aber im realen Leben muss ich das nicht. Ich kann auch einfach warten bis die gewünschte Situation von allein entsteht und dann gezielt zuschlagen. Du verlierst vielleicht nur 100€ aber bei 1000 Usern, die alle mit einem ähnlichen Bot unterwegs sind, lohnt sich das schon. Meine Stärken liegen im Erkennen und ausnutzen solcher Muster. Wenn ich einen Bot schreibe dann nutze ich diese Stärken aus.

Die Seite hatte eher den Sinn um dem Bot auch beizubringen mich vor Fehlentscheidungen zu bewahren. Ein guter Coin kann morgen Tot sein. Es ist besser diesen Umstand als erster zu erkennen. Das Ranking würde genau das ermöglichen. Mein Ziel wäre es eher weiterhin auch manuell zu traden aber einen Bot zur Überwachung zu nutzen. Ich programmiere ein paar Warn Signale die mich rechtzeitig informiert.

Bearbeitet von skunk
  • Love it 1
  • Thanks 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

17 minutes ago, skunk said:

Die meiste Zeit wird mein Bot in kurzen Abständen immer wieder das Order Buch bewundern und dort nach gewissen Mustern suchen. Habe ich ein solches Muster erkannt, kann ich mir eine Strategie überlegen.

Von dieser Möglichkeit habe ich zwar schon gelesen, kann mir aber bis jetzt nichts drunter vorstellen. Kannst du kurz umreißen, wie so ein Orderbuch-Trading funktioniert?

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich bin nun mit allen Lektionen fertig 🙂

Nach einigen Durchläufen hat sich der BalanceBot nun mit seinen ca. 100 USD eingependelt. Mit entsprechenden Parametern wie einer hohen Toleranzschwele gegenüber der Abweichungen vom SOLL tut er nun erstmal stundenlang nix:

1363764480_OhneTitel.thumb.png.09a3483122436c77470d8e1455c4723c.png

In den Logs ist nun gut zu sehen:

- der Bot läuft ordentlich stündlich
- er ermittelt ordentlich die Preise,
- ... den Bestand
- und gibt die jeweiligen Coins als Wert in der Basiswährung (siehe "Status") aus.
- er zeigt an welcher SOLL-Wert eingestellt ist und welches der IST-Wert ist
- er gibt aus welche Aktivitäten er durchgeführt hat oder eben nicht.
- falls er etwas tut, dann zeigt er was er tut und im Fehlerfall gibt er auch den Fehler aus.

So kann das Ding nun die nächsten Wochen einfach mal laufen.

  • Thanks 2
  • Like 4
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Jokin,

Dir und allen wünsche ich ein schönes Neues :)

Morgen werde ich mich über Deinen Link bei Binance registrieren und eine zweite gmx.de-Adresse erstellen. Webspace dürfte ich auch bald zur Verfügung gestellt bekommen.

Ein bezahlter Cointracking-Account scheint mir ebenso notwendig, oder?

Wann wird das Projekt für uns in etwa starten? Ich freue mich jedenfalls schon darauf.

 

 

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

vor 1 Stunde schrieb newbee:

Ein bezahlter Cointracking-Account scheint mir ebenso notwendig, oder?

Warte einfach solange ab bis es unumgänglich erscheint.

Ich glaub 100 Trades gehen gratis in dem Steuerreport - und ich denke die solltest Du erstmal abwarten.

vor 1 Stunde schrieb newbee:

Wann wird das Projekt für uns in etwa starten? Ich freue mich jedenfalls schon darauf.

Ich denke irgendwann nächste Woche.

Den Code zu haben ist ja nur die halbe Miete - das Ding muss ja auch noch soweit dokumentiert sein, dass da auch Laien verstehen was passiert und bei Bedarf wissen wo sie weitere Details dazu nachlesen können.

Zudem finde ich es spannend, wenn auch "Nicht-PHP-Programmierer" verstehen, was der entsprechende Programmiercode anstellen soll um das in ihre Lieblingssprache zu übersetzen. Ich benutze PHP, weil ich da seit Ende der 90er-Webshops und Content-Managementsysteme programmiert hatte. 

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

Am 30.12.2018 um 21:14 schrieb skunk:

Ich betone nochmal. Ich sehe einen Unterschied zwischen einer kleinen Spende und einem halben Monats Gehalt. Du unterschätzt den Aufwand eines solchen Projektes gewaltig und das stört mich. Wenn ich der Meinung bin ein solches Projekt kostenlos und altruistisch durch zu ziehen dann ist das meine Entscheidung. Wenn der Vorschlag aber von dir kommt dann ist das einfach nur unverschämt und gibt mir das Gefühl, dass meine Arbeitszeit nichts Wert ist. Wir reden hier von mehreren Tagen Aufwand. Je nachdem wie groß das Interesse ist, geht da auch schnell ein kompletter Monat für drauf. Also bitte mal die Verhältnisse zwischen einer kleinen Spende und einem Monat kostenloser Arbeit überdenken.

Frohes neues,

Ich hätte besser zwischen Spendenaufruf und nicht zwangsweise einen Bot in dem Suff Post definieren sollen, mein Fehler :) .

Läuft ja ansonsten hier, bin gespannt auf das Ergebnis.

Bearbeitet von avitos
Inhalte gelöscht
  • Up 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

So, nachdem ich den Bot auf einem kleinen Account mit nur knapp 90 USDT laufen hab, hab ich nun den Bot direkt mit einem weiteren Binance-Account in Betrieb genommen, dort liegen Coins im Wert von ca. 210 USDT rum und ich habe die Parameter mal nicht verändert außer dass ich nun anstatt BTC, ETH und ADA dort BTC, ETH und BNB ausbalancieren lasse.

Das Ding ist nun im absoluten Ungleichgewicht, da dort 0,05 BTC liegen und sonst nur Dust. Angesichts des gerade steigenden BTC-Kurses erschien mir der Zeitpunkt günstig die BTC vom Bot in die anderen Währungen umschichten zu lassen.

Im Rahmen der Workshop-Lektionen plane ich auch eine CSV-Datei erzeugen zu lassen, sie sich dann mittels Excel hoffentlich auswerten lässt.

Findet sich hier vielleicht ein Excel-Profi, der die Daten recht fix in ein Diagramm packen kann?

2019-01-06 18:00:38: Status: Portfolio: 89.58 USDT; USDT: 20.04 Soll: 40% Ist: 28.82%; BTC: 30.77 USDT Soll: 40% Ist: 44.25%; ETH: 17.04 USDT Soll: 30% Ist: 24.5%; ADA: 21.73 USDT Soll: 30% Ist: 31.25%; 
2019-01-06 17:00:40: Status: Portfolio: 89.43 USDT; USDT: 20.04 Soll: 40% Ist: 28.88%; BTC: 30.72 USDT Soll: 40% Ist: 44.27%; ETH: 16.99 USDT Soll: 30% Ist: 24.48%; ADA: 21.68 USDT Soll: 30% Ist: 31.25%; 
2019-01-06 16:00:45: Status: Portfolio: 89.49 USDT; USDT: 20.04 Soll: 40% Ist: 28.85%; BTC: 30.67 USDT Soll: 40% Ist: 44.16%; ETH: 17 USDT Soll: 30% Ist: 24.47%; ADA: 21.79 USDT Soll: 30% Ist: 31.37%; 
2019-01-06 16:00:43: Status: Portfolio: 89.07 USDT; USDT: 30.04 Soll: 40% Ist: 50.9%; BTC: 30.67 USDT Soll: 40% Ist: 51.96%; ETH: 17 USDT Soll: 30% Ist: 28.79%; ADA: 11.36 USDT Soll: 30% Ist: 19.25%; 
2019-01-06 15:00:38: Status: Portfolio: 89.1 USDT; USDT: 20.04 Soll: 40% Ist: 29.02%; BTC: 30.65 USDT Soll: 40% Ist: 44.38%; ETH: 16.97 USDT Soll: 30% Ist: 24.58%; ADA: 21.43 USDT Soll: 30% Ist: 31.04%; 
2019-01-06 14:00:40: Status: Portfolio: 88.9 USDT; USDT: 20.04 Soll: 40% Ist: 29.1%; BTC: 30.58 USDT Soll: 40% Ist: 44.41%; ETH: 16.93 USDT Soll: 30% Ist: 24.59%; ADA: 21.34 USDT Soll: 30% Ist: 31%; 
2019-01-06 13:00:39: Status: Portfolio: 89.55 USDT; USDT: 20.04 Soll: 40% Ist: 28.83%; BTC: 30.78 USDT Soll: 40% Ist: 44.28%; ETH: 17.16 USDT Soll: 30% Ist: 24.68%; ADA: 21.57 USDT Soll: 30% Ist: 31.04%; 
2019-01-06 12:00:41: Status: Portfolio: 89.54 USDT; USDT: 20.04 Soll: 40% Ist: 28.84%; BTC: 30.68 USDT Soll: 40% Ist: 44.15%; ETH: 17.1 USDT Soll: 30% Ist: 24.6%; ADA: 21.72 USDT Soll: 30% Ist: 31.25%; 
2019-01-06 11:00:41: Status: Portfolio: 88.71 USDT; USDT: 20.04 Soll: 40% Ist: 29.18%; BTC: 30.43 USDT Soll: 40% Ist: 44.31%; ETH: 16.92 USDT Soll: 30% Ist: 24.63%; ADA: 21.33 USDT Soll: 30% Ist: 31.05%; 
2019-01-06 10:00:37: Status: Portfolio: 88.68 USDT; USDT: 20.04 Soll: 40% Ist: 29.19%; BTC: 30.44 USDT Soll: 40% Ist: 44.35%; ETH: 16.88 USDT Soll: 30% Ist: 24.59%; ADA: 21.33 USDT Soll: 30% Ist: 31.07%; 
2019-01-06 09:00:41: Status: Portfolio: 88.59 USDT; USDT: 20.04 Soll: 40% Ist: 29.23%; BTC: 30.41 USDT Soll: 40% Ist: 44.36%; ETH: 16.86 USDT Soll: 30% Ist: 24.59%; ADA: 21.28 USDT Soll: 30% Ist: 31.05%; 
2019-01-06 08:00:42: Status: Portfolio: 88.57 USDT; USDT: 20.04 Soll: 40% Ist: 29.24%; BTC: 30.45 USDT Soll: 40% Ist: 44.43%; ETH: 16.94 USDT Soll: 30% Ist: 24.71%; ADA: 21.14 USDT Soll: 30% Ist: 30.85%; 
2019-01-06 07:00:38: Status: Portfolio: 88.97 USDT; USDT: 20.04 Soll: 40% Ist: 29.07%; BTC: 30.48 USDT Soll: 40% Ist: 44.22%; ETH: 16.94 USDT Soll: 30% Ist: 24.57%; ADA: 21.51 USDT Soll: 30% Ist: 31.21%; 
2019-01-06 06:00:51: Status: Portfolio: 88.89 USDT; USDT: 20.04 Soll: 40% Ist: 29.11%; BTC: 30.4 USDT Soll: 40% Ist: 44.16%; ETH: 16.93 USDT Soll: 30% Ist: 24.6%; ADA: 21.51 USDT Soll: 30% Ist: 31.24%; 
2019-01-06 05:00:41: Status: Portfolio: 89.02 USDT; USDT: 20.04 Soll: 40% Ist: 29.05%; BTC: 30.42 USDT Soll: 40% Ist: 44.1%; ETH: 16.91 USDT Soll: 30% Ist: 24.52%; ADA: 21.65 USDT Soll: 30% Ist: 31.38%; 
2019-01-06 04:00:46: Status: Portfolio: 88.79 USDT; USDT: 20.04 Soll: 40% Ist: 29.15%; BTC: 30.47 USDT Soll: 40% Ist: 44.32%; ETH: 16.84 USDT Soll: 30% Ist: 24.5%; ADA: 21.44 USDT Soll: 30% Ist: 31.19%; 
2019-01-06 03:00:46: Status: Portfolio: 88.15 USDT; USDT: 20.04 Soll: 40% Ist: 29.42%; BTC: 30.33 USDT Soll: 40% Ist: 44.52%; ETH: 16.74 USDT Soll: 30% Ist: 24.58%; ADA: 21.04 USDT Soll: 30% Ist: 30.9%; 
2019-01-06 02:00:46: Status: Portfolio: 89.53 USDT; USDT: 20.04 Soll: 40% Ist: 28.84%; BTC: 30.58 USDT Soll: 40% Ist: 44.01%; ETH: 17.28 USDT Soll: 30% Ist: 24.87%; ADA: 21.62 USDT Soll: 30% Ist: 31.11%; 
2019-01-06 02:00:45: Status: Portfolio: 89.11 USDT; USDT: 30.04 Soll: 40% Ist: 50.87%; BTC: 30.58 USDT Soll: 40% Ist: 51.78%; ETH: 17.28 USDT Soll: 30% Ist: 29.26%; ADA: 11.2 USDT Soll: 30% Ist: 18.96%; 
2019-01-06 02:00:43: Status: Portfolio: 89.22 USDT; USDT: 20.04 Soll: 40% Ist: 28.97%; BTC: 30.58 USDT Soll: 40% Ist: 44.21%; ETH: 27.39 USDT Soll: 30% Ist: 39.6%; ADA: 11.2 USDT Soll: 30% Ist: 16.19%; 

Die Daten lesen sich folgendermaßen:

Der Gesamtwert des (vom Balancebot verwalteten) Portfolios betrug am 06.01.2019 um 3 Uhr: 88,15 USDT.

Es lagen 20,04 USDT an der Seitenlinie, was 29,41% des Gesamtwertes aller Coins entsprach - Soll-Wert beträgt 40%.
Es lagen BTC im Wert von 30,33 USDT im Portfolio, was einem Anteil von 44,52% des Gesamtwertes aller Coins entsprach - Soll-Wert beträgt 40%.
(... für ETH und ADA analog BTC)

Nun stellt sich die Frage wieso der Bot die Seitenlinie bei unter 30% belässt obwohl doch 40% die SOLL-Vorgabe ist !?!

... da bei Binance mindestens 10 USDT als Order eingestellt werden müssen, würde eine Seitenlinie von 30 USDT zu einem IST-Anteil von ca. 50% entsprechen.
Daher ist es nahezu egal ob nun 10% unter der SOLL-Vorgabe oder 10% über der Soll-Vorgabe.

Um die Seitenlinie anzufüllen müsste der Bot BTC, ETH oder ADA verkaufen.
Bei BTC würde er von 30 USDT auf 20 USDT fallen ... damit also von 44% auf irgendwas unter 30% (grob im Kopf überschlagen), das wäre also unklug.
Bei ETH hat er eh schon weniger im Bestand als das SOLL vorgibt
Bei ADA würde der Bestand auf Nahe 0 fallen - also auch Unsinn da was zu verkaufen.

Somit bleibt alles wie es ist. 

In dem Beispiel ist auch schön das Dilemma des geringen Gesamtwertes von unter 100 USDT zu erkennen ... der Bot kann also derzeit nur darauf warten, dass BTC um über 10% zulegt um da mal was rauszunehmen. Um den Bot dennoch zum Arbeiten zu zwingen habe ich einfach die Soll-Vorgaben jeweils angepasst und ihn so zum erneuten Ausbalancieren gezwungen.

Es sei nebenbei auch angemerkt, dass der Bot eine sehr hohe Toleranzschwelle bei nur 100 USDT eingestellt bekommen muss, die liegt derzeit bei 40% ... Werte unter 10% machen da schon mehr Sinn, aber dann muss wesentlich mehr Kapital im Portfolio liegen - das kann jeder für sich später entscheiden, für den Workshop lasse ich die unter 100 USDT stehen (und im zweiten Bot mit ca. 210 USDT)

Ach so ... als CSV sieht das gerade so aus:

2019-01-06 18:00:38: ; CSV; 89.58 USDT; USDT; 20.04; 40%; 28.82%; BTC; 30.77; USDT; 40%; 44.25%; ETH; 17.04; USDT; 30%; 24.5%; ADA; 21.73; USDT; 30%; 31.25%; 
2019-01-06 17:00:40: ; CSV; 89.43 USDT; USDT; 20.04; 40%; 28.88%; BTC; 30.72; USDT; 40%; 44.27%; ETH; 16.99; USDT; 30%; 24.48%; ADA; 21.68; USDT; 30%; 31.25%; 
2019-01-06 16:00:45: ; CSV; 89.49 USDT; USDT; 20.04; 40%; 28.85%; BTC; 30.67; USDT; 40%; 44.16%; ETH; 17; USDT; 30%; 24.47%; ADA; 21.79; USDT; 30%; 31.37%; 
2019-01-06 16:00:43: ; CSV; 89.07 USDT; USDT; 30.04; 40%; 50.9%; BTC; 30.67; USDT; 40%; 51.96%; ETH; 17; USDT; 30%; 28.79%; ADA; 11.36; USDT; 30%; 19.25%; 
2019-01-06 15:00:38: ; CSV; 89.1 USDT; USDT; 20.04; 40%; 29.02%; BTC; 30.65; USDT; 40%; 44.38%; ETH; 16.97; USDT; 30%; 24.58%; ADA; 21.43; USDT; 30%; 31.04%; 
2019-01-06 14:00:40: ; CSV; 88.9 USDT; USDT; 20.04; 40%; 29.1%; BTC; 30.58; USDT; 40%; 44.41%; ETH; 16.93; USDT; 30%; 24.59%; ADA; 21.34; USDT; 30%; 31%; 
2019-01-06 13:00:39: ; CSV; 89.55 USDT; USDT; 20.04; 40%; 28.83%; BTC; 30.78; USDT; 40%; 44.28%; ETH; 17.16; USDT; 30%; 24.68%; ADA; 21.57; USDT; 30%; 31.04%; 
2019-01-06 12:00:41: ; CSV; 89.54 USDT; USDT; 20.04; 40%; 28.84%; BTC; 30.68; USDT; 40%; 44.15%; ETH; 17.1; USDT; 30%; 24.6%; ADA; 21.72; USDT; 30%; 31.25%; 
2019-01-06 11:00:41: ; CSV; 88.71 USDT; USDT; 20.04; 40%; 29.18%; BTC; 30.43; USDT; 40%; 44.31%; ETH; 16.92; USDT; 30%; 24.63%; ADA; 21.33; USDT; 30%; 31.05%; 
2019-01-06 10:00:37: ; CSV; 88.68 USDT; USDT; 20.04; 40%; 29.19%; BTC; 30.44; USDT; 40%; 44.35%; ETH; 16.88; USDT; 30%; 24.59%; ADA; 21.33; USDT; 30%; 31.07%; 
2019-01-06 09:00:41: ; CSV; 88.59 USDT; USDT; 20.04; 40%; 29.23%; BTC; 30.41; USDT; 40%; 44.36%; ETH; 16.86; USDT; 30%; 24.59%; ADA; 21.28; USDT; 30%; 31.05%; 
2019-01-06 08:00:42: ; CSV; 88.57 USDT; USDT; 20.04; 40%; 29.24%; BTC; 30.45; USDT; 40%; 44.43%; ETH; 16.94; USDT; 30%; 24.71%; ADA; 21.14; USDT; 30%; 30.85%; 
2019-01-06 07:00:38: ; CSV; 88.97 USDT; USDT; 20.04; 40%; 29.07%; BTC; 30.48; USDT; 40%; 44.22%; ETH; 16.94; USDT; 30%; 24.57%; ADA; 21.51; USDT; 30%; 31.21%; 
2019-01-06 06:00:51: ; CSV; 88.89 USDT; USDT; 20.04; 40%; 29.11%; BTC; 30.4; USDT; 40%; 44.16%; ETH; 16.93; USDT; 30%; 24.6%; ADA; 21.51; USDT; 30%; 31.24%; 
2019-01-06 05:00:41: ; CSV; 89.02 USDT; USDT; 20.04; 40%; 29.05%; BTC; 30.42; USDT; 40%; 44.1%; ETH; 16.91; USDT; 30%; 24.52%; ADA; 21.65; USDT; 30%; 31.38%; 
2019-01-06 04:00:46: ; CSV; 88.79 USDT; USDT; 20.04; 40%; 29.15%; BTC; 30.47; USDT; 40%; 44.32%; ETH; 16.84; USDT; 30%; 24.5%; ADA; 21.44; USDT; 30%; 31.19%; 
2019-01-06 03:00:46: ; CSV; 88.15 USDT; USDT; 20.04; 40%; 29.42%; BTC; 30.33; USDT; 40%; 44.52%; ETH; 16.74; USDT; 30%; 24.58%; ADA; 21.04; USDT; 30%; 30.9%; 
2019-01-06 02:00:46: ; CSV; 89.53 USDT; USDT; 20.04; 40%; 28.84%; BTC; 30.58; USDT; 40%; 44.01%; ETH; 17.28; USDT; 30%; 24.87%; ADA; 21.62; USDT; 30%; 31.11%; 
2019-01-06 02:00:45: ; CSV; 89.11 USDT; USDT; 30.04; 40%; 50.87%; BTC; 30.58; USDT; 40%; 51.78%; ETH; 17.28; USDT; 30%; 29.26%; ADA; 11.2; USDT; 30%; 18.96%; 
2019-01-06 02:00:43: ; CSV; 89.22 USDT; USDT; 20.04; 40%; 28.97%; BTC; 30.58; USDT; 40%; 44.21%; ETH; 27.39; USDT; 30%; 39.6%; ADA; 11.2; USDT; 30%; 16.19%; 

... falls da jemand mal ein Excel-Diagramm bauen mag, welches über die Zeitachse (x) das Portfolio mit IST- und SOLL-Werten anzeigt, wäre das ganz cool.

(natürlich kann ich das Diagramm auch mit PHP und SVG-Grafiken bauen, aber der Aufwand erscheint mir derzeit etwas hoch ...)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Huch, das ging ja schneller als gedacht ....

Das Log von unten nach oben lesen ... ich schreib unten was da passiert:

2019-01-06 19:00:40: BALANCE BUY: ETH 0.94+0.4 > 1.2 => do nothing 
2019-01-06 19:00:40: BALANCE SELL: ETH 0.94-0.4 < 1.2 => do nothing 
2019-01-06 19:00:40: BALANCE BUY: ADA 1.2+0.4 > 1.2 => do nothing 
2019-01-06 19:00:40: BALANCE SELL: ADA 1.2-0.4 < 1.2 => do nothing 
2019-01-06 19:00:40: BALANCE BUY: BTC 0.9+0.4 > 1.2 => do nothing 
2019-01-06 19:00:40: ; CSV; 92.47 USDT; USDT; 30.04; 40%; 48.13%; BTC; 22.44; USDT; 40%; 35.94%; ETH; 17.54; USDT; 30%; 28.09%; ADA; 22.45; USDT; 30%; 35.97%; 
2019-01-06 19:00:40: Status: Portfolio: 92.47 USDT; USDT: 30.04 Soll: 40% Ist: 48.13%; BTC: 22.44 USDT Soll: 40% Ist: 35.94%; ETH: 17.54 USDT Soll: 30% Ist: 28.09%; ADA: 22.45 USDT Soll: 30% Ist: 35.97%; 
2019-01-06 19:00:40: OPENORDER: BUY ADAUSDT 222.9 @ 0.04489000 
2019-01-06 19:00:40: Bestand: 243 ADA 
2019-01-06 19:00:40: Bestand: 0.11247023 ETH 
2019-01-06 19:00:40: Bestand: 0.005581 BTC 
2019-01-06 19:00:40: Bestand: 40.04963614 USDT 
2019-01-06 19:00:40: CREATE ORDER: SELL 0.002487 @ 4022.54 BTCUSDT 
2019-01-06 19:00:39: ... Erstelle Order: SELL 0.002487 @ 4022.54 (aktueller Kurs: 4020.08000000) 
2019-01-06 19:00:39: BALANCE SELL: BTC 1.12-0.4 < 0.69 => SELL ... 
2019-01-06 19:00:39: ; CSV; 92.46 USDT; USDT; 20.04; 40%; 27.67%; BTC; 32.43; USDT; 40%; 44.78%; ETH; 17.54; USDT; 30%; 24.21%; ADA; 22.45; USDT; 30%; 31%; 
2019-01-06 19:00:39: Status: Portfolio: 92.46 USDT; USDT: 20.04 Soll: 40% Ist: 27.67%; BTC: 32.43 USDT Soll: 40% Ist: 44.78%; ETH: 17.54 USDT Soll: 30% Ist: 24.21%; ADA: 22.45 USDT Soll: 30% Ist: 31%; 
2019-01-06 19:00:39: OPENORDER: BUY ADAUSDT 222.9 @ 0.04489000 
2019-01-06 19:00:38: Bestand: 243 ADA 
2019-01-06 19:00:38: Bestand: 0.11247023 ETH 
2019-01-06 19:00:38: Bestand: 0.008068 BTC 
2019-01-06 19:00:38: Bestand: 30.04465897 USDT 
2019-01-06 19:00:38: Finde Preis für ADAUSDT: 0.04819000 (24h high/low: 0.04820000 / 0.04302000 
2019-01-06 19:00:37: Finde Preis für ETHUSDT: 155.92000000 (24h high/low: 157.40000000 / 147.51000000 
2019-01-06 19:00:37: Finde Preis für BTCUSDT: 4020.08000000 (24h high/low: 4025.00000000 / 3740.00000000 

Bis Sekunde 38: Der Bot hat die Preise von Binance geladen
Bis Sekunde 39: Der Bot hat alle offenen Order gelesen und den Status ermittelt, dabei hat er eine offene BUY-Order für ADA gefunden und den Status so ermittelt als wäre die ADA-Order bereits erfüllt.
In Sekunde 39 stellt der Bot fest "BALANCE SELL: BTC 1.12-0.4 < 0.69 => SELL ... " ... da gehe ich in Lektion 5 drauf ein, das ist der Kern der Strategie. Der Bot ermittelt, dass es eine gute Idee ist eine SELL-Order für BTC einzustellen. ... im vorherigen Post hatte ich es angekündigt.
In Sekunde 40 legt er die Order auch an, auch die Preisermittlung für die Limitorder ist ein Kernteil der Strategie ... (er nimmt den Mittelwert zwischen aktuellem Kurs und dem 24h-Maximum)
Im Anschluss ermittelt der Bot erneut den Status und findet dabei 2 offene Order, die BUY-Order für ADA und eben die neu angelegte SELL-Order für BTC.

 

... wer sich nun fragt was mit unerfüllten Order wird: Die löscht der Bot nach 12 Stunden selber aus dem Orderbuch und schaut dann erneut was zu tun ist.

  • Like 2
Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 30.12.2018 um 22:00 schrieb skunk:

Egal wie gut dein Quellcode ist am Ende hätten wir trotzdem Vollzugriff auf den API Key. Das gleiche Problem bekommst du mit jedem anderen Dienst. Der Betreiber des Dienstes hat Vollzugriff.

 

Am 31.12.2018 um 00:02 schrieb Jokin:

Ich hatte erwartet, dass Du das selber schreibst, Du hast damit vollkommen recht - dieses Risiko gilt in der Tat für jeden Webhoster.

Um das Risiko konkret zu benennen: Die API-Keys haben keine Withdrawal-Rechte, was nicht vor Schaden schützt, denn selbst mit Trading-Rechten kann eine Menge Schindluder getrieben werden.

Hmm... das hat mir einiges Kopfzerbrechen bereitet :wacko:. 100% Sicherheit gibt es da wohl nicht, aber man könnte das Risiko minimieren:

Da man ohnehin einen Webserver hat, könnte man doch den API-Key nur über eine sichere https-Verbindung (evtl. noch gesichert mit PFS) in ein Formular eingeben um den Bot zu starten. Der Key würde dann nie im Klartext auf der Festplatte rumliegen, wo ihn der Betreiber jederzeit einsehen kann, sondern er wäre nur irgendwo in den Tiefen des Arbeitsspeichers solange der Bot läuft und verschlüsselt unterwegs während der Kommunikation zwischen Bot und API. 

Um trotzdem an den API-Key zu kommen, müsste jemand mindestens SSL-Scanning betreiben. Das könnte aber z.B. auch der Internet-Anbieter oder sonst jemand, bei dem die Datenpakete vorbeikommen, nicht allein unser Hoster... und davor ist man ja auch dann nicht geschützt, wenn man den Server selber betreibt.

Bearbeitet von Herr Coiner
Grammatik
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 12 Minuten schrieb Herr Coiner:

Da man ohnehin einen Webserver hat, könnte man doch den API-Key nur über eine sichere https-Verbindung (evtl. noch gesichert mit PFS) in ein Formular eingeben um den Bot zu starten.

Die https-Verbindung wird zwischen deinem PC und dem Web-Server aufgebaut. Dazwischen kann dann keiner deine Keys mitschneiden. Auf den beiden Endpunkten kann aber jeder den Key auslesen. Der Betreiber des Webserver hat also weiterhin Vollzugriff.

vor 15 Minuten schrieb Herr Coiner:

Der Key würde dann nie im Klartext auf der Festplatte rumliegen, wo ihn der Betreiber jederzeit einsehen kann, sondern er wäre nur irgendwo in den Tiefen des Arbeitsspeichers solange der Bot läuft und verschlüsselt unterwegs während der Kommunikation zwischen Bot und API.

Es ist völlig egal wie du die Sache absicherst, wo und in welcher Form du den Key speicherst. Am Ende willst du eine Abfrage gegen die API machen und in dem Moment brauchst du den API Key. Stell dir das einfach wie ein Keylogger vor. Der läuft auf deinem Server mit und alles was du Richtung API schickst, kann er mitlesen selbst wenn du es über eine HTTPS Verbindung schickst.

vor 20 Minuten schrieb Herr Coiner:

Um trotzdem an den API-Key zu kommen, müsste jemand mindestens SSL-Scanning betreiben. Das könnte aber z.B. auch der Internet-Anbieter oder sonst jemand, bei dem die Datenpakete vorbeikommen, nicht allein unser Hoster... und davor ist man ja auch dann nicht geschützt, wenn man den Server selber betreibt.

Wie gesagt. Alles zwischen den beiden HTTPS Endpunkten kommt höchstens über ein man in the middle Angriff an die Daten. Auf deinem Ende kannst du dich dagegen absichern. Auf dem Server wird das schon etwas schwieriger weil der Web Server dir auch wunderbar seinen eigenen HTTPS-Proxy als vertrauenswürdig verkaufen kann. Der Proxy würde dann direkt selber den man in the middle Angriff durchführen. Du würdest davon nichts merken.

Ist trotzdem unwahrscheinlich weil der man in the middle Angriff völlig unnötig ist. Es reicht völlig wenn sie ein Überwachungsprogramm auf dem Webserver laufen lassen. Damit kommen sie an alle Daten.

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 1 Minute schrieb skunk:

Ist trotzdem unwahrscheinlich weil der man in the middle Angriff völlig unnötig ist. Es reicht völlig wenn sie ein Überwachungsprogramm auf dem Webserver laufen lassen. Damit kommen sie an alle Daten.

Ja, das meinte ich mit SSL-Scanning. Das  Überwachungsprogramm wäre dann quasi der man-in-the-middle.

Logisch: Irgendwo muss die verschlüsselte Nachricht wieder entschlüsselt werden, im Idealfall erst am Ende der Leitung, aber man weiß ja nie... der Internet-Anbieter kann das z.B. auch (er vergibt meines Wissens einen Langzeit-Key), und schließlich könnte ein böser Bube auch ganz am Ende der Leitung sitzen, also bei der API.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gerade eben schrieb Herr Coiner:

Ja, das meinte ich mit SSL-Scanning. Das  Überwachungsprogramm wäre dann quasi der man-in-the-middle.

Logisch: Irgendwo muss die verschlüsselte Nachricht wieder entschlüsselt werden, im Idealfall erst am Ende der Leitung, aber man weiß ja nie... der Internet-Anbieter kann das z.B. auch (er vergibt meines Wissens einen Langzeit-Key), und schließlich könnte ein böser Bube auch ganz am Ende der Leitung sitzen, also bei der API.

Nein! Muss du auf deinem Rechner SSL-Scanning betreiben um die Antwort vom Server zu entschlüsseln? Nein? Warum nicht? Weil du der Endpunkt bist! Dir ist der SSL Schlüssel bekannt weil du der Endpunkt bist! Du entschlüsselst den kompletten SSL Verkehr weil du der Endpunkt bist! Exakt das gleiche gilt auch für den Webserver. Warum sollte der SSL Scanning betreiben wenn er als Endpunkt doch genau sieht was da übertragen wird?

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 28 Minuten schrieb skunk:

Du entschlüsselst den kompletten SSL Verkehr weil du der Endpunkt bist! Exakt das gleiche gilt auch für den Webserver. Warum sollte der SSL Scanning betreiben wenn er als Endpunkt doch genau sieht was da übertragen wird?

Moment... vielleicht reden wir da aneinander vorbei... Der Webserver bekommt eine verschlüsselte Nachricht und entschlüsselt sie, richtig. Aber der Hoster ist doch nicht der Webserver und damit auch nicht der Endpunkt. Der Webserver ist ein Programm (hoffentlich mein Programm), das irgendwie nur die verschlüsselte Nachricht weitergereicht bekommt, oder nicht?

Natürlich kann der Hoster etwas dazwischenschalten, was sich als Endpunkt ausgibt (Proxy) und erst mal selber entschlüsseln, das bestreitet niemand. Aber das müsste er halt absichtlich tun und es wäre wohl illegal. So gesehen würde ich lieber bei einem großen Anbieter hosten als bei einem Herrn Nerd oder skunk ;), weil beim großen Anbieter die W'keit kleiner ist, dass der ausgerechnet meinen API-Key aus dem riesigen Datenverkehr fieselt und missbraucht.

EDIT: Für mich ist das SSL-Sniffing oder -Scanning: Nachrichten entschlüsseln und durchlesen, die man als Hoster eigentlich nur weiterreichen soll.

Bearbeitet von Herr Coiner
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 5 Minuten schrieb Herr Coiner:

Moment... vielleicht reden wir da aneinander vorbei... Der Webserver bekommt eine verschlüsselte Nachricht und entschlüsselt sie, richtig. Aber der Hoster ist doch nicht der Webserver und damit auch nicht der Endpunkt. Der Webserver ist ein Programm (hoffentlich mein Programm), das irgendwie nur die verschlüsselte Nachricht weitergereicht bekommt, oder nicht?

Nein! Der Webserver ist kein Programm sondern ein Container. Du bekommst remote Zugriff auf diesen Container. Du bekommst sogar nur beschränkte Rechte. Der Hoster hat Vollzugriff auf diesen Cointainer und alles was darin läuft. Ich meine das wörtlich. Ich weiß nicht welcher Teil von "Vollzugriff" da jetzt missverständlich sein soll.

vor 10 Minuten schrieb Herr Coiner:

Natürlich kann der Hoster etwas dazwischenschalten, was sich als Endpunkt ausgibt (Proxy) und erst mal selber entschlüsseln, das bestreitet niemand.

Er muss nichts entschlüsseln. Er hat Vollzugriff! Er bekommt alle Daten von dir entschlüsselt und muss sie nur mitlesen.

vor 12 Minuten schrieb Herr Coiner:

Aber das müsste er halt absichtlich tun und es wäre wohl illegal.

Illegal wäre es keine Frage. Das hilft dir aber nichts. In den AGBs ist geregelt, dass du keine Rechte gegenüber dem Betreiber hast. Dafür müsstest du einen der teureren Verträge nehmen wo dir explizit zugesichert wird, dass kein Techniker unbefugt an deinen Server geht und dann auch alles protokollieren muss.

Für den Betreiber ist die Rechnung damit ganz einfach. Stellen wir uns mal vor ich wäre der oberste Admin von dem Laden. Heute habe ich mal vor alle API Keys zu bekommen. Einfach einen Filter eingerichtet der gezielt die API Schnittstelle überwacht und schon habe ich die Keys. Ich kann auch alle Dateien nach der API URL durchsuchen. Der Aufwand für mich an die Keys zu kommen ist wirklich minimal. Jetzt stellt sich die Frage was ich mit den Keys mache. Einfach alle Konten leer zu räumen wäre zu auffällig und ich werde am Ende gekündigt. Andererseits liegt auf einigen Konten eventuell mehr als ich bis zur Rente verdienen würde. Dafür lohnt sich das Risiko schon. In jedem Fall werde ich alle API Keys abspeichern auch wenn sie aktuell noch zu wenig Guthaben haben. Sollte ich gekündigt werden, nehme ich alle Keys mit und werden dann Monate später anfangen vereinzelt Konten leer zu räumen. Wenn dein Konto leer geräumt wurde, dann ist ein Trojaner auf deinem PC der Grund dafür. Das Gegenteil kannst du nicht beweisen. So habe ich am Ende dein Geld und sowohl der Betreiber als auch ich sind fein raus aus der Sache.

vor 24 Minuten schrieb Herr Coiner:

So gesehen würde ich lieber bei einem großen Anbieter hosten als bei einem Herrn Nerd oder skunk ;), weil beim großen Anbieter die W'keit kleiner ist, dass der ausgerechnet meinen API-Key aus dem riesigen Datenverkehr fieselt und missbraucht.

Nerd empfinde ich als eine Beleidigung. Ich habe einen ganz normalen Job so wie du wahrscheinlich auch und bitte um den gleichen Respekt wie ihn auch jeder andere verdient hat.

Das Sicherheitskonzept solltest du dringend überdenken. Ich versuche dir hier zu erklären, dass der Hoster Vollzugriff hat. Das gilt für jeden Hoster egal welche Größe. Ich versuche dir ebenfalls zu erklären, dass es sehr einfach ist an die API Keys zu kommen. Da macht sich niemand die Arbeit ausgerechnet deine API Keys zu bekommen. Wenn dann wird jemand gleich alle API Keys aller Kunden mitschneiden.

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

11 minutes ago, skunk said:

Einfach einen Filter eingerichtet der gezielt die API Schnittstelle überwacht und schon habe ich die Keys

Dumme Frage - damit hast du doch nur die API-Keys, aber nicht die Secrets. Die gehen ja nur in einen SHA ein, der seinerseits in den API-Request eingefügt wird. Durch das reine Mitlesen der Kommunikation mit der API dürfte der Secret nicht zu bekommen sein, oder?

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.