Очередь заявок
Для работы с очередью заявок в интерфейсе 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 совпадает с данными из терминала.
Last updated
Was this helpful?