Zum Inhalt springen

Umstellung der Trading-API von Bitcoin.de


Khan

Empfohlene Beiträge

Email von bitcoin.de

 

Sehr geehrter Herr Khan,

wir möchten Sie auf eine wichtige Änderungen unserer Trading-API aufmerksam machen.

In Kürze werden Sie auf Bitcoin.de auch andere Währungen als Bitcoin (BTC) über die Trading-API handeln können. Zunächst wird der API-Handel von "Bitcoin Cash" (BCH) und später der Handel von Ether (ETH) ermöglicht.

Damit Sie die Trading-API auch für anderen Kryptowährungen verwenden können, ist eine Umstellung der Trading-API bzw. die Nutzung einer neuen API-Version notwendig. Für viele Methoden der API wird die Angabe eines “Handelspaares” bzw. einer Kryptowährung notwendig.

Details zu der neuen Version der Trading-API ("v2") finden Sie in Ihrem Konto unter "> mein Bitcoin.de > Trading-API" oder direkt unter folgender Adresse:

https://www.bitcoin.de/de/api/tapi/v2/docu

Um weitere Kryptowährungen über die Trading-API handeln zu können, ist die Verwendung der neuen API-Version "v2" notwendig. Die bisherige API-Version "v1" kann noch bis Ende des Jahres verwendet werden.

Wir wünschen Ihnen viel Erfolg bei dem Handel auf Bitcoin.de

Mit freundlichen Grüßen
Bitcoin Deutschland AG

Link zu diesem Kommentar
Auf anderen Seiten teilen

da nun die API auch für BCH und später für ETH verwendet werden kann.

Würde mich interessieren ob damit auch die Creditanzahl erhöht wird.

Da nun bei einem gleichzeitigen Handel von3 verschd. Coins unweigerlich auch der Verbrauch der Credits zunimmt.

 

Also wird das Creditguthaben erhöht?

oder für jeden Coin ein separates Creditguthaben bereitsgestellt?

Link zu diesem Kommentar
Auf anderen Seiten teilen

da nun die API auch für BCH und später für ETH verwendet werden kann.

Würde mich interessieren ob damit auch die Creditanzahl erhöht wird.

Da nun bei einem gleichzeitigen Handel von3 verschd. Coins unweigerlich auch der Verbrauch der Credits zunimmt.

 

Also wird das Creditguthaben erhöht?

oder für jeden Coin ein separates Creditguthaben bereitsgestellt?

Hast du mal auf deine credits (wenn du nen call machst in der Antwort) geachtet? Ich hab da leider schon länger nicht mehr drauf geachtet, weiß also auch nicht ob die vllt durch die Einführung von "Platin" schon geändert wurden, aber ich hab 40 Credits. Ich meine vor ein paar Monaten waren das noch 20 (bei Gold status, als es noch kein Platin gab). Bearbeitet von Serpens66
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hast du mal auf deine credits (wenn du nen call machst in der Antwort) geachtet? Ich hab da leider schon länger nicht mehr drauf geachtet, weiß also auch nicht ob die vllt durch die Einführung von "Platin" schon geändert wurden, aber ich hab 40 Credits. Ich meine vor ein paar Monaten waren das noch 20 (bei Gold status, als es noch kein Platin gab).

ah okay

ne da hab ich nicht drauf geachtet

danke :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

habe die letzten tage mein skript die creditanzahl dokumentieren lassen.

 

habe platin level und der höchste wert war 38 Credits......

ja, also so wie ich 40 (2 credits hat der call ja gekostet).

Von 20 auf 40 nach Hinzufügen von 2 neuen Paaren ist natürlich nicht linear, aber immerhin ein Anfang.

Link zu diesem Kommentar
Auf anderen Seiten teilen

ja, also so wie ich 40 (2 credits hat der call ja gekostet).

Von 20 auf 40 nach Hinzufügen von 2 neuen Paaren ist natürlich nicht linear, aber immerhin ein Anfang.

ja klar hab ich nicht dran gedacht :D

danke

 

stimmt an sich wäre doch eine aufteilung der credits pro währung sinnvoll.

also 20 credits für eth

20 für btc und 20 für bch.

Link zu diesem Kommentar
Auf anderen Seiten teilen

aber ganz Sinn macht das mit den 40 Credits nicht. Denn trotzdem bekomme ich nur 1 Credit pro Sekunde.

 

"Das Credit-Kontingent wird pro Sekunde, in der keine API-Abfrage gestellt wird, um einen Credit erhöht solange das Credit-Maximum noch nicht erreicht wurde."

 

Das müsst doch dann auch erhöht werden.

