Очередь заявок
Для работы с очередью заявок в интерфейсе ISecurity есть следующие методы:
GetBuyQueue(int barNum) - Получить очередь заявок для покупок.
GetSellQueue(int barNum) - Получить очередь заявок для продаж.
UpdateQueueData() - Обновить закешированный стакан (не влияет на FinInfo.Ask / FinInfo.Bid).
Методы GetBuyQueue и GetSellQueue выдают список объектов IQueueData. На данный момент эти методы всегда возвращают текущую очередь, т.е. не зависят от передаваемого параметра barNum.
Интерфейс IQueueData
IsBuyPart | |
LastUpdate | Время последнего обновления |
Price | Цена |
Quantity | Количество |
HasOwnOrderContains | Есть ли наши ордеры |
Security | Доступ к инструменту |
Пример, выведем данные очередей в лог:
using System; using System.Text; using System.Linq; using TSLab.Script; using TSLab.Script.Handlers; namespace MyLib { public class GetQueues : IExternalScript { public void Execute(IContext ctx, ISecurity sec) { var level = 5; // Получить очереди заявок var queueBuy = sec.GetBuyQueue(0).ToArray(); var queueSell = sec.GetSellQueue(0).ToArray(); var sb = new StringBuilder(); var n = level; // Выводим в лог информацию по очереди продаж (5 уровней) foreach (var item in queueSell.Take(level).Reverse()) { sb.AppendFormat("Sell {0}: {1} - {2}\r\n", n--, item.Price, item.Quantity); } n = 1; // Выводим в лог информацию по очереди покупок (5 уровней) foreach (var item in queueBuy.Take(level)) { sb.AppendFormat("Buy {0}: {1} - {2}\r\n", n++, item.Price, item.Quantity); } ctx.Log(sb.ToString()); } } }
Информация из TSLab совпадает с данными из терминала.
