Khan Posted October 10, 2017 Posted October 10, 2017 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üßenBitcoin Deutschland AG
Khan Posted October 14, 2017 Author Posted October 14, 2017 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?
Serpens66 Posted October 14, 2017 Posted October 14, 2017 (edited) 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). Edited October 14, 2017 by Serpens66
Khan Posted October 14, 2017 Author Posted October 14, 2017 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
Khan Posted October 17, 2017 Author Posted October 17, 2017 habe die letzten tage mein skript die creditanzahl dokumentieren lassen. habe platin level und der höchste wert war 38 Credits......
Serpens66 Posted October 17, 2017 Posted October 17, 2017 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.
Khan Posted October 18, 2017 Author Posted October 18, 2017 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 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.
Khan Posted October 19, 2017 Author Posted October 19, 2017 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?!
Serpens66 Posted October 19, 2017 Posted October 19, 2017 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.
Khan Posted October 19, 2017 Author Posted October 19, 2017 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.....
Serpens66 Posted October 20, 2017 Posted October 20, 2017 (edited) 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. Edited October 20, 2017 by Serpens66 1
Khan Posted October 20, 2017 Author Posted October 20, 2017 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.
Serpens66 Posted October 20, 2017 Posted October 20, 2017 (edited) 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 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 :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 Edited October 20, 2017 by Serpens66 1
Khan Posted October 20, 2017 Author Posted October 20, 2017 (edited) 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. Edited October 20, 2017 by Khan
matthias.linden Posted October 20, 2017 Posted October 20, 2017 (edited) 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. Edited October 20, 2017 by matthias.linden 1 1
Serpens66 Posted October 20, 2017 Posted October 20, 2017 (edited) 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 =/ Edited October 20, 2017 by Serpens66
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now