Sonst bringt mir die größere Anzahl der Credits nicht so viel oder?!

Link zu diesem Kommentar
Auf anderen Seiten teilen

aber ganz Sinn macht das mit den 40 Credits nicht. Denn trotzdem bekomme ich nur 1 Credit pro Sekunde.

 

"Das Credit-Kontingent wird pro Sekunde, in der keine API-Abfrage gestellt wird, um einen Credit erhöht solange das Credit-Maximum noch nicht erreicht wurde."

 

Das müsst doch dann auch erhöht werden.

Sonst bringt mir die größere Anzahl der Credits nicht so viel oder?!

kannst du deine Denkschritte noch erläutern, wieso du zu der Annahme kommst?

Aktuell denke ich, dass du nun (bei Kosten von 2 credits pro Call) 20 statt 10 calls direkt hintereinander machen kannst.

 

Prinzipiell bringt es also schon was, allerdings bin ich mir unschlüssig wie sich das "in der keine API-Anfrage gestellt wird" genau auswirkt. Das war mir so noch garnicht richtig bewusst, dass wenn ich jede Sekunde einen Call mache, sich meine credits garnicht erholen, selbst wenn die credit kosten nur 1 pro call wären.

Wenn dieser Zusatz nicht wäre, dann würde die Erhöhung auf 40 aufjedenfall sinn ergeben. Mit dem Zusatz bin ich mir nicht so sicher.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja genau das meine ich ja. Wenn ich eben jetzt mehr calls machen kann erholen sich meine Credits trotzdem nicht schneller. Mehr calls und schneller Erholung wäre meiner Meinung nach angemessener.

 

Hätte ich einen bot der BTC handelt möchte aber nun auch einen bot für Bch laufen lassen. Brauch ich vereinfacht gesagt doppelt soviele credits wie bisher. Aber nun brauch ich 40 Sekunden bis ich wieder alle Credits habe. Wenn ich davon ausgehe alle Credits verwendet zu haben. Nun müssen meine bots 40 sek lang warten. Bisher würde mein BTC bot alleine aber nur 20 sek warten.....

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja genau das meine ich ja. Wenn ich eben jetzt mehr calls machen kann erholen sich meine Credits trotzdem nicht schneller. Mehr calls und schneller Erholung wäre meiner Meinung nach angemessener.

 

Hätte ich einen bot der BTC handelt möchte aber nun auch einen bot für Bch laufen lassen. Brauch ich vereinfacht gesagt doppelt soviele credits wie bisher. Aber nun brauch ich 40 Sekunden bis ich wieder alle Credits habe. Wenn ich davon ausgehe alle Credits verwendet zu haben. Nun müssen meine bots 40 sek lang warten. Bisher würde mein BTC bot alleine aber nur 20 sek warten.....

hmhm... scheinst recht zu haben.

Besonders wenn man um BTC zu traden mitsamt orderbook, balance, openorders, orders platzieren und canceln "nur" einen Call alle 3 sekunden oderso macht, und damit 2 sekunden hat, in denen man wieder 2 credits aufgeladen bekommt und somit bei Annahme dass pro Call 2 credits gebraucht werden, nie der 0 näher kommt,..so bedeuten nun 3 statt 1 Paar, dass man durchschnittlich nicht alle 3 sekunden, sondern nun jede sekunde nen Call macht, was automatisch nicht zur Erholung führt...

 

Hast du mal beobachtet, ob das tatsächlich so streng ist, wie es klingt, also dass die credits sich garnicht erholen, wenn man einen call zb. alle 0.9 sekunden macht? Wenn dem wirklich so ist, müsste man tatsächlich nochmal mit dem support sprechen.

 

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

hmhm... scheinst recht zu haben.

Besonders wenn man um BTC zu traden mitsamt orderbook, balance, openorders, orders platzieren und canceln "nur" einen Call alle 3 sekunden oderso macht, und damit 2 sekunden hat, in denen man wieder 2 credits aufgeladen bekommt und somit bei Annahme dass pro Call 2 credits gebraucht werden, nie der 0 näher kommt,..so bedeuten nun 3 statt 1 Paar, dass man durchschnittlich nicht alle 3 sekunden, sondern nun jede sekunde nen Call macht, was automatisch nicht zur Erholung führt...

 

Hast du mal beobachtet, ob das tatsächlich so streng ist, wie es klingt, also dass die credits sich garnicht erholen, wenn man einen call zb. alle 0.9 sekunden macht? Wenn dem wirklich so ist, müsste man tatsächlich nochmal mit dem support sprechen.

 

hab mal btc und bch bot nebeneinander laufen lassen und da hab andauernd die anzeige "insufficient credits" bekommen.

