Ich bin für Code suchen, dieKonstrukt Orderbuch von Aufträgen Beispiel
Zum Beispiel Orderbuch von Aufträgen konstruiert, wenn Aufträge sollte
side | price | quantity
buy 100 1
buy 101 10
buy 100 1000
buy 100 10000
dann agregated Orderbuch sein:
side | price | quantity
buy 100 11001
buy 101 10
Während des Programms lebenslange Aufträge werden hinzugefügt, geändert oder gelöscht. Bei jedem Bestellupdate muss ich OrderBook schnell aktualisieren.
Ich bin mir sicher, das ist sehr häufig Aufgabe, so sollte es eine Menge Implementierungen im Internet bereits sein.
Vielen Dank für alle Referenzen, ich bin auf der Suche nach C# Implementierung, aber ich kann es aus einer anderen Sprache neu schreiben, wenn nötig.
upd Eigentlich sollte ich meine Frage neu formulieren. Anfangs ist das Orderbuch leer. Dann erhalte ich Ereignisse: Bestellung hinzufügen, Bestellmenge ändern oder Bestellung stornieren. Ich sollte OrderBook von diesen Nachrichten neu berechnen. Aber jetzt wird mir klar, wie einfach es sein sollte. Wenn die Bestellung hinzugefügt wird, füge ich nur die Menge zu diesem Preis hinzu. Wenn Auftragsmenge geändert wird, muss ich nur "Änderung" addieren und wenn Auftrag annulliert wird, muss ich nur entsprechende Quantität vom entsprechenden Preisniveau entfernen. Die einzige Frage ist, wo sollte ich "letzte Bestellmenge" speichern. Insgesamt gibt es viele Bestellungen (Dutzende von Millionen), aber es gibt nicht viele aktive Bestellungen (nicht mehr als 100 000) und für jede aktive Bestellung muss ich erhalte "last quantity" by orderId ... Natürlich kann ich das Wörterbuch benutzen, aber das wäre wahrscheinlich zu langsam. Ich will etwas schneller. Aber ich kann nicht 50 000 000 Elemente Array verwenden.
"Es sollte bereits viele Implementierungen im Internet geben". Ich bezweifle das. Es kann jedoch kommerzielle Implementierungen solcher Sachen geben. –
Oh, und bitte sehen Sie http://mattgememm.com/2008/12/08/what-have-you-tried/ für das nächste Mal –
ich denke, ociweb Liquibook ist die beliebteste Open-Source-Implementierung von Orderbook – javapowered