OrderBook
Реализация книги заказов.
Реализует: IOrderBook
Конструкторы
public OrderBook(SecurityId securityId)
orderBook = OrderBook(securityId)
Реализация книги заказов.
Свойства
public ValueTuple<decimal, decimal>? BestAsk { get; }
value = orderBook.BestAsk
Лучше всего спросить цену и объем.
public ValueTuple<decimal, decimal>? BestBid { get; }
value = orderBook.BestBid
Получите лучшую цену и объем предложения.
public decimal TotalAskVolume { get; }
value = orderBook.TotalAskVolume
Общий объем всех запросов.
public decimal TotalBidVolume { get; }
value = orderBook.TotalBidVolume
Общий объем всех заявок.
Методы
public void AddQuote(EmulatorOrder order)
orderBook.AddQuote(order)
Добавьте котировку в книгу заказов.
- order
- Ордер или рыночная котировка для добавления. Если TransactionId установлено по умолчанию, оно рассматривается как рыночная котировка.
public void Clear(Sides side)
orderBook.Clear(side)
Очистить все кавычки для конкретной стороны.
- side
- Сторону очистить.
public void Clear()
orderBook.Clear()
Очищает все состояния адаптера и сбрасывает текущее состояние на «Отключено».
public IEnumerable<ValueTuple<decimal, decimal, IReadOnlyList<EmulatorOrder>>> ConsumeVolume(Sides side, decimal? maxPrice, decimal volume)
result = orderBook.ConsumeVolume(side, maxPrice, volume)
Потребляйте объем с лучших уровней (для соответствия).
- side
- Сторона потребления (противоположная стороне заказа).
- maxPrice
- Максимальная цена покупки/минимальная цена продажи.
- volume
- Объем потребления.
Возвращает: Исполнения (цена, объем, затронутые ордера).
public IEnumerable<OrderBookLevel> GetLevels(Sides side)
result = orderBook.GetLevels(side)
Получите расценки на сторону, упорядоченные по цене (лучшее в первую очередь).
- side
- Сторона, для которой нужно получить уровни.
public IEnumerable<EmulatorOrder> GetOrdersAtPrice(Sides side, decimal price)
result = orderBook.GetOrdersAtPrice(side, price)
Получите все заказы пользователей на определенном уровне цен.
- side
- Сторона для запроса.
- price
- Уровень цен для запроса.
public decimal GetTotalVolume(Sides side)
result = orderBook.GetTotalVolume(side)
Получите общий объем для стороны.
- side
- Сторона, для которой требуется получить общий объем.
public decimal GetVolumeAtPrice(Sides side, decimal price)
result = orderBook.GetVolumeAtPrice(side, price)
Получите объем на определенном ценовом уровне.
- side
- Сторона для запроса.
- price
- Уровень цен для запроса.
public ValueTuple<decimal, decimal>? GetWorstAsk()
result = orderBook.GetWorstAsk()
Получите худший (самый высокий) уровень аска.
public ValueTuple<decimal, decimal>? GetWorstBid()
result = orderBook.GetWorstBid()
Получите худший (самый низкий) уровень ставки.
public bool HasLevel(Sides side, decimal price)
result = orderBook.HasLevel(side, price)
Проверьте, есть ли предложение по указанной цене.
- side
- Сторона для проверки.
- price
- Уровень цен, который нужно проверить.
public IEnumerable<EmulatorOrder> RemoveLevel(Sides side, decimal price)
result = orderBook.RemoveLevel(side, price)
Удалить весь уровень по цене.
- side
- Сторона, с которой нужно удалить уровень.
- price
- Уровень цен, который нужно удалить.
Возвращает: Удалены ордера, которые присутствовали на этом уровне.
public bool RemoveQuote(long transactionId, Sides side, decimal price)
result = orderBook.RemoveQuote(transactionId, side, price)
Удалить котировку из стакана заявок.
- transactionId
- Идентификатор транзакции удаляемого заказа.
- side
- Сторона (покупка/продажа), где размещен ордер.
- price
- Уровень цены заказа.
Возвращает: True, если удалено, false, если не найдено.
public void SetSnapshot(IEnumerable<QuoteChange> bids, IEnumerable<QuoteChange> asks)
orderBook.SetSnapshot(bids, asks)
Установить стакан ордеров из снимка (заменяет все непользовательские котировки).
- bids
- Установить последовательность изменений котировок ставок.
- asks
- Последовательность запроса котировок изменяется для установки.
public QuoteChangeMessage ToMessage(DateTime localTime, DateTime serverTime)
result = orderBook.ToMessage(localTime, serverTime)
Создайте QuoteChangeMessage из текущего состояния.
- localTime
- Местное время, которое будет установлено в сгенерированном сообщении.
- serverTime
- Время сервера, которое необходимо установить для сгенерированного сообщения.
public IEnumerable<EmulatorOrder> TrimToDepth(Sides side, int maxDepth)
result = orderBook.TrimToDepth(side, maxDepth)
Удалите худшие уровни, превышающие максимальную глубину.
- side
- Сторона для обрезки.
- maxDepth
- Максимально допустимая глубина.
Возвращает: Удалены заказы из урезанных уровней.
public bool TryRemoveOrder(long transactionId, Sides side, EmulatorOrder order)
result = orderBook.TryRemoveOrder(transactionId, side, order)
Найдите и удалите заказ по идентификатору транзакции на любом уровне.
public void UpdateLevel(Sides side, decimal price, decimal volume)
orderBook.UpdateLevel(side, price, volume)
Обновление объема на уровне цены (для рыночных котировок).
- side
- Сторона для обновления.
- price
- Уровень цен для обновления.
- volume
- Новый объем рынка на уровне.