eben mit den abfragen orderbook balance, orders etc...

natürlich hab ich den ablauf beider bots nicht aufeinander angepasst. das wäre eine möglichkeit. Aber es ist auch nicht möglich mit der anfrage orderbook die orderbooks aller drei währungen auf einmal zu bekommen oder? sondern pro abfrage das orderbook je währung. also brauch ich alleine drei abfrage um alle drei orderbooks zu bekommen...

Ob es sich nun nach 0.9 oder wirklich erst ab 1sek erholt weiß ich nicht. Ich gehe mal davon aus das es 1 sek ist den so steht es in der doku.

Link zu diesem Kommentar
Auf anderen Seiten teilen

0.9 hatte ich geschrieben, weil der api call ja auch zeit dauert und ich naiverweise davon ausgeht, dass es sich ungefähr zu 1 summiert :D

Hab aber natürlich vergessen, dass bitcoin.de api calls deutlich länger dauern, sodass man selbst wenn man nonstop neue calls chickt, sobald einer fertig ist, in der regel unter 1 call pro sekunden bleibt.

Dh. das Problem kommt tatsächlich erst richtig zum tragen, wenn man mehrere paare parallel tradet. Auch sollte man ziemlich schnell "nonce" errors bekommen, oder? Immer wenn mein Bot läuft und ich dann "manuell" mal via api das orderbook abfrage oder ne order erstelle, bekommt mein bot "invalid nonce".

 

So habs nun mal eben getestet, balance abzufragen geht erstaunlicherweise recht fix ~0.2 sekunden oderso, das war früher ganz anders :D:
Wie vermutet, ist es doch nicht so schlimm, wie es sich anhört. Wäre auch absoluter Blödsinn, wenn die credits sich nicht erholen würden, nur weil man in der sekunden einen call gemacht hat. Soweit ich erkennen kann, erholen sich die credits jede sekunde um 1, egal wie oft man calls macht, selbst wenn man es in 0.5 sekunden abstand macht oderso.

Dh. das Problem ist keins.

 

Aber du hast dennoch recht damit, dass die anzahl nicht hilft. Denn für einen bot zählen ja schließlich die Calls pro Zeiteinheit die er machen kann.
Und ob ich nun 20 Calls in 20 sekunden machen kann, oder 40 Calls in 40 sekunden, ist iwie keine Änderung (außer ich hab jetzt auch nen Denkfehler).
Das einzige was sich verändert hat, ist quasi der "Puffer" wie oft du schneller als erlaubt sein darfst.

 

Ich schreib auch mal den support an und frag nach. Auch bezüglich nonce bräuchte man ne Lösung.

 

edit:

hab dem support folgendes geschrieben:

 

Guten Tag,

ein User und ich diskutieren gerade über das Traden mehrerer Paare auf bitcoin.de via API.

Dabei fällt uns auf, dass dies mit der aktuellen API v2 aus 2 Gründen nicht gut möglich ist:
1) Das Credits System ist nicht darauf ausgelegt.
2) Bei simultanen traden mehrerer Paare bekommt man vermutlich "invalid nonce" Fehler.

Zu 1.
Soweit ich erkennen kann gelten dieselben credit Regeln wie zuvor, mit dem Unterschied, dass die maximale Creditzahl auf 40 für platin angehoben wurde? Dennoch erholen sich die Credits wie zuvor nur um 1 pro Sekunde. Für einen Bot ist aber genau diese Zahl, wieviele calls pro Sekunde er machen darf, die entscheidende Größe. Die 40 ist nur eine Zahl die aussagt, wie oft ich ohne Strafe "schneller als erlaubt" sein kann. Damit lässt sich aber nicht sinnvoll arbeiten. Daher bleibt es bei 1 Call alle 2 sekunden (beim Verbrauch von 2 credits pro Call), egal wie hoch sie die maximalen Credits setzen. Und das ist bei drei Paaren einfach zu wenig.

mögliche Lösung zu 1:
- Man könnte mehrere Creditsysteme einbauen, eins für Calls ohne Pair, und eins für jeden Call mit pair. Soll heißen jedes Paar bekommst seinen eigenen credit zähler mit eigener erhöhung um 1 pro sekunde. Darüber, auch als user, den Überblick zu behalten dürfte allerdings schwer sein, ist also keine optimale Lösung.

- Oder man entfernt sich komplett vom credits System und sagt schlicht "Bronze 6 Calls pro Minute - Platin 120 Calls pro Minute" oder sowas.

