OrderBook
Auftragsbuchdurchführung.
Implementiert: IOrderBook
Konstruktoren
public OrderBook(SecurityId securityId)
orderBook = OrderBook(securityId)
Auftragsbuchdurchführung.
Eigenschaften
public ValueTuple<decimal, decimal>? BestAsk { get; }
value = orderBook.BestAsk
Holen Sie sich beste fragen Preis und Volumen.
public ValueTuple<decimal, decimal>? BestBid { get; }
value = orderBook.BestBid
Holen Sie sich den besten Gebotspreis und das beste Volumen.
public decimal TotalAskVolume { get; }
value = orderBook.TotalAskVolume
Gesamtvolumen aller Anfragen.
public decimal TotalBidVolume { get; }
value = orderBook.TotalBidVolume
Gesamtvolumen aller Gebote.
Methoden
public void AddQuote(EmulatorOrder order)
orderBook.AddQuote(order)
Fügen Sie ein Zitat zum Auftragsbuch hinzu.
- order
- Wenn TransactionId standardmäßig ist, wird es als Marktangebot behandelt.
public void Clear(Sides side)
orderBook.Clear(side)
Löschen Sie alle Zitate für eine bestimmte Seite.
- side
- Seite zu klar.
public void Clear()
orderBook.Clear()
Löscht alle Adapterzustände und setzt den aktuellen Zustand auf Disconnected zurück.
public IEnumerable<ValueTuple<decimal, decimal, IReadOnlyList<EmulatorOrder>>> ConsumeVolume(Sides side, decimal? maxPrice, decimal volume)
result = orderBook.ConsumeVolume(side, maxPrice, volume)
Verbrauchen Sie Volumen von den besten Ebenen (für das Matching).
- side
- Seite zu konsumieren von (im Gegensatz zu der Bestellung Seite).
- maxPrice
- Maximalpreis für Kauf / Minimum für Verkauf.
- volume
- Volumen zu verbrauchen.
Rückgabe: Ausführung (Preis, Volumen, betroffene Aufträge).
public IEnumerable<OrderBookLevel> GetLevels(Sides side)
result = orderBook.GetLevels(side)
Holen Sie sich Angebote für eine Seite, geordnet nach Preis (bester zuerst).
- side
- Seite, um Levels für abzurufen.
public IEnumerable<EmulatorOrder> GetOrdersAtPrice(Sides side, decimal price)
result = orderBook.GetOrdersAtPrice(side, price)
Erhalten Sie alle Benutzerbestellungen zu einem bestimmten Preisniveau.
- side
- Seite zur Abfrage.
- price
- Preisniveau für die Abfrage.
public decimal GetTotalVolume(Sides side)
result = orderBook.GetTotalVolume(side)
Holen Sie sich das Gesamtvolumen für eine Seite.
- side
- Seite, um das gesamtvolumen für.
public decimal GetVolumeAtPrice(Sides side, decimal price)
result = orderBook.GetVolumeAtPrice(side, price)
Holen Sie sich Volumen zu einem bestimmten Preisniveau.
- side
- Seite zur Abfrage.
- price
- Preisniveau für die Abfrage.
public ValueTuple<decimal, decimal>? GetWorstAsk()
result = orderBook.GetWorstAsk()
Am schlechtesten (höchste) fragen Ebene.
public ValueTuple<decimal, decimal>? GetWorstBid()
result = orderBook.GetWorstBid()
Am schlechtesten (niedrigsten) Gebotsniveau.
public bool HasLevel(Sides side, decimal price)
result = orderBook.HasLevel(side, price)
Überprüfen Sie, ob es ein Angebot zum angegebenen Preis gibt.
- side
- Seite zu überprüfen.
- price
- Preisniveau zu überprüfen.
public IEnumerable<EmulatorOrder> RemoveLevel(Sides side, decimal price)
result = orderBook.RemoveLevel(side, price)
Entfernen Sie das gesamte Niveau zum Preis.
- side
- Seite, um das Niveau zu entfernen.
- price
- Preisniveau zu entfernen.
Rückgabe: Entfernte Bestellungen, die auf dieser Ebene vorhanden waren.
public bool RemoveQuote(long transactionId, Sides side, decimal price)
result = orderBook.RemoveQuote(transactionId, side, price)
Entfernen Sie ein Zitat aus dem Orderbuch.
- transactionId
- Transaktions-ID des Auftrages zu entfernen.
- side
- Seite (Kaufen/Verkaufen), auf der die Bestellung aufgegeben wird.
- price
- Preisniveau der Bestellung.
Rückgabe: Wahr, wenn entfernt, falsch, wenn nicht gefunden.
public void SetSnapshot(IEnumerable<QuoteChange> bids, IEnumerable<QuoteChange> asks)
orderBook.SetSnapshot(bids, asks)
Legen Sie das Auftragsbuch aus einem Snapshot fest (ersetzt alle Nicht-Benutzer-Zitate).
- bids
- Die Reihenfolge der Gebotsnotierung ändert sich auf Set.
- asks
- Die Reihenfolge des Ask-Zitats ändert sich auf set.
public QuoteChangeMessage ToMessage(DateTime localTime, DateTime serverTime)
result = orderBook.ToMessage(localTime, serverTime)
Erstellen Sie ein QuoteChangeMessage aus dem aktuellen Zustand.
- localTime
- Lokale Zeit, um die generierte Nachricht einzustellen.
- serverTime
- Serverzeit, um die generierte Nachricht einzustellen.
public IEnumerable<EmulatorOrder> TrimToDepth(Sides side, int maxDepth)
result = orderBook.TrimToDepth(side, maxDepth)
Entfernen Sie die schlechtesten Ebenen, die die maximale Tiefe überschreiten.
- side
- Seite zum trimmen.
- maxDepth
- Maximal zulässige Tiefe zu halten.
Rückgabe: Entfernte Bestellungen aus getrimmten Levels.
public bool TryRemoveOrder(long transactionId, Sides side, EmulatorOrder order)
result = orderBook.TryRemoveOrder(transactionId, side, order)
Finden und entfernen Sie die Bestellung per Transaktions-ID von jedem Level.
public void UpdateLevel(Sides side, decimal price, decimal volume)
orderBook.UpdateLevel(side, price, volume)
Aktualisierungsvolumen auf einem Preisniveau (für Marktkurse).
- side
- Seite zum Update.
- price
- Preisniveau zu aktualisieren.
- volume
- Neues Marktvolumen auf dem Niveau.