Zum Inhalt springen

Orderbuch über API synchron halten


andiger

Empfohlene Beiträge

Hallo Leute,

 

folgende Problemstellung: ich möchte gern das bitcoin.de orderbuch in meinem kleinen Programm synchron halten. Dazu bietet sich die Websocket API an. Diese liefert u.a. zwei wichtige events: "add_order" und "remove_order". Die API funktioniert auch recht gut, die events trudeln fleissig ein. Die Frage ist jetzt, wo man den initialen Zustand herbkommt, auf den man dann die updates anwendet. Die Trading API liefert mit "showOrderbook" im Grunde das gewünschte ergebnis, allerdings nicht ganz vollständig, nämlich jeweils nur 20 orders auf der buy und sell seite.

im grunde würden mir 20 orders auch reichen, nur wenn sich das order buch in irgend eine richtung "bewegt", habe ich plötzlich grosse lücken... und da helfen mit die updates über die Websocket API wenig, da ja ältere orders unverändert sind, und sich irgend wann auf der top position im orderbuch befinden.

 

sehr schade, da damit die websocket api im grunde nutzlos ist.

oder habe ich irgend etwas übersehen?

BG

André

 
  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich wuerde mir die Preise der 20. SELL- und 20. BUY-Order merken.

 

Sobald sich der Kurs diesen Preisen nähert, würde ich das Orderbuch komplett neu laden.

 

Auf diese Weise hast Du von Zeit zu Zeit auch einen kompletten Abgleich und gehst sicher, dass nicht durch irgendwelche API-Ausfaelle Order nicht abgeglichen sind.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@André: Du könntest mit showOrderbook und den entsprechenden Parametern etwas tricksen:
  • "all"        : "only_kyc_full":0, "only_express_orders":0
  • "xps"      : "only_kyc_full":1, "only_express_orders":1
  • "m5"       : "only_kyc_full":1, "only_express_orders":0, "amount":5
  • "m01"     : "only_kyc_full":0, "only_express_orders":0, "amount":0.1
  • "samebank" : "only_express_orders":0, "only_same_bankgroup":1
Wenn du diese Anfragen hintereinander stellst bekommst du die ~40 ersten Orders einer Seite. Zusammen mit den WS Daten sollte sich ein aktuelles Bild ergeben, wenn du die API-Requests alle paar Minuten wiederholst. Etwas verteilt, leeren die dann auch nicht sofort dein credit-Conto.
In welcher Sprache schreibst du denn? Ich habe etwas ähnliches in python gebaut. Bauteile dafür findest du hier:

https://github.com/matthiaslinden/bitcoinDE_API

Basiert auf einem Asynchronen Framework, also kein warten auf Abschluss der Requests. 

 

@Christoph: Man könnte analog zu showMyOrders und showMyTrades einen page-Parameter einfügen. (Problem, für alle neuen Orders/Remove, zwischen einzelnen API-Requests verschiebt sich die Seitengrenze) 

Bearbeitet von matthias.linden
  • Thanks 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 8 Monate später...
Am 5.4.2017 um 10:32 schrieb Christoph Bergmann:

Danke für den Hinweis. Gebe ich mal weiter. Der Punkt ist angekommen, steht aber bei Bitcoin.de nicht unbedingt ganz oben auf der meistens übervollen To-Do-Liste. Wenn es gut läuft, gibt es aber in den kommenden Monaten ein Update.

Hallo,

gibts inzwischen mal ein Update? Ich sehe via API keine Möglichkeit das Orderbuch zu ermitteln in dem auch mehr als 20 alte Kauf- und Verkauforders erfasst sind.

Wie wäre es wenn man einfach die Anzahl der via API gelieferten Orderbuch  Buy- und Sell-Orders von 20 auf 50 erhöht? Damit wäre den meisten vermutlich schon deutlich geholfen. Andere Anbieter bekommen es ja auch geregelt.

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.