- Oder man bleibt beim credit System und macht es ähnlich wie Kraken.com. Diese haben quasi ein identisches System zu bitcoin.de, aber mit dem Unterschied, dass je höher das Level des Users, desto schneller erholen sich die Calls:
"Tier 2 users have a maximum of 15 and their count gets reduced by 1 every 3 seconds. Tier 3 and 4 users have a maximum of 20; the count is reduced by 1 every 2 seconds for tier 3 users, and is reduced by 1 every 1 second for tier 4 users."
Nun klingt "1 every 1 second" für das höchste Level etwas wenig. Das ist es auch. Aber auf Kraken kann man bis zu  16 API Keys erstellen, welcher jeder sein eigenes Limit hat. Zusätzlich kosten platzieren/canceln von Orders keine credits.

Damit kommen wir auch schon zu 2.
- Um das invalid nonce Problem zu umgehen, könnte man ebenfalls mehrere API Keys einführen und nutzt dann jeweils einen pro Paar.
- Alternativ müsste bitcoin.de ein erlaubtes Zeitfenster für den nonce einbauen. Dh. der nonce muss nicht jedesmal höher als zuvor sein. Sondern er muss zb +-10 als der vorherige Wert sein. So ist das zb auf Kraken möglich.

Ich hoffe Sie beschäftigen sich mit diesen Problemen und möglichen Lösungen.

MfG

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

Soweit ich erkennen kann, erholen sich die credits jede sekunde um 1, egal wie oft man calls macht, selbst wenn man es in 0.5 sekunden abstand macht oderso.

Dh. das Problem ist keins.

 

 

Also stimmt somit die Dokumentation nicht weil dort heißt es das pro Sekunde in der keine api Anfrage gemacht wird sich die Credits um eins erhöhen.

 

Das der API call dauert hatte ich nicht mit bedacht. Danke für die Erläuterung.

 

Und danke das du den Support angeschrieben hast.

 

Möglichkeit den Fehler mit der Invalide nonce zum umgehen wäre es z.b. BTC und Bch in einem Skript zu traden dann würden alle Anfragen nacheinander Ablaufen und nicht parallel.

Bearbeitet von Khan
Link zu diesem Kommentar
Auf anderen Seiten teilen

Das nonce-Problem lässt sich umgehen, indem man mehrere API-keys für unterschiedliche Währungspaare anlegt. Die nonce gilt immer nur für einen API-key.

Meiner Erfahrung nach Stimmt die Dokumentation (1 credit/s) nur wenn man bei (kleiner gleich) 0 credits ist. Dann muss man wirklich warten, damit die

sich wieder ins positive bewegen.

 

Ich frage das Orderbook nur alle 10 Minuten zur Referenz ab und fülle es ansonsten via WebsocketAPI auf. Da spart man sich viele teure Abfragen.

Und mit 40 credits könnte ein Bot am Stück 40 orders erstellen/annhemen oder 20 deleten. Das ist im Vergleich zu den Möglichkeiten eines websiten-Nutzers sehr viel.

 

Früher kam der credit-Algorithmus aus dem Schritt, wenn man mehrer Calls parallel schnell hintereinander auf den Weg gebracht hat. Dann wurde nur der letzte berechnet. Die Zeiten sind leider vorbei.

Bearbeitet von matthias.linden
  • Love it 1
  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Das nonce-Problem lässt sich umgehen, indem man mehrere API-keys für unterschiedliche Währungspaare anlegt. Die nonce gilt immer nur für einen API-key.

Meiner Erfahrung nach Stimmt die Dokumentation (1 credit/s) nur wenn man bei (kleiner gleich) 0 credits ist. Dann muss man wirklich warten, damit die

sich wieder ins positive bewegen.

 

Ich frage das Orderbook nur alle 10 Minuten zur Referenz ab und fülle es ansonsten via WebsocketAPI auf. Da spart man sich viele teure Abfragen.

Und mit 40 credits könnte ein Bot am Stück 40 orders erstellen/annhemen oder 20 deleten. Das ist im Vergleich zu den Möglichkeiten eines websiten-Nutzers sehr viel.

 

Früher kam der credit-Algorithmus aus dem Schritt, wenn man mehrer Calls parallel schnell hintereinander auf den Weg gebracht hat. Dann wurde nur der letzte berechnet. Die Zeiten sind leider vorbei.

Dass man mehrer API Keys machen kann wusste ich nicht, hab ich scheinbar verdrängt, weil ich dachte dass es keinen Nutzen hat, da sie ja dasselbe credit limit verwenden.

Aber gut zu wissen, dann ist das mit dem nonce kein Problem :)

websocket ist natürlich richtig, aber spätestens wenn noch 1-2 paare hinzukommen, reichts trotzdem nicht =/

 

Bearbeitet von Serpens66
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.