MtGox api - Verfolgung von Geboten/Anfragen, die storniert werden

Ich fange mit der Mtgox-API an. Ich benutze diese Seite hauptsächlich , um mir zu sagen, wie man sie benutzt.

Was ich derzeit habe, ist, dass ich die Tiefe abrufen und dann die Gebote und Nachfragen in „Buckets“ (jeweils eine Preisspanne) setzen kann und Ihnen das Volumen für jeden Bucket mitteilen kann.

Jetzt möchte ich in der Lage sein, dies jede Sekunde oder so auf dem neuesten Stand zu halten.

Also müsste ich im Auge behalten:

  • Trades werden getätigt (dh Gebote/Anfragen werden erfüllt).

  • Neue Gebote/Anfragen.

  • Gebote/Anfragen werden storniert.

Es sieht so aus, als ob die alte Version der API die Nettoänderung bei jedem Volume anzeigen könnte, aber dies scheint bei der neuen Version nicht der Fall zu sein.

Wie würde ich vorgehen?

Antworten (2)

Es gibt zwei Möglichkeiten, wie Sie dies tun können.

1) MtGox-Umfrage-API V2. Rufen Sie an getFullDepth, um das vollständige Orderbuch herunterzuladen. Dann fordern Sie getPartialDepthUpdates an und ersetzen alle Orders in Ihrem masterOrderbuch. Diese Methode ist nicht sehr effizient und Sie können nur in einem gedrosselten Tempo abfragen.

Hier ist eine Demo aus dem Open-Source-Projekt XChange zum einfachen Abfragen des partiellen Auftragsbuchs und zum Erstellen eines Auftragsbuchdiagramms.

2) MtGox Polling API V2 + Streaming. Rufen Sie getFullDepthan, um das vollständige Orderbuch herunterzuladen. Anschließend verwenden Sie die Streaming-API, um depthEreignisse zu empfangen und Ihr masterAuftragsbuch entsprechend zu aktualisieren. Tiefenaktualisierungen mit einem Betrag von Null bedeuten, dass die Aufträge storniert oder ausgeführt wurden, dh sie existieren nicht mehr und Sie können sie entfernen.

Hier ist eine Demo des Open-Source-Projekts XChange.

Ihr Link zur "alten Version der API" führt tatsächlich zur Streaming-API , die noch verfügbar ist. Nur die http-Version wurde aktualisiert und von dort aus scheint es schwierig zu sein, genaue Tiefeninformationen zuverlässig für genaue Zeiträume zu erhalten.

Also würde ich beim Streamen bleiben. Aktualisiert viel mehr in Echtzeit für Ihre Anforderungen.

Jetzt haben sie das Feld deep:volume als veraltet markiert, aber sie haben immer noch volume_int, was volume change * 1E8 ist, sodass Sie daraus Volumen erhalten können:

//js for example
var volume = volume_int * Math.pow(10,-8);

Schauen Sie sich die Github-Beispiele unten auf der Wiki-Seite an, um den Einstieg zu erleichtern. Zum Beispiel diese