OrderBook

StockSharp.MatchingEngine

Реализация книги заказов.

Реализует: IOrderBook

Конструкторы

OrderBook
public OrderBook(SecurityId securityId)
orderBook = OrderBook(securityId)

Реализация книги заказов.

Свойства

AskLevels
public int AskLevels { get; }
value = orderBook.AskLevels

Количество уровней запросов.

BestAsk
public ValueTuple<decimal, decimal>? BestAsk { get; }
value = orderBook.BestAsk

Лучше всего спросить цену и объем.

BestBid
public ValueTuple<decimal, decimal>? BestBid { get; }
value = orderBook.BestBid

Получите лучшую цену и объем предложения.

BidLevels
public int BidLevels { get; }
value = orderBook.BidLevels

Количество уровней ставок.

SecurityId
public SecurityId SecurityId { get; }
value = orderBook.SecurityId

SecurityId

TotalAskVolume
public decimal TotalAskVolume { get; }
value = orderBook.TotalAskVolume

Общий объем всех запросов.

TotalBidVolume
public decimal TotalBidVolume { get; }
value = orderBook.TotalBidVolume

Общий объем всех заявок.

Методы

AddQuote
public void AddQuote(EmulatorOrder order)
orderBook.AddQuote(order)

Добавьте котировку в книгу заказов.

order
Ордер или рыночная котировка для добавления. Если TransactionId установлено по умолчанию, оно рассматривается как рыночная котировка.
Clear
public void Clear(Sides side)
orderBook.Clear(side)

Очистить все кавычки для конкретной стороны.

side
Сторону очистить.
Clear
public void Clear()
orderBook.Clear()

Очищает все состояния адаптера и сбрасывает текущее состояние на «Отключено».

ConsumeVolume
public IEnumerable<ValueTuple<decimal, decimal, IReadOnlyList<EmulatorOrder>>> ConsumeVolume(Sides side, decimal? maxPrice, decimal volume)
result = orderBook.ConsumeVolume(side, maxPrice, volume)

Потребляйте объем с лучших уровней (для соответствия).

side
Сторона потребления (противоположная стороне заказа).
maxPrice
Максимальная цена покупки/минимальная цена продажи.
volume
Объем потребления.

Возвращает: Исполнения (цена, объем, затронутые ордера).

GetLevels
public IEnumerable<OrderBookLevel> GetLevels(Sides side)
result = orderBook.GetLevels(side)

Получите расценки на сторону, упорядоченные по цене (лучшее в первую очередь).

side
Сторона, для которой нужно получить уровни.
GetOrdersAtPrice
public IEnumerable<EmulatorOrder> GetOrdersAtPrice(Sides side, decimal price)
result = orderBook.GetOrdersAtPrice(side, price)

Получите все заказы пользователей на определенном уровне цен.

side
Сторона для запроса.
price
Уровень цен для запроса.
GetTotalVolume
public decimal GetTotalVolume(Sides side)
result = orderBook.GetTotalVolume(side)

Получите общий объем для стороны.

side
Сторона, для которой требуется получить общий объем.
GetVolumeAtPrice
public decimal GetVolumeAtPrice(Sides side, decimal price)
result = orderBook.GetVolumeAtPrice(side, price)

Получите объем на определенном ценовом уровне.

side
Сторона для запроса.
price
Уровень цен для запроса.
GetWorstAsk
public ValueTuple<decimal, decimal>? GetWorstAsk()
result = orderBook.GetWorstAsk()

Получите худший (самый высокий) уровень аска.

GetWorstBid
public ValueTuple<decimal, decimal>? GetWorstBid()
result = orderBook.GetWorstBid()

Получите худший (самый низкий) уровень ставки.

HasLevel
public bool HasLevel(Sides side, decimal price)
result = orderBook.HasLevel(side, price)

Проверьте, есть ли предложение по указанной цене.

side
Сторона для проверки.
price
Уровень цен, который нужно проверить.
RemoveLevel
public IEnumerable<EmulatorOrder> RemoveLevel(Sides side, decimal price)
result = orderBook.RemoveLevel(side, price)

Удалить весь уровень по цене.

side
Сторона, с которой нужно удалить уровень.
price
Уровень цен, который нужно удалить.

Возвращает: Удалены ордера, которые присутствовали на этом уровне.

RemoveQuote
public bool RemoveQuote(long transactionId, Sides side, decimal price)
result = orderBook.RemoveQuote(transactionId, side, price)

Удалить котировку из стакана заявок.

transactionId
Идентификатор транзакции удаляемого заказа.
side
Сторона (покупка/продажа), где размещен ордер.
price
Уровень цены заказа.

Возвращает: True, если удалено, false, если не найдено.

SetSnapshot
public void SetSnapshot(IEnumerable<QuoteChange> bids, IEnumerable<QuoteChange> asks)
orderBook.SetSnapshot(bids, asks)

Установить стакан ордеров из снимка (заменяет все непользовательские котировки).

bids
Установить последовательность изменений котировок ставок.
asks
Последовательность запроса котировок изменяется для установки.
ToMessage
public QuoteChangeMessage ToMessage(DateTime localTime, DateTime serverTime)
result = orderBook.ToMessage(localTime, serverTime)

Создайте QuoteChangeMessage из текущего состояния.

localTime
Местное время, которое будет установлено в сгенерированном сообщении.
serverTime
Время сервера, которое необходимо установить для сгенерированного сообщения.
TrimToDepth
public IEnumerable<EmulatorOrder> TrimToDepth(Sides side, int maxDepth)
result = orderBook.TrimToDepth(side, maxDepth)

Удалите худшие уровни, превышающие максимальную глубину.

side
Сторона для обрезки.
maxDepth
Максимально допустимая глубина.

Возвращает: Удалены заказы из урезанных уровней.

TryRemoveOrder
public bool TryRemoveOrder(long transactionId, Sides side, EmulatorOrder order)
result = orderBook.TryRemoveOrder(transactionId, side, order)

Найдите и удалите заказ по идентификатору транзакции на любом уровне.

UpdateLevel
public void UpdateLevel(Sides side, decimal price, decimal volume)
orderBook.UpdateLevel(side, price, volume)

Обновление объема на уровне цены (для рыночных котировок).

side
Сторона для обновления.
price
Уровень цен для обновления.
volume
Новый объем рынка на уровне.